How to Measure Dispensary Promotion ROI

How to measure dispensary promotion ROI: separating incremental gross profit from discounted sales
Key Takeaways

Dispensary Promotion ROI at a Glance

Last updated: September 16, 2026

  • Discounted sales are not the same as incremental sales
  • Measure net sales and gross profit after discounts, not the full menu value of redeemed orders
  • Use a holdout or credible comparison to estimate what would have happened without the offer
  • Separate new, active, lapsed, and unidentified customers; the same promotion can perform very differently for each group
  • Keep measuring after the promotion ends; a low-margin first order may work if it creates profitable repeat behavior
  • Unified retail data, such as BLAZE Insights reading the same promotion and customer records as the register, makes the analysis cleaner but does not replace sound test design

A promotion did not create every sale that used the discount. Some customers would have purchased anyway. The real question is whether the offer produced enough incremental gross profit and useful customer behavior to justify the margin you gave up.

Dispensary promotion ROI compares what happened with the promotion against what probably would have happened without it. Then it follows customers long enough to see whether the campaign created a second purchase, moved inventory profitably, or simply made a planned order cheaper.

Start With the Job the Promotion Is Supposed to Do

“Drive sales” is too vague to measure. Give every promotion one primary job before it launches, with one primary measure and one guardrail that keeps the win honest.

Promotion objectivePrimary measureUseful guardrail
Acquire new customersIncremental first purchasesCost per new customer and 30-day repeat rate
Bring back lapsed customersIncremental reactivated customersGross profit through the next purchase
Increase basket sizeIncremental gross profit per transactionUnits per basket and margin rate
Move aging inventoryIncremental units or sell-throughGross profit dollars and substitution from full-price items
Shift customers to an owned channelIncremental orders on that channelRepeat use after the incentive ends
Fill a slow day or hourIncremental gross profit in that windowCannibalization before and after the window

A first-order offer may be judged on acquisition and repeat behavior; a category offer on inventory movement and margin. One blended “sales lift” number hides what each accomplished.

The Simple Promotion ROI Formula

First establish the expected sales and gross profit without the promotion. A randomized holdout is strongest; otherwise use a matched location, customer group, category, or comparable set of weekdays and hours. Then calculate the following, in order.

MetricFormula
Net salesPre-discount sales − discounts − returns
Gross profitNet sales − cost of goods sold (COGS)
Incremental gross profitActual promotion-period gross profit − expected baseline gross profit
Net promotion contributionIncremental gross profit − incremental campaign, messaging, payment, fulfillment, and labor costs
Promotion investmentDiscount dollars + all incremental campaign, messaging, payment, fulfillment, and labor costs
Promotion ROINet promotion contribution ÷ promotion investment × 100

Keep definitions consistent with your finance team and use the price actually paid. Google’s ecommerce measurement guidance treats price and discount as separate fields and recommends allocating order-level discounts across items.

Hypothetical example

The numbers below are illustrative and are not BLAZE customer benchmarks.

A dispensary normally expects to sell 100 units of a category during a comparable weekend. The regular price is $40 and unit COGS is $24.

  • Expected baseline sales: 100 × $40 = $4,000
  • Expected baseline gross profit: 100 × ($40 − $24) = $1,600

The dispensary runs 10% off and sells 150 units at $36:

  • Promotion-period net sales: 150 × $36 = $5,400
  • Promotion-period gross profit: 150 × ($36 − $24) = $1,800
  • Incremental gross profit: $1,800 − $1,600 = $200

If creative and messaging cost another $100, net promotion contribution is $100. Discount dollars were 150 × $4 = $600, so total promotion investment was $700. Promotion ROI was therefore $100 ÷ $700, or 14.3%.

The promotion generated $5,400 in discounted sales and $1,400 more revenue than baseline. Neither is the return. After COGS, the discount applied to customers who would likely have bought anyway, and campaign costs, the estimated net promotion contribution was $100.

A Practical Dispensary Promotion Measurement Framework

1. Build a credible baseline

Do not compare a holiday weekend with an average Tuesday. Match the same weekdays, hours, locations, categories, and season wherever possible. Adjust for changes in operating hours, inventory availability, menu price, and unusual traffic.

For recurring promotions, use several comparable periods. Record stockouts and major launches; neither should be credited to the discount.

2. Create a holdout or comparison

The cleanest test exposes one comparable group and leaves another unexposed. Google describes conversion lift similarly: the treatment-control difference estimates conversions that would not otherwise have occurred.

A multi-location retailer might test matched locations. A single-location retailer can use a randomized eligible audience, matched category, or comparable time windows under the same rules. Prevent leakage into the comparison group and collect enough volume.

If no holdout is possible, call the result an estimate, not causal proof.

3. Measure margin after the discount

Report at least four numbers together: gross sales before discount, discount dollars, net sales, and gross profit dollars. Add gross margin percentage, but do not use it alone. A lower margin rate can still produce more gross profit dollars if the promotion creates enough incremental volume. For a refresher on how those numbers relate, see our guide to dispensary profit margins.

Analyze at item or category level when possible. A cart-wide offer can look healthy overall while shifting demand away from a full-price, higher-margin category.

4. Separate incremental revenue from redeemed revenue

Redeemed revenue answers, “How much did customers spend in orders that used this offer?” Incremental revenue answers, “How much more did they spend because the offer existed?”

Measure the difference between the promotion group and its baseline or comparison. Normalize for group size when necessary, per eligible customer, per transaction, or per open hour, rather than comparing unequal totals.

5. Split new and existing customers

At minimum, separate:

  • First identified purchase
  • Active existing customer
  • Lapsed customer, using a fixed inactivity window
  • Unidentified or guest customer

This prevents a first-time offer from receiving credit for existing shoppers with duplicate profiles, and it shows whether a broad discount mostly subsidized the regular base. Keep the definition of “new” fixed before the campaign begins.

6. Follow repeat behavior

The order where the discount was redeemed is only the first row of the analysis. Track whether exposed customers return, how quickly, what they buy, whether they need another discount, and the cumulative gross profit from subsequent purchases.

Google Analytics’ cohort exploration uses the same structure: define the event that creates a cohort, then observe later transactions. Useful checkpoints include the next normal purchase cycle and 30 days, extending the window when customer cadence requires it.

Common Promotion Attribution Mistakes

  1. Counting every redeemed order as incremental. This is the central error.
  2. Using gross merchandise value instead of net sales. The customer paid the discounted price.
  3. Ignoring COGS. Revenue can rise while gross profit falls.
  4. Comparing unlike periods. Holidays, payday timing, weather, events, and operating hours can overwhelm the promotion effect.
  5. Looking only at redeemers. Non-redeemers and the comparison group are necessary to estimate lift.
  6. Blending customer types. Acquisition, reactivation, and retention have different economics.
  7. Ending measurement at redemption. Pull-forward can make the promotion week look strong and the following week weak.
  8. Ignoring cannibalization. A promoted product may replace a full-price item rather than add to the basket.
  9. Changing several variables at once. New creative, product, messaging, and discount depth obscure what worked.
  10. Trusting attribution software to create a counterfactual. A dashboard can organize facts; it cannot prove causality without a comparison.

How Unified Retail Data Makes the Analysis Better

Promotion measurement gets messy when the POS sees one customer, ecommerce sees another, and loyalty or messaging lives in a third system. Analysts spend more time reconciling identities and discount rules than evaluating the campaign.

BLAZE connects retail channels through shared customer, inventory, and promotion data. BLAZE Retail promotions can be applied across eligible in-store and online workflows, and Company Promotions let multi-location operators run one campaign with location-level control. BLAZE Insights supports historical analysis and customer cohorts by promotion, product, and marketing source, and BLAZE Growth adds loyalty and customer-engagement context.

That foundation helps operators follow baskets and customers across channels. They still must define the objective, create a fair comparison, set the margin guardrail, and decide what is strong enough to repeat.

A 30-Day Promotion Audit

Days 1 to 7: Inventory and instrument

  • List every active discount, reward, bundle, BOGO, and channel-specific offer
  • Assign one owner, objective, promotion ID, audience, start and end time, and margin floor to each
  • Confirm item COGS, regular price, actual paid price, discount dollars, returns, and customer identifiers are captured
  • Pause or separate overlapping offers that make attribution impossible

Days 8 to 14: Establish the counterfactual

  • Build matched baselines from comparable days, hours, locations, and categories
  • Select a holdout or comparison where practical
  • Record inventory gaps, events, price changes, and other confounders
  • Write the pass/fail threshold before reviewing results

Days 15 to 21: Calculate incrementality and margin

  • Compare actual results with expected baseline results
  • Calculate incremental revenue, gross profit, net promotion contribution, and ROI
  • Break out first-time, active, lapsed, and unidentified customers
  • Check category substitution, basket composition, stockouts, and channel movement

Days 22 to 30: Check behavior and decide

  • Measure repeat purchases and gross profit after the first redemption
  • Identify customers who only returned with another discount
  • Classify each promotion: scale, revise, retest, or stop
  • Save the hypothesis, design, outcome, and caveats for the next campaign

Frequently Asked Questions

What is dispensary promotion ROI?

Dispensary promotion ROI is the net promotion contribution created by an offer divided by its investment, including discount dollars and other incremental costs, expressed as a percentage.

What is the difference between promotion revenue and incremental revenue?

Promotion revenue is revenue from orders associated with the offer. Incremental revenue is the amount above what a credible baseline or control group would have produced without it.

What is a good promotion ROI for a dispensary?

There is no universal benchmark. Set a hurdle from your margin requirements, budget alternatives, and campaign objective. Acquisition offers may need longer payback than inventory-clearance promotions.

How do I measure a BOGO promotion?

Allocate the discount across the qualifying items, use the actual paid price, subtract COGS for every unit, and compare units and gross profit with a baseline or holdout. Also check whether the free item displaced another full-price purchase.

Can a promotion be successful if first-order margin is low?

Yes, if it creates valuable behavior afterward. Track repeat rate, time to next purchase, future discount dependence, and cumulative gross profit. Label that value as observed only after it occurs, not as assumed lifetime value.

How do I measure promotion ROI if I only operate one dispensary?

Use several matched historical periods and, where practical, a randomized eligible customer group, matched category, or comparable time window. Document limitations and describe the result as an estimate when a clean holdout is unavailable.

Which promotion metrics should a dispensary track?

Track discount dollars, redemptions, net sales, COGS, gross profit dollars, incremental revenue, incremental gross profit, customer type, basket composition, channel, and repeat behavior. Promotion views and clicks are useful diagnostic metrics online, but they do not prove profitable lift.

How long should I measure repeat behavior after a promotion?

Use at least one normal repurchase cycle for your own customers. A 30-day checkpoint is practical for an initial read, but slower customer segments may require a longer window.

Measure Every Promotion on One Set of Numbers

BLAZE Insights reads the same customer, inventory, and promotion records your register uses, so baselines, cohorts, and margin come from one source.

Book a Live Demo →

Subscribe to our Newsletter

Sign up to receive monthly updates, industry news, webinars and more!