CM1 is net revenue minus the cost of goods. CM2 is CM1 minus fulfilment and payment fees: shipping, pick and pack, packaging, returns handling and the payment provider's cut. CM3 is CM2 minus marketing. Each one removes one family of costs, so when profit falls, the first margin that moved names the cost that caused it.
CM1 is what is left after the goods. CM2 is what is left after fulfilling the order and getting paid. CM3 is what is left after advertising. They are the same revenue with one more kind of cost taken out each time, and the reason to split them is diagnostic: when profit falls, the first margin that moved tells you which cost caused it. A single profit figure cannot do that, which is why an operator who only watches the bottom line always finds out late. To work the three out on your own numbers, the contribution margin calculator does it in a minute; this page is about what each one means and which decision it belongs to.
Why three margins instead of one
Every cost in an ecommerce business belongs to a different decision. What a hoodie costs you is a buying decision. What it costs to get the hoodie into a box and onto a van is an operations decision. What it cost to find the person who bought it is a marketing decision. Rent and salaries are none of the three: they are already committed and no order changes them.
Roll all of that into one number and you can see that profit fell, but not who should do something about it. Split it into three and each margin has an owner and a lever. That is the whole argument for the contribution-margin ladder, and it is why it is the way serious operators talk about their own numbers rather than the way an accountant reports them.
One convention before the definitions, because it decides every percentage that follows. All three margins are measured against net revenue: what you kept after discounts, returns and VAT. Not gross revenue, and certainly not revenue with VAT still inside it. A European store that leaves 19% VAT in the denominator will report margins that look several points better than they are, on every line, forever.
CM1: is the product worth selling
CM1 is net revenue minus the cost of the goods you sold, and nothing else. It answers one question, which is whether the merchandise itself earns anything once VAT, discounts and returns are out and before a single parcel has been packed. If you want the formal definition and the edge cases, that is what is CM1 is for.
It is the ceiling on everything below it. A store running at 35% CM1 has 35 cents per euro to pay for shipping, packing, payment fees, advertising, rent and salaries, in that order, and there is no operational cleverness that creates margin the product never had. This is the number that tells you a discount campaign was a mistake, and it is the one most often wrong, because it is only as good as the unit costs behind it. In a statement that treats a missing cost as zero, a variant with no cost recorded reports a 100% margin, which is why a missing cost is more dangerous than a wrong one, and why nouz flags it rather than counting it as nothing.
Read it per product as well as in total. One heavily discounted line inside a healthy catalogue drags the average down and hides the fact that everything else is fine, and the opposite happens just as often: a single strong product carries a category that is quietly losing money. In nouz the product table on Insights, Products switches between CM1, CM2, CM3 and EBITDA, so the same per-product reading works on every rung of the ladder.
CM2: is the order worth fulfilling
CM2 takes CM1 and subtracts the cost of getting the order to the customer and the cost of being paid for it. That is the shipping rate card for the destination, priced by the parcel's weight or its size, pick and pack, the packaging itself, packaging EPR fees where they apply, the processing of a return when one comes back, and the payment provider's percentage plus its fixed fee. If you want the definition on its own, see what is CM2.
These costs behave differently from the cost of goods, and that difference is the entire reason CM2 exists as a separate line. They scale with the number of orders rather than with the value of them. A parcel to Austria costs the same whether it holds €40 or €400 of product, and the fixed leg of a payment fee is charged once per transaction regardless of the amount.
If CM1 holds and CM2 falls, the problem is not your pricing. It is basket size, shipping zones or returns.
That is why average order value belongs beside CM2 rather than in a growth report. A store whose AOV drifts from €95 to €80 has raised the share of every order that fulfilment eats, without a single rate changing anywhere. It is also why free-shipping thresholds and bundles are CM2 decisions: they are attempts to buy basket size with margin, and CM2 is where you find out whether the trade paid. The arithmetic of each is worked through in free shipping thresholds and in bundle economics.
CM3: is the customer worth buying
CM3 subtracts marketing from CM2: every euro of ad spend on the day it was spent, plus the influencer retainers and affiliate payouts that never appear in an ad platform at all. See what is CM3 for the formal version.
It is the last margin that still moves with what you did today, which is what makes it the number to steer daily budgets on. Everything below it is fixed for the month and will be there whether you sell or not. And because it is the last variable line, CM3 is the number your fixed costs actually have to be measured against: a CM3 of €10.000 is an excellent month for a store carrying €6.000 of overhead and a bad one for a store carrying €20.000. How many orders that block takes to cover, and which day of the month you reach it, is exactly what an ecommerce break-even calculator works out from these two numbers.
This is also where blended thinking beats platform reporting. Ad platforms each report the conversions they can plausibly claim, so their revenue figures overlap and add up to more than you actually took. CM3 has one numerator and one denominator, both from your own store, so nothing in it can be claimed twice.
CM1 vs CM2 vs CM3
Side by side, the three differ only in how far down the list of costs they reach, which is exactly what makes them useful together: each one isolates one decision, and the gaps between them are the costs themselves.
| Feature | CM1 | CM2 | CM3 |
|---|---|---|---|
| Formula | net revenue − cost of goods | CM1 − logistics − payment fees | CM2 − marketing |
| Costs taken out | the goods | the goods, the parcel, the fee | every variable cost, advertising included |
| The question | is the product worth selling | is the order worth fulfilling | is the customer worth buying |
| Who holds the lever | buying and pricing | operations and basket size | marketing |
| Example store | 60,8% | 48,9% | 23,5% |
Read the last row from left to right and the gaps are the costs: 11,9 points of fulfilment and payment fees between CM1 and CM2, and 25,4 points of marketing between CM2 and CM3. The same row for your own store, month by month, is the fastest diagnosis a statement can give.
Below CM3 is overhead, which is not a margin at all
Rent, salaries, software, insurance, the accountant, the agency retainer. None of it moves with an order, which is exactly why it sits below the ladder rather than inside it. CM3 minus overhead is EBITDA, and that is the number most owner-run stores mean when they say profit.
The one detail that decides whether the daily version of this is readable: recurring costs have to be spread across the days they cover instead of landing whole on the day the invoice arrived. A €7.200 yearly insurance premium is €19,73 a day, not a catastrophe on 14 March. Without that, one day a month looks disastrous and every other day looks better than it is.
Where every cost goes
| Cost | Comes out at | Because |
|---|---|---|
| Cost of goods | CM1 | It is what the merchandise cost you, and nothing else is. |
| Shipping rate card | CM2 | Charged per parcel, by destination zone and by weight or parcel size. |
| Pick and pack | CM2 | Charged per order, plus a rate per additional item. |
| Packaging and EPR fees | CM2 | Charged per parcel that ships. |
| Return processing | CM2 | The label and the handling, on the day the refund was issued. |
| Payment fees | CM2 | A percentage of the charge plus a fixed fee per transaction. |
| Advertising | CM3 | Meta, Google, TikTok, influencers, affiliates, on the spend date. |
| Rent, salaries, software | Below CM3 | Committed regardless of whether anything sells. |
Reading the three together
The value is in the pattern, not in any one figure. Four readings cover almost everything that goes wrong in a €0-10M store:
- CM1 falling: you are discounting harder, a supplier price rose, or the mix shifted towards thinner products. Nothing downstream will fix it. The levers that do are in five ways to raise CM1 without touching your prices.
- CM1 holding, CM2 falling: baskets got smaller, the destination mix moved, or returns went up. Look at AOV and at return rate by product before you look at anything else.
- CM2 holding, CM3 falling: acquisition got more expensive, or spend grew faster than the sales it produced. This is the one that moves fastest and the one worth watching daily.
- CM3 holding, EBITDA falling: you added a fixed cost. Nothing operational is wrong and nobody needs to change what they are doing.
That last one is worth dwelling on, because it is the case where a single profit number is actively misleading. Profit fell, everyone in the business starts hunting for the mistake, and the answer is that you hired someone in April. The ladder gives you that answer in one glance.
What the numbers look like on a real catalogue
Published benchmarks for these margins are close to useless, because a supplement brand and a furniture brand share almost none of their cost structure. What is useful is seeing the ladder run end to end on one store, so here is an example store, an apparel catalogue doing about €10,6M a year, over fourteen months to 20 Aug 2026.
| Line | Amount | % of net revenue |
|---|---|---|
| Net revenue | €12.400.114,85 | 100% |
| Cost of goods | €4.866.067,47 | 39,24% |
| CM1 | €7.534.047,38 | 60,76% |
| Logistics | €1.046.422,49 | 8,44% |
| Payment fees | €426.721,51 | 3,44% |
| CM2 | €6.060.903,38 | 48,88% |
| Marketing | €3.144.072,34 | 25,36% |
| CM3 | €2.916.831,04 | 23,52% |
| Overhead | €534.946,76 | 4,31% |
| EBITDA | €2.381.884,28 | 19,21% |
Two things are worth noticing. Fulfilment and payment together take 11,88 points of margin, which is more than most merchants guess and more than twice what the same store spends on overhead. And marketing at 25,36% is by far the largest single cost after the goods themselves, which is the normal shape for a store that grows by buying customers rather than by keeping them.
The two rules that make the ladder trustworthy
The first is recognition. Every amount belongs to exactly one day: sales and the cost of goods to the order date, refunds and the cost credited back to the refund date, ad spend to the spend date, and prorated fixed costs to each day they cover. Book a refund back against the original order and last month improves every time this month gets worse, which is the fastest way for a team to stop believing a report.
The second is effective dating. A supplier price that changed in April should apply from April forward and leave March priced at what March actually cost. Without it, every cost change silently rewrites your history and no report you ran last quarter reconciles with the same report run today. Both rules sound like bookkeeping pedantry until the first time a number moves under you.
Working the three out for your own store
You can do this in a spreadsheet, and plenty of good operators do. Put your own figures into the calculator linked at the top of this page to see the three levels side by side, or start from your last full month: net revenue, then the goods, then fulfilment and fees, then ad spend. The arithmetic is not the hard part. What to keep when you outgrow the sheet is in moving off the spreadsheet.
The hard part is keeping it true. Cost rules change, refunds arrive weeks after orders, and a hand-built sheet prices last year's orders at this year's costs. That is the case for profit tracking for Shopify that reads the orders and the cost rules separately and rebuilds the statement every night, rather than a file someone updates when they remember. In nouz each margin can also carry two limits you set, a red-below and a green-from, so every period's CM1 %, CM2 % and CM3 % is coloured against your own idea of healthy rather than an industry average. If you are choosing a tool for the job, how far down this ladder each one goes is the first thing to compare, and the comparison of Shopify profit tracking apps does that with every price dated. Either way, the three margins are the shape to think in.