CM1, CM2 and CM3: the three margins ecommerce operators steer on

One profit number tells you whether the month worked. Three margins tell you why. What each one holds, and the decision it belongs to.

Margins18 Aug 20269 min read

Ibrahim Ölmez

Founder, nouz

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.

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. A variant with no cost recorded reports a 100% margin, which is why a missing cost is more dangerous than a wrong one.

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.

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 and the parcel weight, 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.

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.

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.

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

CostComes out atBecause
Cost of goodsCM1It is what the merchandise cost you, and nothing else is.
Shipping rate cardCM2Charged per parcel, by destination zone and weight.
Pick and packCM2Charged per order, plus a rate per additional item.
Packaging and EPR feesCM2Charged per parcel that ships.
Return processingCM2The label and the handling, on the day the refund was issued.
Payment feesCM2A percentage of the charge plus a fixed fee per transaction.
AdvertisingCM3Meta, Google, TikTok, influencers, affiliates, on the spend date.
Rent, salaries, softwareBelow CM3Committed regardless of whether anything sells.
Each cost belongs to exactly one margin, and knowing which one is most of the skill.

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.
  • 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.

LineAmount% of net revenue
Net revenue€12.400.114,85100%
Cost of goods€4.866.067,4739,24%
CM1€7.534.047,3860,76%
Logistics€1.046.422,498,44%
Payment fees€426.721,513,44%
CM2€6.060.903,3848,88%
Marketing€3.144.072,3425,36%
CM3€2.916.831,0423,52%
Overhead€534.946,764,31%
EBITDA€2.381.884,2819,21%
The whole ladder for the example store, 1 Jul 2025 to 20 Aug 2026.

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 contribution margin calculator 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.

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. Either way, the three margins are the shape to think in.

Written by

Ibrahim ÖlmezFounder, nouz

Builds the P&L engine behind nouz. Writes about the costs that decide whether a Shopify store is actually profitable.