CM per Order by SKU: Finding The Margin-Negative Bestsellers

Metricuno
June 8, 2026
7 min read
CM per Order by SKU: Finding The Margin-Negative Bestsellers — Your bestseller may be losing money. Use SKU-level contribution margin to spot margin-negative winners — and decide whether to prune, reprice, or rebundle.
Quick answer

A SKU-level audit that exposes the bestseller paradox: high-volume products that lose money once shipping weight, return rate, and discount frequency are attributed line-by-line.

Quick answer

Calculate contribution margin per order at the SKU line-item level — revenue minus product cost, payment fees, pick/pack, outbound shipping, returns reserve, and SKU-specific discount load. Sort descending by units sold. The margin-negative bestsellers will be in the top 20 rows. Then prune, reprice, or rebundle each one — don't kill the whole SKU on instinct.

Definition
Profitability

CM per Order by SKU

SKU-level contribution margin attributed line-by-line, exposing high-volume products that lose money on every order.

CM per Order by SKU is the per-line-item version of contribution margin per order. Instead of averaging margin across the whole basket, you attribute every variable cost — COGS, payment fees, pick/pack labour, dimensional-weight shipping, return rate reserve, and the discount frequency that specific SKU triggers — back to the individual product line.

The payoff is the bestseller paradox: the SKU your dashboard celebrates as a top seller is often the SKU subsidising the rest of the catalogue. A 12kg dog bed at €49 with a 22% return rate and 60% promo-attached orders can ship at –€4 per unit while looking like a hero in GA4.

Also known as
SKU-level contribution margin
line-item profitability
per-SKU CM

Most stores never run this audit because their analytics stack reports revenue at the SKU level but costs at the order level. The two never reconcile, so a heavy, returns-prone, discount-magnet bestseller hides inside a healthy blended margin.

This page assumes you already understand Contribution Margin per Order at the basket level. Here we go one layer deeper: attributing those same variable costs back to individual products so the catalogue tells the truth.

Why bestsellers go margin-negative

Three forces compound on the same SKU. First, dimensional weight: bulky or heavy products carry shipping costs your flat-rate checkout fee never covers. A surfboard rack, a ceramic planter, a 1.5L shampoo refill — the volumetric calculation crushes the margin.

Second, return rate. Apparel sits at 20–35% on size-sensitive categories; the return ships back, gets inspected, often repacked, sometimes written off. Each return event easily costs €8–€14 against an item that earned €11 gross margin on the way out.

The discount-frequency trap

If a SKU appears in 60% of promo orders but only 30% of full-price orders, its real average selling price is 12–18% below the price you defend in margin spreadsheets. Bestsellers earn that status partly because they're the discount magnet — which is exactly why their per-unit CM collapses.

How to detect the margin-negative bestsellers

Pull 90 days of order line items. For each SKU, attribute six cost categories per unit sold: landed COGS, payment processing (typically 1.9–2.9% of line revenue), pick/pack labour (€0.60–€1.20), outbound shipping allocated by weight, returns reserve (return rate × round-trip handling cost), and promo load (discount value attributed at line level).

Sort the result by units sold, descending. Look at the top 20 rows. In most catalogues two to four of them are CM-negative or below €2 contribution — and one is almost always a category-defining hero SKU you'd never suspect.

Cross-reference with channel mix. A SKU that's CM-positive on direct/email traffic but CM-negative on paid social is a different problem (acquisition cost) than one that's negative across every channel (unit economics).

What the numbers usually look like

Benchmark

Typical per-unit cost stack for four bestseller archetypes (illustrative figures, €)

SKU archetypeASPCOGSShipping + handlingReturns reservePromo loadCM per unit
Apparel: size-sensitive dress59.0016.005.5013.209.40+14.90
Beauty: hero serum (light, low returns)42.008.503.800.905.20+23.60
Home: bulky ceramic planter49.0014.0011.803.108.80+11.30
Apparel: oversized hoodie, heavily promo'd65.0022.007.409.1019.50+7.00
Home: 2kg refill bundle, free-ship trigger32.0011.508.901.606.40+3.60
Electronics: returned-often gadget79.0038.006.2021.3011.20+2.10

The bottom three rows are the danger zone. None are technically negative in this sample, but with one bad month — a shipping carrier surcharge, a return rate uptick, a longer promo window — they flip below zero. Bestsellers with CM under €4 are de facto margin-negative across a full year.

The prune / reprice / rebundle decision tree

Prune when the SKU is CM-negative AND has no halo effect — meaning customers who bought it don't return for higher-margin items within 90 days. The audit is cohort cross-tab: does this SKU's repeat-purchase rate justify subsidising it as a loss leader? If not, discontinue.

Reprice when the SKU is margin-negative because of promo load, not unit economics. A €5–€8 list-price increase combined with removing the SKU from sitewide promo codes (exclusion list, not discontinuation) recovers €6–€12 per unit without touching demand if the price elasticity is below 0.8. Test before committing — use a price A/B at the variant level or a Shopify Markets price differential.

Rebundle when the SKU is the gateway product — high traffic, high conversion, low margin. Pair it with a high-margin accessory and ship as a kit at a price point that lifts blended CM above €10. The heavy planter ships with a €14 saucer; the size-sensitive dress ships with a €19 styling guide or a low-cost accessory. Bundle AOV does the work the unit price can't.

Experiment ideas to run this quarter

Test 1: exclude your three weakest-CM bestsellers from the next sitewide promo. Measure category-level revenue and blended CM over a 14-day window. If category revenue holds within 5% and CM lifts, the SKU was carrying discount load that didn't drive incremental demand.

Test 2: raise the price of a CM-negative hero by 8–12% on a 50/50 split. Watch add-to-cart rate and net revenue per visitor. Most heroes have inelastic demand inside that band because they're searched for by name. Test 3: gate free shipping on a basket threshold €6 above the heavy SKU's ASP, forcing a margin-recovering attach.

Frequently asked

Frequently asked questions

Contribution Margin per Order is a basket-level metric — it tells you whether the average order is profitable. CM per Order by SKU breaks that same calculation down to the line item, attributing every variable cost to the specific product that drove it. A profitable basket can contain a money-losing SKU.

Shopify reports revenue and gross margin at the SKU level but allocates shipping, payment fees, returns, and promo costs at the order level. The reconciliation has to happen in your data warehouse or a tool that joins order, fulfilment, returns, and promo tables on line-item ID.

Once return rate × round-trip return cost exceeds 25% of the unit's gross margin, the SKU is fragile. Above 40% it's almost always margin-negative once you include re-inspection labour and the share of returned units that get written off. Apparel sits dangerously close to that line in size-sensitive categories.

Not in the contribution margin calculation itself — keep CM as variable cost only. But run a parallel view that allocates paid-acquisition cost by the channel mix that drives each SKU's orders. A SKU with €5 CM and €18 blended CAC is a different problem than one with €5 CM and €2 CAC.

Quarterly is the floor. Monthly is better if you run heavy promo cycles, because discount load shifts the CM ranking faster than COGS or shipping. After any carrier rate change or platform fee update, re-run within 30 days — those are the silent killers.

Allocate a portion of the second-order margin back to the gateway SKU before deciding. If 35% of first-time buyers of a CM-negative hero return within 90 days and spend €60 at 40% margin, the hero earns roughly €8 of attributed downstream margin per unit — which may flip it back to positive. Measure before pruning.

You can, but you'll over-correct on inelastic SKUs and under-correct on the ones actually losing money. The audit tells you which products can absorb a price rise (low elasticity, name-search demand) and which need structural fixes (bundling, weight reduction, returns policy change).

Use the line-item discount field your platform records on each order. Sitewide promos still allocate proportionally per line. Then weight by promo participation rate — what share of that SKU's orders were promo orders versus full price. The blended ASP that emerges is the number to plug into CM.

On bulky products yes — carriers bill on whichever is higher of actual weight or dimensional weight (length × width × height divided by a divisor, typically 5000 for international). A lightweight but voluminous SKU like a duvet, a hat box, or a yoga bolster ships at 3–5x its actual-weight rate. That delta alone can make a bestseller margin-negative.

Pause them on prospecting first, where you're paying full CAC. Keep them on retargeting and branded search where acquisition cost is low — they may still pay back as a re-engagement product. Then re-evaluate after 30 days using channel-level CM, not blended.

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.