A promotion runs. Volume during promotion week is 40% higher than the week before. Everyone in the review meeting calls it a win, the brand manager gets a pat on the back, and the same mechanic gets locked into next quarter's calendar.

Nobody asks what would have sold anyway.

That gap, between total volume during a promotion and the volume that would have moved without it, is where most trade promotion budgets quietly leak. This is the confusion that costs companies real money: lift is not the volume you sold during the promotion. Lift is the volume you sold above what would have sold anyway. Get that one distinction wrong and every ROI number downstream of it is fiction, no matter how precise the spreadsheet looks.

What "Lift" Actually Measures, and What It Doesn't

Lift represents incremental volume beyond baseline expectations, full stop. It is not total volume during the promotion, not the percentage jump over last week, and not the peak day of the promotion window.

The single most common measurement error in trade promotion effectiveness work is treating the promotion-week total as the achievement. A brand that normally sells 10,000 cases a week and sells 16,000 during a promotion week did not generate 16,000 cases of lift. It generated, at most, 6,000, and that 6,000 is only accurate if the 10,000-case baseline was itself correct.

Field note: A regional distributor handling a mid-sized personal care brand, operating on one of several common FMCG route-to-market distribution models, ran a "buy-2-get-1" mechanic across 340 outlets and reported 71% lift by comparing promotion week to the week before. A cleaner baseline, built from the same weeks a year earlier and adjusted for a 6% category growth trend, put actual incremental volume closer to 24%. The other 47 points were forward-buying by retailers stocking up ahead of a price increase they already knew was coming.

How Do You Build a Baseline That Isn't Lying to You?

A naive before/after comparison overstates lift almost every time. Trade partners who know a promotion is coming often pull back their own orders in the run-up, so they can sell through existing stock before the discounted price lands. That dip in the "before" period makes the "after" period look artificially large by comparison.

  • Use at least 52 weeks of historical data to capture seasonal patterns: a snack brand's baseline the week before a national holiday looks nothing like an ordinary mid-year week.

  • Exclude all promotional weeks, plus the two weeks immediately surrounding each one. Both the pre-promotion pullback and the post-promotion dip are contaminated data.

  • Fit a seasonal model to what's left. Exponential smoothing for demand planning handles this better than simple moving averages, which break down around holidays and weather-driven or school-calendar-linked categories.

  • Validate against a holdout period you did not use to fit the model. If it can't predict a normal month it never saw, it has no business predicting a promoted one.

Where the infrastructure supports it (the kind of setup covered in our guide to building an analytics stack for a mid-sized manufacturer), the stronger alternative is a control-store or control-region design: hold out a set of stores matched on baseline volume and trend, run the promotion everywhere else, and use the untouched stores as the counterfactual directly.

The Four Effects Hiding Inside Every "Lift" Number

Gross uplift is not the same thing as value created. It bundles together four distinct effects, and only two of them are money the company should actually credit to the promotion.

Effect

What It Actually Is

Value to the Business

Incremental consumption

Genuinely new usage

Real

Brand switching

Volume pulled from a competitor's SKU onto yours for the promotion period

Real

Cannibalisation

Volume pulled from your own other SKUs or pack sizes

Negative

Forward buying / pantry loading

Purchases pulled forward from future weeks, not new consumption

Zero

Reporting gross uplift without separating out forward-buying and cannibalisation is how a promotion that destroys value gets reported as a success.

Why the Post-Promotion Dip Gets Ignored

Most promotion post-mortems close the file at the end of the promotion week, exactly the window in which forward-buying is invisible, because the volume it pulled forward hasn't come due yet. Retailers who stock up during a discount don't buy again at the normal rate the following week; they draw down the extra inventory first, producing a dip below baseline immediately after the promotion ends. The practical fix is simple and almost nobody does it: extend the measurement window to at least four weeks post-promotion before calling the ROI number final.

Worked Example: From Gross Uplift to True ROI

Take a mid-sized detergent SKU with a normal weekly baseline of 8,000 cases, at a margin of $3.20 per case. A four-week "20% off" promotion is run, with a $1.10-per-case trade discount funded by the brand, plus a $4,000 flat display fee.

Using the 52-week seasonal model, expected baseline volume for the four promoted weeks is 32,400 cases. Actual volume sold is 46,800 cases, a naive 44% jump. Tracking the four weeks after the promotion shows volume running below baseline, netting out roughly 5,600 cases of forward-buying. A neighbouring pack size, a reminder of how directly packaging decisions that inflate landed cost can ripple into volume, sold 1,900 cases below its own baseline over the same period: cannibalisation.

Line Item

Cases / Value

Baseline volume (4 weeks)

32,400 cases

Actual volume (4 weeks)

46,800 cases

Gross uplift (naive)

14,400 cases

Less: forward-buy / pantry-loading

−5,600 cases

Less: cannibalisation of sister SKU

−1,900 cases

True incremental volume

6,900 cases

Incremental margin (6,900 × $3.20)

$22,080

Total promotion cost (discount + display fee)

$55,480

Promotion ROI ((margin − cost) / cost)

−60%

The naive read, 14,400 cases of "lift" against $55,480 of spend, already looks marginal. Once forward-buying and cannibalisation are properly netted out, true incremental volume is less than half the naive figure, and the promotion's real ROI is deeply negative. This is not a rare outcome. It is the default outcome once the accounting is done honestly.

How Deep Should the Discount Be, and How Often?

Shallow discounts run frequently typically outperform deep, infrequent discounts on a cost-per-incremental-case basis, up to a point. Below roughly a 10% discount, consumer response tends to disappear almost entirely. There is a second threshold worth tracking separately: the share of a SKU's volume sold on deal. When more than roughly 40% of a SKU's volume moves during promotion across a rolling period, the discounted price starts to function as the reference price in the shopper's head rather than the exception, a reputational cost that shows up eventually in base-price elasticity.

Trade Promotion Effectiveness Checklist

  • Baseline built from a minimum of 52 weeks, promotion weeks and the two weeks either side excluded.

  • Seasonal model validated against a holdout period the model never saw.

  • Matched control stores or regions used where feasible, not just time-series extrapolation.

  • Measurement window extends at least 4 weeks past the promotion, to capture the dip.

  • ROI formula nets incremental margin against trade discount, display fee, sampling, and wastage.

  • Incremental, brand-switching, cannibalisation, and forward-buy effects each isolated.

  • Volume-on-deal tracked against the ~40% reference-price threshold.

Final Word

Trade promotion effectiveness is not a reporting problem. It's a discipline problem: the discipline to wait four weeks before calling a number final, and to net out the volume that was always going to sell anyway. Every shortcut in that process biases the answer in the same direction: toward more promotions that look good in the week they run and quietly erode margin every week after.