Product-Level Contribution Margin
Product-level contribution margin takes realised price, subtracts landed cost of goods, then subtracts that product's own share of shipping, payment fees and packaging. Because fulfilment cost depends on weight and size while gross margin does not, two products with identical gross margins can end up thirty points apart.
Written by Deepa Swaroop · Co-founder, NetNet
Updated September 6, 2026 · 4 min read
Gross margin ranks a catalogue by how well each product was bought. Contribution margin ranks it by how well each product can be sold. Those are different orderings, and the second one is the one merchandising decisions should follow.
What separates the two rankings
Gross margin knows one thing about a product: the gap between what it cost and what it sold for.
Contribution margin knows what it costs to actually deliver it — and that depends on properties gross margin cannot see:
Weight, which drives base freight. Volume, which drives dimensional weight charges and often exceeds actual weight as the binding constraint. Fragility, which drives protective packaging and breakage replacement. Whether it ships alone, which decides if it carries a whole parcel or a share of one. Return rate, which decides how often the margin gets reversed.
In the worked example, two products at identical price and identical gross margin sit twenty-nine points apart on contribution margin. Nothing about how they were purchased explains it. Everything about how they ship does.
Allocating shared costs
Most of the costs below gross profit are incurred per order, not per unit, so getting them onto products requires an allocation. Three bases, each right for something different:
By weight or volume share — correct for shipping and packaging. A unit that is sixty percent of a parcel’s billable weight carries sixty percent of the label.
By revenue share — correct for payment fees, which genuinely scale with order value.
Evenly per unit — almost always wrong for anything, and specifically wrong in a direction that flatters heavy products.
The choice matters less than the consistency. These figures are used comparatively, so a stated method applied uniformly produces a valid ranking even if any single number carries an error bar.
Do it at variant level
Parent products hide the interesting variation.
Sizes differ in cost to make and weight to ship. Colours can differ in supplier price and in return rate. A parent product showing a comfortable blended margin frequently contains one variant losing money on every unit and another carrying the line.
Apparel is the clearest case: the largest sizes often cost more, weigh more and return more, and all three effects vanish when averaged into a single product row.
Two numbers, not one
Contribution margin per unit tells you whether an item earns its place. It does not tell you how much of the business depends on it.
Multiply by units sold and you get total margin contribution — this product’s share of the store’s contribution margin. The pair drive different decisions:
High rate, low total. A good product few people know about. Promotion and merchandising problem.
Low rate, high total. The product carrying your revenue at a rate you cannot really afford. The most dangerous position on any catalogue, because volume disguises it and any correction touches your biggest line.
High on both. Protect the stock position; running out is the expensive failure.
Low on both. Discontinue, unless basket effects say otherwise.
Basket effects, and the cut you should not make
The single thing per-product analysis cannot see is what an item does for the orders it appears in.
A thin-margin accessory appearing in a third of orders may be lifting average order value across the store. Removing it improves the product table and reduces total margin — a decision that looks right in the spreadsheet that prompted it and is wrong in the accounts a quarter later.
Two checks before cutting anything. What proportion of its units ship alone? And what is the average order containing it worth against the average order without it? If it rarely ships alone and the orders containing it are larger, the product is doing a job the per-unit number was never going to show.
Using it to price
The most direct application of a product-level figure is pricing, and it is a more precise instrument than a percentage uplift across the catalogue.
A blanket five percent price rise takes the same amount from every product regardless of whether it needed it. Product-level contribution margin says which items are actually below the rate the business needs, and by how much — so the increase can land where the shortfall is and leave your competitively priced lines alone.
The arithmetic is worth stating plainly, because it argues against across-the-board discounting more strongly than most people expect. On a product at 41% contribution margin, a five percent price rise adds roughly twelve percent to what that unit contributes. On a product at 12%, the same five percent adds over forty percent to its contribution. The thinnest-margin items are where price changes do the most work, and they are usually the last place anyone looks.
The same logic runs in reverse for discounts, which is why a sitewide percentage is nearly always the wrong instrument.
What usually breaks the calculation
Uncosted variants, counted as pure margin and appearing implausibly near the top of the ranking.
Bundles that do not explode into components, reporting at one hundred percent margin while being the most promoted items you sell.
List price used instead of realised price, which overstates margin most on the products that are discounted hardest.
Missing landed costs — freight and duty on imported goods, recorded nowhere and understating cost unevenly across the catalogue.
Returns left out, which matters most in apparel and moves the ranking most on the products that look best before the adjustment.
Check those five before acting on any ranking. Each of them shifts products in the same direction — upward, wrongly — and a catalogue decision made on an unchecked table usually removes the wrong item.
Same price, same gross margin, different products
Two catalogue items selling at the same realised price with identical gross margins, each carrying its own fulfilment costs.
| Line | Relative size | Amount |
|---|---|---|
| Product A — realised price Small, light, ships alongside others | $34.00 | |
| Product A — gross profit 63% gross margin | $21.40 | |
| Product A — allocated fulfilment | $7.61 | |
| Product A — contribution margin 41% of price | $13.79 | |
| Product B — realised price Bulky, low density, usually ships alone | $34.00 | |
| Product B — gross profit 63% gross margin | $21.40 | |
| Product B — allocated fulfilment | $17.30 | |
| Product B — contribution margin 12% of price | $4.10 |
Identical price, identical gross margin, and twenty-nine points of contribution margin between them. Product B is bulky enough to drive its own parcel and attract a dimensional weight charge. On a gross margin report the two are indistinguishable, which is why gross margin is a poor guide to what deserves promotion.
Where the numbers come from
Every figure above traces to a specific field in a specific system. These are the ones that matter, and where each one goes wrong.
| Figure | Source | Where it breaks |
|---|---|---|
| Realised price | Line item revenue divided by units sold over the period | Products that appear in promotions sell well below list, and list price overstates margin. |
| Landed cost per variant | Supplier invoices plus inbound freight and duty | Recording only the supplier price understates cost on anything imported. |
| Fulfilment allocation | Parcel weights and dimensions, allocated by share | Allocation is a judgement, so the method must be stated and applied consistently. |
What this does not tell you
- Allocating shared order costs to individual products is an estimate rather than a measurement, and two defensible methods can rank the same catalogue differently.
- A per-product figure cannot see basket effects, so a low-margin item that reliably ships alongside profitable ones may be earning its place through the orders it joins.
Frequently asked questions
How do I allocate shipping cost to a product?
By weight or volume share of the parcel, not evenly across units. An even split charges a lightweight accessory the same delivery cost as the heavy item it shipped beside, which reverses the ranking on exactly the products where it matters most.
Should I use list price or realised price?
Realised price, averaged over the period. Any product that regularly appears in promotions sells below list, and using list price shows margin that never existed on a single order.
Why do two products with the same gross margin differ so much?
Because gross margin ignores everything about the product except what it cost to buy. Weight, parcel size, breakage rate and return rate all change what it costs to sell, and none of them appear above the gross profit line.
What should I do with a low contribution margin product?
Check whether it ships alone before acting. If it usually does, reprice it, shrink its packaging, or discontinue it. If it usually travels with other items, the order may be profitable even though the line is not.
Keep reading — Product, order & customer profit
How to calculate SKU profitability
The full method, variant by variant.
Which products are actually profitable
Reading the ranking once you have it.