Skip to content

Ecommerce Discount Strategy: Do Your Promotions Actually Make Money?

Sale weeks look great on a revenue dashboard, but discounts often subsidize buyers who would have purchased anyway and borrow revenue from future weeks. Here is how Shopify brands measure the true causal profit of a promotion: with the Four Fates framework and a full €-worked example.

Three platforms, three answers, one budget to defend. Your GA4 export already holds the answer, and the first finding is free and never leaves your browser. Get your first finding free

By , Founder & CEOUpdated 7 min read

Run the numbers for your store: the free holdout test planner, or the free contribution margin calculator.

Do Ecommerce Discounts Actually Make Money? The 60-Second Answer

A discount is profitable only when the contribution margin from genuinely incremental orders exceeds the margin given away on orders that would have happened anyway, plus the revenue the sale borrows from future weeks. Causal measurement, comparing the full promo period against a no-sale counterfactual, is the only way to know.

Promotion incrementality is the share of sale-period orders that would not have happened without the discount. Pull-forward demand is revenue a promotion borrows from future periods: customers who would have bought next month buy now, at a lower margin.

Every discount produces a spike that looks like success. Revenue climbs, ROAS improves, and last-click attribution dutifully credits whichever channel carried the promo code. But the dashboard is answering the wrong question. It tells you what happened during the sale; it says nothing about what would have happened without it: the counterfactual that determines whether the discount created demand or just re-priced it.

Three forces inflate the naive read:

Seasonality. Promotions cluster around moments when demand is rising anyway: BFCM, seasonal peaks, payday weekends. Attributing that organic lift to your discount is the classic mistake we unpack in our guide to seasonal sales attribution and in Black Friday attribution chaos.

Pull-forward and pull-backward. Customers learn your rhythm. They delay purchases before a predictable sale and go quiet after it. Marketing-mix-modeling firm Recast describes the signature pattern as "bad week, amazing week, bad week": and warns that the pre- and post-periods can swamp the peak entirely (Recast on pull-forward promotions).

Subsidized demand. A portion of every sale's buyers were already on their way to checkout at full price. Discounting them is a straight margin transfer from you to people who needed no persuading: the same dynamic behind coupon-affiliate leakage.

Add regression to the mean after an unusually slow week, the very moment many founders panic-launch a sale, and you have a measurement environment where correlation-based decisions quietly waste budget.

The Four Fates Framework

Every order placed during a promotion meets one of four fates. Profitability depends entirely on the mix.

FateWhat happenedEffect on contribution margin
1. IncrementalThe order would not exist without the discountPositive: discounted margin gained
2. SubsidizedCustomer would have bought anyway, at full priceNegative: discount given away for nothing
3. Pulled forwardCustomer bought now instead of laterNegative: full-price future margin swapped for discounted margin today
4. SwitchedOrder cannibalized another SKU or channelNeutral to negative, depending on margin mix

Worked Example: The Record Week That Lost €9,000 (Illustrative)

All figures below are illustrative, chosen to make the mechanics easy to follow.

A supplements brand runs a 20% sitewide flash sale for one week. Baseline: 1,000 orders/week at €50 AOV, €20 contribution per order (40%).

Sale week: 1,900 orders at €40 AOV → €76,000 revenue against a €50,000 baseline. The dashboard reads +€26,000 and the team celebrates. Per discounted order, contribution is €20 − €10 discount = €10.

A causal decomposition of those 1,900 orders (the Four Fates, with switching set to zero for simplicity):

  • 1,000 baseline buyers who would have purchased that week anyway: subsidized
  • 400 pulled forward from the following two weeks
  • 500 genuinely incremental

Now compare the full three-week window against the no-sale counterfactual:

Actual (with sale)Counterfactual (no sale)
Sale week margin1,900 × €10 = €19,0001,000 × €20 = €20,000
Next two weeks margin1,600 × €20 = €32,0002,000 × €20 = €40,000

Revenue up, profit down: and completely invisible if you only look at the sale week. This is why returns-adjusted, margin-aware metrics matter more than topline ROAS.

How to Measure Discount Incrementality: A 7-Step Workflow

  1. Define the full evaluation window. Include a pre-period (to catch purchase delays) and a post-period of at least 2–4× the sale length (to catch pull-forward). Never judge the peak alone.
  2. Compute contribution margin per order, not revenue. Cost of goods, shipping, payment fees, and the discount itself all come out first: the same discipline as new-customer vs blended CAC.
  3. Choose a causal method from the table below: a holdout, a geo split, or a counterfactual baseline built from your own history.
  4. Split new vs returning customers. A discount that acquires first-time buyers with strong repeat behavior can justify a margin loss today; one that subsidizes loyal repeat buyers cannot. Loyalty dynamics deserve their own attribution treatment.
  5. Estimate the pull-forward dip by comparing post-sale weeks to the counterfactual baseline, not to the sale week.
  6. Check cannibalization across SKUs and channels, including dynamic pricing interactions.
  7. Decide: keep, restructure, or kill. Restructuring options include tighter targeting, threshold-based offers, and bundle discounts that protect margin.

Choosing a Measurement Method

MethodWhat it tells youEffortWeakness
Before/after comparisonAlmost nothing causalTrivialConfounded by seasonality and pull-forward
Audience holdout testTrue lift among the held-out splitMediumHard on sitewide sales; needs volume: see our incrementality testing guide
Geo lift testRegional causal liftMedium-highSlow; needs geographic scale, like Meta conversion lift studies or a Meta ads holdout

Our guide to measuring incremental lift and the incremental lift calculator walk through the arithmetic, and the academic uplift-modeling literature reaches the same conclusion: optimize promotions on incremental profit, not conversion (Incremental Profit per Conversion, arXiv).

Common Mistakes

  • Judging the sale week in isolation: the pre- and post-dip are part of the promotion's causal effect.
  • Measuring revenue instead of contribution margin: the worked example above shows how the two can move in opposite directions.
  • Ignoring the new/returning split: subsidizing repeat buyers is the most expensive fate of all; retention economics belong in the analysis, as covered in our customer retention guide.
  • Letting coupon extensions stack: browser coupon tools convert full-price intent into discounted orders at scale.
  • Training your customers: a predictable monthly sale converts your whole catalog to "never buy at full price."
  • Forgetting returns: discounted impulse purchases return at higher rates, further eroding realized margin.
  • Crediting the promo for seasonal demand: always compare against a seasonality-aware baseline, not last month.

Promotion Profitability Checklist

  • Contribution margin per order computed, including discount, COGS, shipping, fees
  • Evaluation window covers pre-period and 2–4× post-period
  • Counterfactual baseline built (holdout, geo, or causal model on GA4 history)
  • Four Fates mix estimated: incremental / subsidized / pulled forward / switched
  • New vs returning buyer split analyzed
  • Returns rate for promo cohort tracked
  • Promo cadence reviewed for customer-training effects
  • Decision recorded: keep, restructure, or kill

Key Takeaways

  • Discounts are an intervention, and interventions need causal measurement: the ecommerce analytics stack that stops at dashboards will keep declaring losing sales a success.
  • A promotion is profitable only when incremental margin beats subsidy plus pull-forward; with deep discounts on typical DTC margins, that bar is high.
  • Revenue and contribution margin can move in opposite directions across the full promo window.
  • Fold the answer into your budget optimization framework: a killed loss-making sale is often the cheapest margin you will ever recover, and the cleanest number you can bring to your CFO.

For €99, upload any historical GA4 period and get causal attribution for every channel in 1–2 minutes: no pixel, no migration.

Frequently asked questions

  • What is promotion incrementality in ecommerce?
    Promotion incrementality is the share of orders during a sale that would not have happened without the discount. It excludes subsidized orders (customers who would have bought at full price), pull-forward orders (purchases moved earlier in time), and switched orders (cannibalized from other SKUs or channels). Only incremental orders create new contribution margin.
  • What is pull-forward demand?
    Pull-forward demand is revenue a promotion borrows from future periods: customers who would have bought next week or next month buy during the sale instead, at a discounted margin. It typically shows up as a demand dip in the weeks after the sale ends, and as customers learn your promo cadence, they also delay purchases before predictable sales.
  • Do frequent sitewide sales hurt a brand long term?
    They can. Predictable promotions train customers to wait for discounts, which lengthens the pull-forward effect and shrinks full-price demand. Steep or constant discounting can also erode brand equity, particularly for premium positioning. Occasional, unpredictable, or targeted offers preserve more full-price demand than a fixed promo calendar.

Go deeper: Causal attribution, explained.

Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.

Have an audience of ecommerce operators? Earn 20% recurring commission by recommending the €99 read.

Keep reading

Terms in this article

Browse the full glossary

Your platforms guess.
We run the math.

Upload a GA4 export and see what each channel caused, next to last-click, in 1–2 minutes. The read is yours to keep.

The free finding runs in your browser. Your file never leaves it. The full read is €99, refundable within 30 days, no questions asked. Prices exclude VAT.