Shelf cover
The Shelf cover tab of Stock Levels shows how long every category, size and price range you sell lasts, the price ranges losing sales now, and what to order to refill each one. It is where a purchase order for a gap starts; an order by product line starts on Product Lines. It used to open New purchase order.
The chart
One chart per category - Flower, Pre-rolls, Infused pre-rolls, Vapes, Edibles, Beverages, Topicals - read from last night's shelf. Each step is one size at one price range, for example 28g, $110-160; its height is how many days that stock lasts at what the range sold a day over the last 30 days, counting products that have since sold out. The rate is the range's demand, and the height is what is left to meet it.
- A solid line marks your target (Target days of supply on Stock Levels Settings, for example 15 days) and a dashed line the reorder point (delivery lead plus buffer, 8 days). A step under the dashed line is red: it runs out before an order placed today could land. One under the target is amber. Grey is covered. Only red and amber steps carry their number, Out, <1d or 14d. Steps taller than 30 days are drawn at 30+.
- A range with stock and no sales in 30 days is a dashed outline marked no sales. A range with neither stock nor sales isn't drawn: you don't carry it.
- Hover a step for its units on hand and what it sells a day. Show as a table lists every range.
- Click a step to see that size over the next 15 days: stock falling day by day at each range's rate, the ranges stacked, a red line on the day a range runs out, and a dashed line where an order placed today lands. Under it, Refill (size), (range) for each range short of the target opens that range's Refill sheet.
- The count of ranges that run short sits under the title, for example 5 price ranges run out before an order can land, 4 more fall under 14 days.
Under the chart
Under the chart come two lists of what to do. They show to someone who can manage purchase orders, as their actions read and write them. Each line in both says how long its range lasts (Cover) beside what it does about it, and none is listed twice.
- Losing sales now is the gaps (below), with what they lost a day and the days of cover of each range. Both figures stay because they can disagree: on Sep 25 Flower 28g, $85 to $110 had 81 days of cover and was still the costliest gap, at $718 a day. A range that is empty and sold nothing in 30 days, which the chart leaves out, reads No sales.
- Running out next is every range under the target that isn't already a gap, shortest cover first, with what it sells a day and what is left. Refill opens that range's Refill sheet (below). Four show; Show N more opens the rest.
Gaps on the shelf
A gap is a price range customers shop for - Flower 28g, $85 to $110 - that is thin or empty today and has cost money over the last 7 days. The ranges are your target bands from Price bands where you have set them, and the accepted bands otherwise.
- Losing sales now lists them with what they cost a day in total. Each gap is one line that starts with what to do about it in small grey capitals, and one button:
- Chase: an order for the range was sent more than 15 days ago and nothing has been received, or a brand's Metrc manifest is past due. For example, Chase OCS Green Leaves LLC for PO-00024, with Open PO-00024 or Open the receipt.
- Order: a brand that can refill it, one with no order in BudLogix first, whose refill is more than nothing once what you have and what's on order are counted. For example, Order 39 M1 from M1 Enterprises. Refill opens the brands that can refill it with that brand's Add to order form below; the form says how many.
- Find a brand: nothing to order and nothing coming. Compare brands opens the brands that could.
- Wait: an order sent in the last 15 days, shown quietly with its order to open.
- Restocked: a brand that left came back in the last 7 days and there's nothing left to order.
- When more than one applies, the first in that list wins. Gaps that need you come first, costliest first. Gaps you're waiting on sit at the bottom, behind Show N waiting.
- Details under a gap opens what used to be on the card. It says why the range is thin (for example Base Camp holds 93% of 596 units) and what it earned a day when it was full. Each brand gone from it gets its own line, the same story the Weekly brief tells: a chip (No order in BudLogix, Ordered, nothing received · N days, Manifest due … or Manifest overdue, Restocked …, Phased out, or a grey Moved to $13 to $20), when it sold out and when it was last received, and each purchase order placed since that delivery and each Metrc manifest not yet received as a link. Received means a delivery received in Metrc, or an invoice linked to one, for any of the brand's products in that range; an order or a manifest is only a lead. Build order with names the vendors whose brands filled it before or fill a little of it now; clicking one opens that vendor's cart in Build order. The brand crowding the range is never offered as its refill, and nor is a brand you have phased out.
- A brand that left a range but is on the shelf in another range of the same size moved when one of the products that was in the range is the one on the shelf there now: its price changed, it didn't run out. Another of the brand's products that was always in the other range doesn't count: when Old Pal's $105 ounces sold out, its Lemon Balm ounce, priced at $110 since August, didn't make Old Pal a brand that moved. Its line says when it left and where it is now, for example Left this range Sep 9; on the shelf at $13 to $20, 275 on hand, and it is never offered as a refill for the range it left, because more of it would land at its new price. When every brand that left a range moved into a range that is doing fine, the range isn't listed at all: its sales carry on one range over, and there is nothing to buy. Wyld Pomegranate, the only Wyld at $20.00, went to $19.80 with the rest of the line, and that emptied Edible 100mg, $20 and up without costing a sale.
- The five costliest show; Show N more gaps opens the rest.
- A gap with an open order says so: "Already on order: 30 from MassGrow, LLC, sent Sep 21". An order line counts as open while nothing of its product, or of the same brand in the same range, has been received since it went out, and for 21 days at most: deliveries usually arrive 2 to 15 days after an order, so an older order with nothing received is a lead to chase (it shows on the brand's line), not stock on its way. The gap stays on the list, because it loses money until something arrives. An order sent more than 14 days ago adds "check it arrived". An order with a vendor you have retired doesn't count: Details says PO-00024 is still open with OCS Green Leaves LLC, a retired vendor: 4,300 sent Sep 11, not counted as on order. with Open PO-00024 to cancel it. The same rule is what How many subtracts below, what the pricing stock-cover check treats as a restock in progress, what a purchase order's lines show as already on order, and what Build order counts as on order.
- Losing money / Never stocked switches the list when there are price points you have never stocked: ranges your targets or competitor shelves call for that nothing of yours holds, such as Flower 3.5g, around $30 with Your premium target and the market. Each gives the competitor listings and stores, where your own shelf stops ("none of ours between $25 and $40"), and the last day you sold in that range, or "Never sold here". They have no loss to count, so each says Unmeasured: a test buy would measure it. Show all N opens the rest, and See them on Price bands (or Set targets on Price bands when you have set none) opens the Gaps tab.
- Compare brands on a gap, and the Refill sheet a Refill link opens, show what to buy for it:
- Shelf price: where the range sold while it was full (the middle half of its units). Each sale counts at the price that put it in the range: a unit sold under an automatic promo counts at the promo price, so a $20.00 gummy sold at $15.00 under "25% off" is a $15 sale in the $13 to $20 range, not a $20 one in the range above. It's worked out from sales up to the night's gap build and kept until the next one, so a sale voided more than an hour after its day counts from the following night.
- Pay at most: that shelf price less your margin floor from Pricing setup. With no floor set there is no limit, and the page says so.
- Nearby shelves: what competitors ask in the same range on their latest menus, and what the phased-out brand that left the range cost against its price.
- Brands that can refill it, most likely to sell first: brands on the shelf now (never the one crowding it), brands gone from it, brands that sell here in other sizes, brands carried here but out of stock, and, for flower, brands new to the store that a vendor you buy from lists on Apex in this size. Each shows its vendor, how many it sells a day here across sizes, and what it last cost you at its own shelf price against the limit. That shelf price is the one that puts it in the range: while an automatic promo carries most of its sales, it's the price customers paid, so an ounce listed at $120 that sells at $90 under "25% off" is judged at $90, the same price its line on the order is judged at. A brand never bought in this size says so and asks for a price; a new brand's Apex listing is the seller's price, not yours, and is never shown as a cost. Build order with (vendor) opens that vendor's cart in Build order, with the brand ticked.
- Add to order puts the brand on a draft for this gap without leaving the list:
- How many is filled in for you. For a brand that sold in this range while it was full, it's what that brand sold a day there (over the range's last healthy days) times the days to your next reorder (lead time plus buffer from Stock thresholds), less the brand's stock in the range and its own open orders. For example: "Aruna sold 0.5 a day here when the range was full × 8 days to your next reorder is 4." A brand that never sold here is a test order instead: what the gap is short a day at its shelf price, times the same days, less what's already on open orders for anything priced in the range, whichever brand, since it fills the range when it comes. It is a re-test, not a full stock-up; change it before you add. When open orders already cover it, it says so and starts at 0.
- Which lines: a brand you carry in this range is split across its products here by what each sold in the last 90 days, and a product already on the draft stays as it is. A product that already lasts to your next reorder at its last-30-day rate is left out, and so is one with 5 or more on hand that sold nothing in 30 days; the form lists them ("Left out, enough on hand: Snake Eyes (25, 125 days)"). When every product is left out, it says there is nothing to add. A brand with nothing in this range gets one new-product line named for the brand and size ("Ozone | 28g"), filed under that brand and New products on the order, and made into a product when you receive it.
- From whom: a brand from more than one vendor asks which, each with its own cost: its last invoice for the brand in this size, else an estimate from its last invoice for anything in this size, else none. A cost over the gap's limit says so; it does not stop you.
- Add to (vendor) draft adds the lines to your newest draft for that vendor, or starts one, and opens it. Each line says which gap it refills. Nothing is sent to the vendor.
- Under the list: brands left out because they are phased out, and brands sold on nearby shelves that no vendor of yours supplies.
A range is thin when one brand holds it, when one brand holds 80% or more of its sellable units, or when it will run out within 7 days. A product counts as sellable with at least 5 units, or fewer that will last 3 days at its sales rate; units outside the sales rooms count only if the product sold in the last 30 days. A product listed at a cent or two, such as a pre-roll kept for bundle deals, is a giveaway and sits in no range.
The Refill sheet
Refill on a range opens a sheet titled with it, for example Refill Ground flower 14g, $42 to $50, with the same figures and brands as Compare brands. From the Weekly brief or a customer's evidence, Reorder (brand) opens it with that brand's Add to order form open and says why: regulars who mostly bought the brand stopped coming while it was off the shelf. Close the sheet with its X or by clicking outside it.
Where the data comes from
Gaps are built each night from the day's inventory snapshot, your sales and the price each product had that day. That price is the Dutchie list price, unless at least half of what the product sold in the week to that day went under an automatic Dutchie promo; then it's the price customers paid under that promo. For example, a $20.00 gummy that sold at $15.00 under "25% off" sits in the $13 to $20 range. Staff, loyalty and manual discounts, bundles, multi-buys and buy-one-get-one deals don't count, because one unit on its own still costs the list price. Whether a promo is running is read from the sales, not the discount's settings. What a gap earned when full is its average over its last healthy days, and what it costs now is that rate moved by how its category has done since, less what it still sells.
Who can see it
View stock levels opens the tab and its chart. The lists under it, the Refill links and the Refill sheet need Manage purchase orders.
What runs by itself
Gaps are rebuilt every night at 23:50 Eastern, after the day's inventory snapshot, so they describe yesterday's close.
Settings it depends on
Target days of supply, lead time and reorder buffer on Stock Levels Settings draw the target and reorder lines. Target bands on Price bands draw the price ranges gaps are measured on; change one and the gaps are re-measured on the new ranges that night. Your margin floor on Pricing setup sets Pay at most.
Related
- Stock Levels
- Build an order by product line
- Refill a gap on the shelf
Last checked against the product on 10 Oct 2026. This is the same article operators read inside BudLogix.