Price events
A price event is a small, scoped batch of price changes you push once and measure on its own. It is the only way a price gets from BudLogix to the shelf.
An event's life
- Draft - lines with a current price and a proposed price. The current price is the one Dutchie holds, as of the hourly catalog sync or the last push; a product not linked to Dutchie shows the price it was last analysed at. A draft governs nothing. It can come from you, the hub, Headroom, Merit gaps, Plan a promotion or the Monday draft.
- Live - pushed to Dutchie. The measurement window is running; the page shows "day N of 28", or for a discount test the day of its own length ("day 6 of 15").
- Measured - the window closed and the result is in: units, gross profit, and the difference against the hold-out.
- Rolled back - reversed by a new event with the lines inverted. Both events stay in the list.
- Restored - that new event, once pushed. It put prices back rather than testing them, so it is never measured and holds none of its products. See Roll back a price event.
Hold-outs and controls
By default half the moving lines are held at today's price as a control (at least 8 lines must move). Each arm is measured against its own prior 28 days; the difference is the effect. Untick the control only for a clearance, and the result is then "measured without a control": counted, never summed. A discount test has no such box: it always holds half back, and with fewer than 8 products it holds none and is read against the weeks before it.
Guards
Before a push - and on a discount test, before I have created it in Dutchie, checked at the discounted prices - each guard reads Clear or Blocked: Margin floor (each line's floor comes from its pricing role: a key value item's or a traffic driver's is the KVI and traffic driver margin floor where one is set, clearance's is cost, the rest their family's; it blocks only on lines this event moves below their floor, or takes lower when they are already below; a line under the floor that the event does not move, or one that sold out since drafting and will not be sent, does not block and is not named), Floor after discounts (a cut is checked at the price a customer pays once the deepest live per-unit discount the product is in applies; on a discount test the test's own discount is not counted again, because its prices already are that discount; only staff discounts (a discount restricted to your staff group, whatever it is called) and free-item gifts are left out, so an always-on discount such as 10% off is checked like any other, and a line already below the floor at list is left to Margin floor; the suggested price is the lowest list price that keeps the till price at the floor, and a price-to deal already below the floor says no list price fixes it), Size ladder (a bigger pack must not cost more per gram than a smaller one of the same brand; only a break this event creates or worsens blocks, a break already on the shelf passes and is not named, a suggested widening is never a deeper cut than the event's own deepest move or 14%, whichever is larger, and where Setup authors a size ladder step a bigger pack this event leaves not cheaper by that step warns without blocking), Competitive parity (a raise may not go above the same-brand competitor minimum or median, needing 2 or more fresh stores), Catalogue share (at most 25% of the stocked catalogue may change price in 7 days, counting every event), Price per mg THC (edibles and concentrates may not land more than 50% above their bucket's median, using the mg per package METRC reports; a line with no such figure reads Not checked), Deal consistency (a cut may not fall below a live deal's per-unit price), Purchase limit (a single unit may not exceed the 28.35 g daily flower-equivalent limit), Stock cover (a cut may not leave a product with under 7 days of cover at its 30-day rate and nothing on an open purchase order; a product phased out on Replenishment, or whose brand is, is clearance, passes and is named as such), Other live events (a product this event moves or holds back that another live event holds, as a price change or in its comparison group, blocks; a line the engine could not price stays at today's price and does not count: pushing both measures each against the other; it names the event, how many of the products it holds and how many are in its comparison group; undoing that event, or the second half of its staged raise, passes; a Restored event holds nothing, so it is never named). Any guard can be overridden with a written reason, except one: Other live events cannot be overridden when the live event has the same scope, such as the KVI list or the same category again, because a second event over the same products measures nothing the first does not; the check says "This one cannot be overridden." A hand-picked event that overlaps a live one can still be overridden.
Ownership
An event owns the lines whose price it most recently set. When a later event pushes the same product, ownership moves to it and the earlier event reports only on what it still owns. Writing the same price takes nothing. A restore ends the undone event's claim on its lines but holds nothing itself: a later push over the same products takes nothing from it and says nothing about it.
Measurement windows
28 days before the push against 28 days after, on clean sales, leaving out the push day itself and any day on the excluded list; see How results are measured. Events pushed before the window changed keep the 30 days they were pushed with, and the page says which it read. A rollback on or before the last day of the window marks the event "terminated" and keeps it out of the response bins.
Where you see this
Events, Price event, Pricing, Headroom.
Last checked against the product on 8 Oct 2026. This is the same article operators read inside BudLogix.