Skip to content

How BudLogix counts what is on hand

"On hand" sounds like one number. BudLogix keeps three views of it, because a unit in a quarantine room is real stock that no customer can buy, and yesterday's count matters as much as today's.

Total on hand

The quantity Dutchie reports for the product across every room, refreshed by the hourly catalog sync. This is what the Products screen calls Opening, arrived and left.

Dutchie's inventory only lists products that have stock. When a complete sync no longer lists a product, BudLogix counts it as zero and records when it ran out: the date of its last sale, or the day it was found empty if it never sold. Before October 2026 such a product kept its last count indefinitely, so it never showed as a stockout. A sync that fails part way changes nothing. Neither does one that lists less than half as many products as the past week's syncs did; that reads as a bad response from Dutchie, not a sell-out.

Sellable on hand

Stock in rooms you have marked active in Stock Levels Settings. Rooms only ever veto: a product with room data but nothing in an active room has zero sellable, while a product with no room data at all keeps its own figure, because missing data is not evidence of empty shelves. Units outside active rooms are "held", and Stock Levels reports them as "held off the sales floor".

Until you save at least one active room, every screen counts total on hand. Once you have, Stock Levels, the Days of inventory card and purchase orders count only active-room stock, and the Stock Levels header says "active inventory rooms only".

Days of supply

Sellable on hand divided by average units sold per day in stock. Both screens leave out the days the nightly count recorded the product as empty, so a product that sold out fast is not diluted by the days it sat at zero: Products over its own date window, where the Velocity column shows the rate and says "over N days in stock of the last M" when some days came out; Stock Levels over the Sales velocity window (days) setting, default 30. A day with no count on file counts as in stock. A product that did not sell has no days of supply.

The nightly snapshot

Every night at 11:30 PM Eastern BudLogix records, for every active product and every product retired in Dutchie that still has stock, both total on hand and active-room on hand. The rows are kept for 400 days. This history is what lets Products show opening stock, units that arrived during a window, and sold-through of what you bought. It cannot be rebuilt for days before it started, which is why Products shows a notice when a window reaches back before the first snapshot.

Units

Sales and on-hand are counted in the unit the product is sold in - eaches. METRC manifests arrive in package units, usually grams. When BudLogix counts stock on its way from a vendor, it divides shipped grams by the product's unit weight; a line that does not divide cleanly counts as zero rather than a guess. A quantity on a purchase order is never counted as inbound, because orders are not updated when the vendor changes them; only the METRC transfer is.

Where you see this

  • Products: Sellable on hand, Days of supply, Opening -> arrived -> left, and the history notice.
  • Stock Levels: Sellable, Days of cover, "held off the sales floor", and the "active inventory rooms only" header.
  • Stock Levels Settings: the Active Inventory Rooms list.

Last checked against the product on 10 Oct 2026. This is the same article operators read inside BudLogix.