Discount Depth Impact on Margin

A 20% discount doesn't cost you 20% of profit — on a thin-margin SKU it can wipe out contribution margin entirely. Here's the math, the thresholds, and what to do instead.
Quick answer
A discount comes entirely out of contribution margin, not out of revenue proportionally. So a 20% storewide promo on a SKU with a 35% starting CM doesn't shave 20% off profit — it shaves roughly 57%. On a 25% CM SKU, the same 20% discount erases 80% of profit. On anything under 22% CM, a 20% promo turns the order negative.
Discount Depth Impact on Margin
The non-linear way percentage-off promotions erode contribution margin, because the discount is deducted from a margin base that's smaller than revenue.
Discount depth impact on margin describes how each incremental percentage point of promotional discount compounds disproportionately against contribution margin. Because variable costs (COGS, payment fees, pick-and-pack, last-mile shipping) are fixed in absolute terms per unit, the entire discount value is deducted from the margin pool — not split with the cost base.
The practical consequence: a 10% sitewide promo on an apparel store running 30% blended CM costs you a third of profit on that order, not a tenth. Once discount depth exceeds starting CM, the SKU sells at a contribution loss — you're paying customers to take inventory.
Most merchandising teams model promos as a revenue trade — "we'll do 20% off and make it up on volume." The error is using revenue as the denominator. The correct denominator is contribution margin, and once you re-do the math on a CM basis the numbers stop looking friendly fast.
This page walks through exactly how the math compounds, what discount depths your CM tiers can actually absorb, how to spot SKUs that have already crossed the line, and which promotional structures protect margin while still feeling generous to the shopper.
Why discounts attack margin, not revenue
Take a €60 apparel item with €36 in variable costs (COGS €28, payment + shipping + pick-pack €8). That's €24 of contribution margin per unit, a 40% CM. Healthy.
Run a 20% promo. Revenue drops to €48. Variable costs don't move — fabric still costs €28, the carrier still charges the same, Stripe still takes its 2.9%. CM falls to €12. You've kept 60% of revenue but only 50% of profit. Push to 30% off and CM falls to €6 — a quarter of where you started, on a discount most teams call "moderate."
The break-even rule of thumb
Discount % ÷ Starting CM % = % of contribution margin destroyed. A 15% discount on a 30% CM product destroys 50% of CM. A 25% discount on a 40% CM product destroys 62.5%. When the ratio hits 100%, you're at zero contribution. Anything beyond, you're funding the order.
The thin-margin trap on beauty and accessories
Beauty SKUs in the €15-€25 range often run 50-60% gross margin on paper but only 22-28% contribution margin once you net out a €4.50 last-mile shipping subsidy, 3% payment fees, and a €1.80 pick-pack cost. The fixed-cost stack eats a bigger share of a small order.
Now imagine a €19 serum with 24% CM. The marketing team launches a 25% Black Friday promo because "everyone does 25%." The math: discount of €4.75 against a CM base of €4.56. You're losing €0.19 per unit before counting paid acquisition cost on the visit that drove the order.
This is where the volume-makes-it-up argument breaks. Even a 3x lift in conversion just multiplies the loss. The order economics need to clear before scale becomes your friend — discount depth is the lever that determines whether scaling helps or hurts. This sits inside the broader set of contribution margin levers a merchandising team has to manage.
Discount tolerance by starting CM
Contribution margin remaining after promo, by starting CM and discount depth (assumes fixed variable costs per unit)
| Starting CM | 10% off | 15% off | 20% off | 25% off | 30% off | Break-even discount |
|---|---|---|---|---|---|---|
| 20% CM (thin) | 10% CM | 5% CM | 0% CM | -5% CM | -10% CM | 20% |
| 25% CM | 15% CM | 10% CM | 5% CM | 0% CM | -5% CM | 25% |
| 30% CM | 20% CM | 15% CM | 10% CM | 5% CM | 0% CM | 30% |
| 40% CM (healthy) | 30% CM | 25% CM | 20% CM | 15% CM | 10% CM | 40% |
| 55% CM (premium) | 45% CM | 40% CM | 35% CM | 30% CM | 25% CM | 55% |
Read the rightmost column as your absolute ceiling — past that point you're paying customers. But contribution margin still needs to cover fulfillment overhead, returns, and paid acquisition, so the practical ceiling is roughly 60-70% of starting CM. A 30% CM SKU shouldn't be discounted below 18-20% off without a deliberate loss-leader rationale.
How to detect margin-negative promos in your store
The fastest signal: pull last quarter's orders, segment by promo code applied vs. organic full-price, and compute average CM per order in each bucket. If the promo bucket's CM is more than 40% below the full-price bucket, your discount depth is exceeding what the catalog can absorb.
Second signal: look at SKU-level CM after promo for your top 20 sellers. Any SKU showing post-discount CM under €3 absolute (or under 12% relative) during a promo window is a candidate for exclusion from blanket promotions. Add a hard floor in your discount rules so the system can't apply codes below that threshold.
Structures that protect margin
Bundle discounts ("buy 2, save 15%") work better than flat percent-off because they raise AOV and amortize the fixed per-order costs across more units — protecting the CM ratio even at the same headline discount. Thresholded free shipping ("free shipping over €60") shifts a fixed cost rather than a percent, which scales much better on larger baskets.
For SKUs under 30% starting CM, prefer gift-with-purchase over markdown — a €4 sample feels generous to the shopper but costs you €1.20 at unit economics. And exclude thin-margin items from sitewide codes by default; the merchandising win from including them rarely offsets the CM destruction. Test these structures against your standard percent-off promo to see which actually grows contribution margin per session.
Discount depth and margin: common questions
Because variable costs (COGS, shipping, payment fees) don't shrink when you discount. The full 20% comes out of contribution margin, which is a smaller base than revenue. On a 40% CM product, that 20% revenue cut is actually a 50% margin cut — the discount is 20% of price but half of CM.
A practical rule: stay below 60-70% of starting CM. So a 30% CM SKU can absorb roughly 18-20% off before it stops covering acquisition costs. A 50% CM premium product can handle 30-35% off comfortably. Anything in the 20-25% CM band shouldn't see more than 10-12% off without a specific strategic reason.
Gross margin only nets out COGS. Contribution margin also subtracts variable order costs — shipping, payment fees, pick-pack, returns provision. CM is the right denominator for promo decisions because those variable costs survive the discount. A SKU with 55% gross margin might only have 28% CM once fulfillment is netted out.
No — multiplying a negative number gives a bigger negative. If unit economics are below zero post-discount, more units lose more money. Volume only helps when post-discount CM is still positive; then incremental units cover incremental fixed costs (warehouse, marketing overhead). Always check unit CM first, scale second.
Convert every layer to its CM cost. A 15% code on a €60 order = €9. A €5 loyalty credit = €5. Free shipping = your subsidized €4-6. Stacked, you're at €18-20 deducted from a CM that might have been €22-24. Stacking rules should cap total discount value at a percentage of starting CM, not at a percentage of revenue.
Yes, when starting CM is high (50%+) and you need a clearance signal, or when the promo drives demonstrably new customers whose LTV justifies the first-order CM hit. For thin-margin catalogs or repeat-purchase products, structured promos (bundles, thresholds, GWP) almost always beat flat percent-off on contribution margin per session.
On Shopify, use collection-based discount eligibility — create a 'discount-eligible' collection and exclude your thin-CM SKUs. On WooCommerce, set per-product 'sale prices forbidden' flags or use a plugin that supports product exclusions. Either way, the workflow should be driven by a CM threshold review, not by intuition.
Test the structure (flat % vs bundle vs threshold free shipping) holding the perceived value roughly constant — e.g. 15% off vs buy-2-save-15% vs free shipping over €60. Measure contribution margin per session as the primary metric, not conversion rate or AOV in isolation. A bundle that converts 10% less but lifts CM/session 25% is the winner.
Only if you can model second-order retention. A 20% first-order code on a 25% CM beauty product loses money on order one. It's only justifiable if 40%+ of those customers reorder within 90 days at full price. Without that retention data, default to a free-sample GWP — it feels equivalent to the shopper and costs you a fraction.
Quarterly at minimum, and any time a major variable cost moves — carrier rate change, payment processor renegotiation, COGS shift from a new supplier. Margins drift quietly: a SKU that was 32% CM at launch can be 24% CM eighteen months later as shipping rates creep, and your discount rules need to catch up.
Test ideas before you ship them
Run unlimited A/B tests, attach hypotheses to outcomes, and build a searchable archive of what works — and what doesn't.