Reading Contribution Margin Per SKU vs Per Order
A 35% blended contribution margin often hides 60% hero SKUs propping up 10% loss-leaders. Here's how to layer SKU-level COGS variance on top of a per-order calculator and what to do with what you find.
Quick answer
A per-order contribution margin calculator gives you a blended average — useful for forecasting, dangerous for decisions. If your catalogue has more than ~30 active SKUs, recompute CM per SKU at least quarterly: the blended number almost always hides hero SKUs (50-65% CM) subsidising loss-leaders (0-15% CM) that you're actively paying to acquire customers for.
Reading contribution margin per SKU vs per order
Interpreting a blended per-order contribution margin alongside SKU-level CM to surface loss-leaders hidden by category averages.
Per-order contribution margin is revenue minus variable costs averaged across every order in a period. It's easy to compute and easy to misread, because it collapses a wide catalogue into one number. Per-SKU contribution margin recomputes the same formula at the line-item level — exposing which products actually fund the business and which ones bleed margin while inflating top-line revenue. Reading the two side-by-side is how you catch a 35% blended figure that's really a 60% hero range and a 10% loss-leader range stitched together.
Most stores compute contribution margin from a Shopify export and a COGS column. The output is one number for the month, and it lands in a board deck without much questioning.
Why the per-order average misleads
Blended averages assume your SKUs are roughly homogenous. In a real apparel or beauty catalogue, they aren't. A €45 hero tee with €12 landed cost lives alongside a €22 entry-price tank top with €17 landed cost — same brand, wildly different unit economics.
When your paid acquisition pushes the entry-price tank top as the hook offer, you scale a 23% CM product into more orders. The Contribution Margin Calculator reports the period blended figure went from 38% to 34%, and nobody's sure why. The mix shifted underneath you.
The averaging trap
A 35% blended CM that's actually 60% on hero SKUs and 10% on loss-leaders is not the same business as a 35% CM that's tight around 30-40% on every SKU. Same headline number, completely different risk profile and completely different growth lever.
How to detect SKU-level variance
Pull a 90-day line-item export from Shopify or WooCommerce: SKU, units sold, gross revenue, discounts applied, returns. Join it to your COGS sheet (landed cost per unit including freight and duties) and your variable fulfilment cost per order — pick, pack, payment processing, shipping subsidy.
Compute CM% per SKU. Sort descending. Then bucket: top quartile (heroes), middle 50% (workhorses), bottom quartile (drag). The shape of that distribution is the signal you can't get from the per-order calculator.
Typical CM distribution by SKU tier — apparel store, €3M revenue, 180 active SKUs
| SKU tier | Share of revenue | Avg CM% | Avg landed cost ratio | Notes |
|---|---|---|---|---|
| Hero (top quartile) | 52% | 58% | 26% | Full-price, low return, organic demand |
| Workhorse (middle 50%) | 36% | 34% | 44% | Bread-and-butter; price-promoted in flash sales |
| Drag (bottom quartile) | 12% | 8% | 61% | Loss-leaders, end-of-line, high-return sizes |
| Blended | 100% | 35% | 39% | What the per-order calculator reports |
How to act on what you find
Drag SKUs aren't always cuttable. A €19 loss-leader that brings in first-time buyers who later buy a €70 hero set is doing its job — provided the LTV math holds. The question is whether you know it's doing that job, or whether it's just leaking.
Three moves usually drop out of this analysis. Reprice the workhorse tier by 4-8% on items with low price elasticity. Cap paid acquisition spend on drag SKUs unless cohort LTV justifies it. And renegotiate landed cost on the top 10 volume SKUs — that's where a 3-point COGS improvement actually moves the blended number.
What "good" looks like
Healthy catalogues have a hero tier above 50% CM, a workhorse band of 25-40%, and a drag tier you've explicitly chosen — sized to <15% of revenue and tied to a measurable acquisition or clearance role. If your drag tier is >20% of revenue and nobody can explain why, that's the finding.
Experiment ideas
Test a price increase of 5% on the top 20 workhorse SKUs with a 14-day holdout — measure both conversion rate and CM€ per visitor, not just CM%. A 5% lift on a 34% CM SKU absorbs a 4-point conversion drop and still grows margin contribution.
On the PDP side, test removing drag SKUs from category landing pages and the homepage carousel. If site-wide CM% lifts without revenue dropping more than the drag tier's contribution, the SKUs were absorbing real estate that hero products convert better on.
Frequently asked questions
Quarterly is the right cadence for most catalogues under 500 SKUs. Monthly only if landed costs are volatile (sea freight swings, FX exposure) or you're actively repricing. Anything more frequent than monthly creates noise without insight.
Gross margin only nets COGS — landed product cost. Contribution margin also nets variable fulfilment costs: pick-and-pack, payment processing, outbound shipping subsidy, and a returns reserve. CM is what's left to cover fixed costs and profit; GM overstates how much each SKU actually contributes.
Yes, and they often flip the ranking. A dress with a 35% return rate at 50% headline CM nets closer to 20% once you subtract reverse logistics, restocking, and unsellable inventory write-offs. Apply a SKU-specific return reserve, not a blended one.
Trust it for period-over-period trend and cash-flow forecasting. Don't trust it for pricing decisions, paid-media SKU caps, or assortment trimming. Those need the SKU-level layer underneath.
Allocate bundle revenue and COGS proportionally to component SKUs at their standalone prices, then compute CM on the bundle as its own line. You want to see both views — the components driving the contribution, and the bundle as a sellable unit.
No. A loss-leader is fine if it has a documented acquisition role and the cohort LTV justifies the negative first-order margin. The failure mode is loss-leaders that exist by accident — usually because COGS crept up or you discounted them into the ground and never reset price.
Below 15% CM after returns reserve is a typical drag line for apparel and beauty. Electronics and consumables often run thinner — 8-12% can still be healthy if velocity is high. The threshold matters less than where the SKU sits in your own distribution.
Sharply and asymmetrically. A 20% storewide promo on a 35% CM SKU drops it to ~19% CM; on a 50% CM hero it drops to ~38%. Promos compress your distribution — heroes still earn, drag goes negative. Always model promo CM at the SKU level, not blended.
The line-item data is there, but Shopify's native reporting doesn't join COGS and variable fulfilment cost per SKU. You'll need a spreadsheet or an analytics layer that ingests the line-item export and your cost file. The math itself is straightforward once the data is joined.
Set CM€ floors per SKU before allowing it as a Meta or Google product feed entry. A drag SKU with €1.80 of contribution margin per unit cannot absorb a €14 CAC, so excluding it from prospecting campaigns usually lifts blended ROAS within two weeks.
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.