Pricing roles
Every stocked product has a pricing role: what it is for, as far as its price goes. Each role tells the pricing engine what to aim for with that product, how low it may go, and which way it may move. BudLogix proposes a role from your own sales; you choose it. A product nobody has chosen a role for is priced as a margin earner, which is how every product was priced before roles existed.
Beside the role sits one more mark: whether the product is a key value item (KVI), a product your customers compare with the shelf next door. A KVI is not a role. A product can be a KVI and a margin earner, or a KVI and a traffic driver.
The five roles
- Traffic driver - a product customers come in for: it starts a lot of baskets. It needs no competitor to compare against. The engine aims at units, judges a cut on the baskets it starts rather than its own margin, holds it to the KVI and traffic driver margin floor on Setup (the family floor when that is blank), and never raises it: it is protected for volume.
- Basket builder - a product that rides in baskets somebody else started, baskets whose other items earn well. The engine aims at revenue, and never at a loss of gross profit. Family floor.
- Margin earner - everything else, and the default. The engine aims at the objective you set on Setup for its family, gross profit unless you changed it. Family floor.
- Clearance - stock on its way out. The engine aims at the cash it brings back, may cut it down to cost (not the family floor), and never raises it.
- Gift with purchase - a product mostly given away, such as a 1g pre-roll handed out with flower. The engine never prices it. It is also left out of what the demand forecast learns about prices (below).
The key value item mark
A KVI is priced to the market: the cheapest same-brand, same-size list price at the competitors' shops. It answers to the same KVI and traffic driver margin floor, aims at units unless its role names another aim, is judged on the baskets it is in, and is raised only by KVI to market and only as far as a market two shops make. A KVI that is also a traffic driver is cut to the market and never raised. Clearance and gift with purchase keep their own rules whether or not they are KVIs. See Key value items for which products the weekly proposal keeps on the list.
How a role is proposed
Every Sunday at 06:00 Eastern, BudLogix reads the last 90 days of sales, up to the last day your data covers, and proposes a role for every stocked product with the reason, in this order:
- Gift with purchase when at least half of at least 10 units were given away (a line discounted to nothing).
- Clearance when a lot reaches its expiry date inside your markdown ladder, when the product or its brand is no longer reordered on Purchasing, or when it was on hand 90 days ago and has sold nothing since.
- Traffic driver when it starts a top-quarter number of baskets and starts at least the store's median share of its own baskets. A product starts a basket when it is sold alone, or is the first item rung up.
- Basket builder when it starts few of its own baskets (the store's bottom quarter) and the rest of those baskets earns at least the store's median gross profit.
- Margin earner otherwise, or when it was in fewer than 30 baskets.
The cut-offs are your store's own quarters and medians over stocked products in 30 or more baskets, so they move with the store. With fewer than 20 such products, nothing is proposed from baskets at all.
Traffic driver and basket builder proposals are evidence, not facts: about 60% of products held the same one from one quarter to the next at one BudLogix store. Gift with purchase almost always holds.
Choosing
Nothing changes a role on its own. On the Roles tab you Accept a proposal, Change to another role, or Skip it; on a product's pricing page you pick the role from Role. A skipped proposal stays quiet until the baskets behind it move by more than a quarter, or it proposes a different role. A proposal of margin earner never asks anything: it means there is no signal. A product that is out of stock keeps its role and asks nothing until it is back.
The KVI mark is chosen the same way, in its own section of the Roles tab, or with the Key value item switch on a product's pricing page.
Until October 2026 the KVI list was the traffic-driver role, and every list item showed as a traffic driver. When they were split, every list item stayed on the list; where its traffic-driver role came only from the list, the role was lifted, so it reads as a margin earner until you choose another. The engine prices those items as it did before: to the market, on the KVI floor, judged on their baskets. A traffic driver somebody had chosen on the Roles tab stayed one, and stayed on the list.
Where the engine uses it
- Optimize on a draft event: each line's objective, floor and direction come from its role, and a held line says why, starting with its role ("Held: clearance, which is never raised, and ...").
- Let the engine choose on Start a price event: key value items, traffic drivers and gift with purchase are left alone; clearance is only cut, for revenue, down to cost; a basket builder is chosen for revenue among moves that do not lose gross profit.
- The engine's own proposals in a draft: a gift with purchase is never proposed; clearance and a traffic driver are never raised; a key value item is raised only by KVI to market.
- The forecast on a draft: a traffic driver and a KVI with no other aim are judged on baskets, so their own gross profit falling is the expected cost of the cut.
- Push checks: the Margin floor and Floor after discounts guards hold each line to its role's floor, and a KVI to the KVI and traffic driver margin floor.
Giveaways and the demand forecast
The demand forecast learns how shoppers respond to price from every move the store has measured. A move on a product mostly given away is left out: its paid units are what is left after the giveaways, and they jump around. At one BudLogix store, four such moves out of 493 were enough to blur flower's own response to a cut into the store-wide one. A product counts as mostly given away by its sales over the moves' history, or because you chose Gift with purchase for it. See How the pricing engine decides.
Last checked against the product on 8 Oct 2026. This is the same article operators read inside BudLogix.