Maximum Black Friday Discount Before Contribution Margin Goes Negative

Metricuno
May 26, 2026
7 min read
Maximum Black Friday Discount Before Contribution Margin Goes Negative — Find the deepest Black Friday discount you can run before contribution margin turns negative — formula, worked Shopify example, and category benchmarks.
Quick answer

The deepest sitewide BFCM code you can run without selling at a loss — derived from your COGS, shipping subsidy, and incremental paid CAC, with a worked Shopify apparel example.

Quick answer

Your maximum sitewide BFCM discount is: 1 − (COGS + shipping subsidy + incremental CAC + payment fees) ÷ list price. For a typical Shopify apparel store at €80 AOV with 32% COGS, €6 shipping subsidy, €14 incremental CAC and 2.5% payment fees, the ceiling lands around 47% off — below that you still ship a positive contribution margin; above it, every order loses money.

Definition
Promotional pricing

Maximum BFCM Discount Before Contribution Margin Goes Negative

The deepest sitewide Black Friday code you can run before each order ships at a loss after COGS, fulfilment, paid CAC and fees.

This is the annual sign-off number every DTC finance lead should compute before the promo calendar locks. It answers a single question: at what discount depth does one more incremental sale stop adding contribution and start subtracting from it?

The ceiling is set by four cost lines that scale with each order — COGS, the shipping you subsidise for the free-shipping threshold, the incremental paid CAC pulled in by BFCM traffic, and processor fees. Once the discounted price drops below their sum, you are paying customers to take product. The number sits above your everyday discount floor because BFCM acquires new buyers worth modelling on LTV, but it is still a hard ceiling.

Also known as
BFCM discount ceiling
negative contribution discount threshold

The mistake most teams make is anchoring on last year's headline code ("we did 35% last year, let's do 40") instead of rebuilding the ceiling from this year's unit economics. COGS drifted, freight changed, and Meta CPMs are not what they were in 2022.

Rebuild the number every September. The inputs move enough year-over-year that an unchecked 5-point discount creep can turn a profitable BFCM into a cash-burn weekend with strong topline.

What actually eats the margin on a BFCM order

Four cost lines compress the gap between list price and contribution. COGS is the obvious one. Shipping subsidy is the second — most Shopify stores raise the free-shipping threshold for BFCM, but discounted carts often drop back under it, so you pay the carrier.

The third is incremental paid CAC. BFCM week pulls in retargeting and prospecting spend at a higher CPM than baseline. The fourth is payment processing — Shop Pay, Klarna and PayPal fees are charged on the discounted total, but the absolute fee still scales with order count, not margin.

The line item people forget

Returns. Apparel BFCM return rates run 25-40% versus 12-18% baseline. If you model the ceiling on gross orders rather than net-of-returns orders, you'll overstate the safe discount by 3-6 percentage points. Use a net-revenue assumption when you compute the ceiling.

The math, with a worked Shopify apparel example

Take a mid-market apparel store at €80 AOV. COGS lands at 32% of list, so €25.60. The free-shipping threshold drops carts under €60 net, costing roughly €6 per order in subsidised carrier fees.

Incremental BFCM CAC for the same brand has historically come in around €14 — higher than the €9 baseline because of competitive auction pressure. Payment fees sit at 2.5% of the discounted price. Total variable cost before discount: €25.60 + €6 + €14 = €45.60, plus 2.5% of whatever the customer pays.

Solving for the breakeven discount: discounted price × (1 − 0.025) = €45.60, so the floor price is €46.77. That's a 41.5% discount off €80 — and that's breakeven, not safety. Build in a 5-point buffer for return-rate drag and the practical ceiling is around 36-37% off.

Typical ceilings by category

Benchmark

Indicative BFCM discount ceilings at typical DTC unit economics (after a 5-point return-rate buffer).

CategoryTypical COGS %Avg AOVPractical ceiling
Apparel (mid-market)30-35%€70-9035-40%
Beauty / skincare18-25%€45-6545-55%
Consumer electronics accessories40-50%€50-8020-28%
Home & lifestyle35-45%€90-14028-35%
Supplements / CPG22-30%€35-5540-48%

Beauty and supplements tolerate the deepest codes because COGS sits low and reorder economics carry the new-customer LTV math. Electronics accessories have almost no room — a 30% sitewide code is already underwater for most of these brands.

How to set the ceiling for your store

Pull the last 90 days of net-of-returns orders, not gross. Compute true variable COGS per SKU, the realised shipping subsidy per discounted order, and the blended incremental CAC from your BFCM 2023 cohort if you have it. These three are the dial-able inputs; everything else is fixed.

Run the math at the SKU bundle level, not the catalogue average. A sitewide 40% code applied to your lowest-margin bundle is the actual constraint — not the blended number. This is the same logic as choosing between a discount floor and a markdown floor on slow-moving SKUs: the floor binds on the worst case, not the average.

The trap: the ceiling is not the right answer

Hitting the ceiling means every order is exactly breakeven on contribution. That's a bad place to operate, because the anchoring damage from a 40%+ code outlasts the promo window — customers wait for it again in January, and your average realised discount drifts up through Q1.

Treat the ceiling as a hard guardrail, not a target. The right BFCM depth is usually 5-8 points below the ceiling, paired with category-level exclusions on your thinnest-margin bundles. Pull the contribution margin levers — bundle AOV, shipping threshold, free-gift mechanics — before you push the discount number itself.

Frequently asked

Frequently asked questions

Not in the ceiling itself. The ceiling protects first-order contribution. LTV belongs in a separate decision: how far below the ceiling you're willing to operate, based on how confident you are in the cohort's repeat behaviour. For apparel, BFCM cohorts typically repeat at 60-70% of baseline cohort rates — discount that LTV before betting on it.

Your everyday discount floor uses baseline CAC and assumes returning-customer mix. The BFCM ceiling uses incremental paid CAC at peak CPMs and assumes a new-customer-heavy mix with elevated return rates. The BFCM number is almost always 8-15 points more conservative than the everyday floor for the same store.

Yes, materially. Tiered thresholds lift AOV, which spreads the per-order fixed costs (shipping, CAC, fees) across more revenue. The same brand can typically run a 5-7 point deeper discount through a threshold mechanic than through a flat sitewide code, with similar contribution outcomes.

Run the math on your worst-margin bundle, not the catalogue average. A sitewide code applies to every cart, so the binding constraint is the cart configuration with the thinnest unit economics. If that's untenable, exclude those SKUs from the promo rather than lowering the sitewide depth for everyone.

Model them in. Apparel return rates spike to 25-40% over BFCM versus 12-18% baseline. If you ignore that, your ceiling looks 3-6 points more generous than it really is. Use net-of-returns revenue and net-of-returns COGS recovery (some product is unsellable on return) when computing the breakeven.

Add them as a separate line. BNPL fees run 3-6% versus 2-3% for cards, and BFCM BNPL adoption is usually 1.5-2x baseline. If 25% of your BFCM orders go through Klarna, your blended fee rate is meaningfully higher than your normal Shopify Payments rate — and it compresses the ceiling by roughly 1 point.

Take 100% minus your blended variable cost ratio (COGS% + fulfilment% + payment fee% + CAC as % of AOV), then subtract 5 points for return drag. For most mid-market DTC apparel stores this lands in the 32-38% range. Use this as a sanity check, not a sign-off number.

Discounted. Processing fees, taxes, and any partner platform fees (Amazon Buy with Prime, TikTok Shop) are charged on what the customer actually pays. Modelling on gross will overstate fees and give you an artificially conservative ceiling — usually by half a point, but worth getting right.

Twice — once in mid-September with planning assumptions, once on November 20 with actual realised CAC from the first prospecting flights. If CPMs ran 15%+ above plan in the warm-up week, your ceiling has tightened and you need to know before Black Friday morning, not after.

No. Wholesale already operates at thinner margins and rarely carries incremental paid CAC against each order, so the variable cost structure is completely different. Build a separate ceiling for any wholesale or marketplace BFCM activity rather than reusing the DTC number.

Get an AI expert review of your site

Paste your URL — Metricuno's AI runs the same heuristic checks a senior CRO consultant would, scoring your page and prioritising the fixes that'll move conversion fastest.