Ecommerce Discount Strategy: 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.
Read the full article below for detailed insights and actionable strategies.
The attribution problem
One sale. Four channels. 400% credit claimed.
Reported revenue: €400 · Actual revenue: €100 · Gap: €300
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. Most Shopify brands evaluate the sale week in isolation, so they systematically overestimate promotion profit. 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.
Why the Sale-Week Dashboard Lies
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.
| Fate | What happened | Effect on contribution margin |
|---|---|---|
| 1. Incremental | The order would not exist without the discount | Positive: discounted margin gained |
| 2. Subsidized | Customer would have bought anyway, at full price | Negative: discount given away for nothing |
| 3. Pulled forward | Customer bought now instead of later | Negative: full-price future margin swapped for discounted margin today |
| 4. Switched | Order cannibalized another SKU or channel | Neutral to negative, depending on margin mix |
The rule of thumb that falls out of the math: with a 20% discount on a ~40% profit margin product, half of your per-order contribution is gone. You need roughly one genuinely incremental order for every subsidized-or-shifted order just to break even — before ad spend on the promo.
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 margin | 1,900 × €10 = €19,000 | 1,000 × €20 = €20,000 |
| Next two weeks margin | 1,600 × €20 = €32,000 | 2,000 × €20 = €40,000 |
| Three-week contribution | €51,000 | €60,000 |
Net causal impact: −€9,000 in contribution margin, even though three-week revenue is actually up €6,000 (€156,000 vs €150,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
- 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.
- 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.
- Choose a causal method from the table below — a holdout, a geo split, or a counterfactual baseline built from your own history.
- 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.
- Estimate the pull-forward dip by comparing post-sale weeks to the counterfactual baseline, not to the sale week.
- Check cannibalization across SKUs and channels, including dynamic pricing interactions.
- Decide: keep, restructure, or kill. Restructuring options include tighter targeting, threshold-based offers, and bundle discounts that protect margin.
Choosing a Measurement Method
| Method | What it tells you | Effort | Weakness |
|---|---|---|---|
| Before/after comparison | Almost nothing causal | Trivial | Confounded by seasonality and pull-forward |
| Audience holdout test | True lift among the held-out split | Medium | Hard on sitewide sales; needs volume — see our incrementality testing guide |
| Geo lift test | Regional causal lift | Medium-high | Slow; needs geographic scale, like Meta conversion lift studies or a Meta ads holdout |
| Causal attribution on GA4 history | Counterfactual baseline for any past promo | Low (works retroactively) | Needs clean historical data — see retroactive attribution analysis from your GA4 export |
The last row is the one most Shopify brands overlook: because causal attribution (Bayesian inference applied to your own order history) builds a counterfactual from data you already have, you can audit every promotion you have ever run — no new test required. 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.
- You do not need to run a new experiment to audit past promotions: a counterfactual baseline from your GA4 BigQuery export works retroactively — a capability worth weighing when comparing the best marketing attribution tools or broader incrementality platforms.
- 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 5–10 minutes — no pixel, no migration. Go Pro at €299/mo for continuous attribution, an AI chatbot for your data, and a developer API.
Get attribution insights in your inbox
One email per week. No spam. Unsubscribe anytime.
Key Terms in This Article
Bayesian Inference
Bayesian Inference updates the probability of a hypothesis based on new evidence. It refines marketing attribution by incorporating prior beliefs about channel effectiveness.
Causal Attribution
Causal Attribution uses causal inference to determine which marketing touchpoints genuinely cause conversions, not just correlate with them.
Counterfactual
Counterfactual is a hypothetical outcome that would have occurred if a subject had received a different treatment.
Incrementality
Incrementality measures the true causal impact of a marketing campaign. It quantifies the additional conversions or revenue directly from that activity.
Incrementality Testing
Incrementality Testing measures the additional impact of a marketing campaign. It compares exposed and control groups to determine causal effect.
Marketing Attribution
Marketing attribution assigns credit to marketing touchpoints that contribute to a conversion or sale. Causal inference enhances attribution models by identifying true cause-effect relationships.
Profit Margin
Profit margin measures profitability, calculated as net income divided by revenue and expressed as a percentage.
Regression to the Mean
Regression to the Mean describes the phenomenon where an extreme variable measurement tends to be closer to the average on subsequent measurements. This can bias before-and-after studies, falsely attributing change to an intervention.
Related Articles
Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.
Ready to see your real numbers?
Own the budget? Upload your GA4 export and see which channels drive incremental sales, with confidence intervals, in minutes. Have to defend it? Start with the live demo and take the read to your CFO.
Full refund if you don't see value.
Stay ahead of the attribution curve
Weekly insights on marketing attribution, incrementality testing, and data-driven growth. Written for the person who owns the budget and the person who has to defend it.
No spam. Unsubscribe anytime. We respect your data.
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.
How do I know if my discount was profitable?
Compare contribution margin — not revenue — across the full promo window (including 2–4× the sale length afterwards) against a no-sale counterfactual baseline. A promotion is profitable when incremental margin exceeds the margin given away to subsidized buyers plus the future margin lost to pull-forward. A sale week can set a revenue record and still destroy profit.
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.
How long after a sale should I keep measuring?
A practical rule is a post-period of at least two to four times the length of the sale itself. A one-week sale needs two to four weeks of post-sale observation to capture the pull-forward dip. Brands with trained, promo-anticipating customers may need longer windows.
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.
Can I measure past promotions without running new tests?
Yes. Causal attribution builds a counterfactual baseline from your own historical data, so you can retroactively audit any promotion in your GA4 history. With Causality Engine, you upload a historical GA4 export and get causal attribution for every channel — including promo periods — in 5–10 minutes for €99, with no pixel or migration.