Guides · Updated 29 October 2026
Most trade promotion reports compare sales in the promotion week with a baseline and divide by trade spend. That number is almost always too flattering. Shoppers stock up during a price cut and buy less the week after, so part of the promotion-week lift is sales you would have made anyway, just earlier. This guide shows a way to measure trade promotion return that counts that dip, and how much data you need before the number is worth acting on.
1. Count the dip after the event
When a pantry product is on a temporary price reduction, some of the extra units are pulled forward from the following weeks. A promotion-week read sees the spike but not the trough after it. The honest measure is net extra sales: the promotion-week lift minus the shortfall in the weeks that follow, divided by what the event cost.
In our own test on made-up weekly data for 12 regions (four promotion types, varied discount depths, half the events running during TV flights, and a dip in the week after each event), the promotion-week read put "price cut only" events at $1.48 of sales per $1 of trade spend. The true net return built into the data was $1.03. The promotion-week read overstated it by about 45%. Adding one "week after a promotion" term to the model brought the estimate to $0.98 (range $0.91 to $1.06), which contains the true value. The same fix held for all four promotion types.
2. Split results by promotion type, not just "promotions"
A price cut alone, a price cut with a feature ad, a price cut with an in-store display, and all three together behave differently. Averaging them hides the losers. Track each event's type in the promotion calendar (start and end week, retailer, discount depth, feature yes/no, display yes/no) so each type gets its own return and range.
One caution: once lifts vary from event to event, a model can't reliably split one event's lift into "the price cut part" and "the display part". Report each type as it actually ran, net of the dip. If you want to know what a display alone is worth, run a test that varies it.
3. Don't judge a promotion type on a handful of events
Single events spread widely around their type's average. In the same made-up data, 47% of individual price-cut-only events returned under $1 per $1, even though the type averaged about $1.02. A type needs roughly a dozen events before its average is steady enough to act on. Below that, the honest answer is "not enough events yet", not a number.
4. Turn sales per dollar into profit per dollar
A promotion that returns $1.03 of sales per $1 of trade spend loses money once product cost is counted. At a made-up 40% gross margin, an event needs about $2.50 of extra sales per $1 just to break even. Ask finance for one gross-margin percentage per product line and how trade is shared with each retailer, and report profit per $1 alongside sales per $1.
5. Put promotions and media in the same model
Promotions often run during TV or retail media flights. If you measure them separately, both get credit for the same weeks. A marketing mix model that includes media, price, distribution and every promotion event splits the credit once. See what data a CPG mix model needs.
Checklist
- Promotion calendar with every event's start and end week, retailer, depth, feature and display flags
- Trade spend per event (fees, off-invoice, scan)
- Weekly store-level sales by market, at least two years
- A "week after" term for every promotion type, reported net
- Event count per type; no verdict below about 12 events
- Gross margin per product line, for profit per $1
Questions
What is a post-promotion dip?
The drop in sales in the week or weeks after a promotion, because shoppers stocked up during the deal. It is why promotion-week lift overstates what an event really added.
How do you calculate trade promotion ROI?
Net extra sales (promotion-week lift minus the shortfall after the event) divided by the event's trade spend. For profit, multiply the net extra sales by gross margin before dividing.
How many promotion events do I need to measure a promotion type?
In our tests on made-up data, about 12 events per type before the average was steady enough to act on. With fewer, report it as not enough events yet.
Can a mix model tell me what a display is worth on its own?
Not reliably when event lifts vary. Report each promotion type as it ran; to price a display on its own, run a test that switches it on and off.
Want this for your brand?
MMMflow is planning its first pilots with CPG and retail brands: 12 weeks, your store-level sales, media and promotion calendar in one open model, and a plain-words plan at the end. Ask about a pilot