Contribution margin: the number behind your break-even ROAS
The formula, the CM1–CM2–CM3 ladder, and the arithmetic that turns it into a ROAS target you can defend.
Most ROAS targets in Indian D2C are inherited, not calculated. Someone says "we need 3x", the media plan is built around it, and nobody asks where the 3 came from.
Contribution margin is where it comes from. It is the arithmetic underneath the rest of our performance marketing guide: work out what one order actually leaves you, and your spending limits stop being opinions.
The formula, stated once
Contribution margin = revenue − variable costs.
Per order, that is order value minus the variable cost of that order. As a percentage, it is contribution margin divided by revenue. That is the whole formula. The difficulty is deciding what counts as variable.
A variable cost exists only because the order exists.
- Variable: landed product cost, forward shipping, packaging, payment gateway charge, COD handling and remittance fees, reverse logistics on a return, per-order warehouse pick-and-pack, the discount you gave.
- Not variable: rent, salaries, your Shopify plan, the agency retainer, the photoshoot, the warehouse lease. These are fixed. One more order does not change them.
Harvard Business Review describes it as the revenue left when you deduct the variable cost of delivering a product — a managerial tool for judging whether a product earns its keep (HBR, 13 October 2017). It is not a line on a published profit-and-loss statement. Nobody files it. You build it.
CM2 divides two ways.
Contribution margin vs gross margin
These get used interchangeably and they are not the same number. Gross profit is a reported subtotal: the SEC's own guide to reading financial statements describes it as net revenues minus the costs of sales (SEC, Beginners' Guide to Financial Statement). Contribution margin is a management number you assemble for a decision.
| Gross margin | Contribution margin | |
|---|---|---|
| Deducts | Cost of goods sold, and nothing else | Every variable cost, wherever it sits in the P&L |
| Fixed costs | Includes fixed production overhead absorbed into COGS | Excludes all fixed costs, including ones hidden in COGS |
| Shipping, payment fees, returns | Usually below gross profit, so not deducted | Deducted |
| Where it lives | Audited statements | Your own sheet |
| Answers | Is the product priced above what it costs to make? | What does one more order leave me to spend? |
Neither contains the other. Gross margin deducts fixed overhead that contribution margin ignores; contribution margin deducts delivery costs that gross margin never touches. A brand quoting "60% margins" means the first. The second decides what you can bid.
CM1, CM2, CM3 — a convention, not a standard
Indian D2C operators split contribution margin into layers, each subtracting one more group of costs.
| Layer | Subtracts | What it tells you |
|---|---|---|
| CM1 | Landed product cost (COGS) | Whether the product itself is priced sensibly. A merchandising number. |
| CM2 | Shipping, packaging, payment and COD fees, reverse logistics and written-off returns | What one delivered order leaves you before you pay to acquire it. The marketer's number. |
| CM3 | Marketing and acquisition spend | Whether the order made money after the ads that bought it. |
Say this part out loud, because almost nobody does: these labels are an operator convention, not an accounting standard. No Indian or international accounting standard defines CM1, CM2 or CM3. They are neither audited nor comparable.
Two brands can mean genuinely different things by CM2. One nets returns out of revenue before CM1. Another keeps revenue gross and takes the whole return cost inside CM2. A third puts influencer fees in CM2, treating them as a cost of sale. All three are defensible. None produce the same CM2.
So when someone quotes their CM2, the only useful next question is: what is inside it? Treat a CM2 you did not build as a claim, not a figure — like any number arriving on a marketing dashboard without a definition.
Worked example: 100 orders, all three layers
Working through the maths on a hypothetical single-SKU brand. Every input below is an assumption we have made up for this example. They are not benchmarks, not averages, and not anyone's real numbers. Replace each one with yours.
| Assumed input | Value |
|---|---|
| Orders shipped | 100 |
| Order value, after discount, excluding GST | ₹1,200 |
| Landed product cost (COGS) per unit | ₹480 |
| Forward shipping per order | ₹85 |
| Packaging per order | ₹25 |
| Blended payment gateway and COD handling per order | ₹35 |
| Orders returned or undelivered | 15 of 100 |
| Reverse shipping per return | ₹85 |
| Returned stock fit to resell | 80% (so 3 of the 15 are written off) |
| Ad spend behind these 100 orders | ₹60,000 |
Headline gross margin on this product is 60% — ₹1,200 minus ₹480, divided by ₹1,200. Hold that number. Now the ladder.
First, revenue. Only 85 orders stick, so revenue you keep is 85 × ₹1,200 = ₹1,02,000. We are netting returns out of revenue here, which matches how statutory accounts treat sales after returns and allowances.
| Step | Working | Result | % of revenue kept |
|---|---|---|---|
| Net revenue | 85 kept orders × ₹1,200 | ₹1,02,000 | 100% |
| COGS consumed | 88 units × ₹480 (85 sold + 3 written off) | −₹42,240 | |
| CM1 | ₹1,02,000 − ₹42,240 | ₹59,760 | 58.6% |
| Forward shipping | 100 × ₹85 | −₹8,500 | |
| Packaging | 100 × ₹25 | −₹2,500 | |
| Payment and COD handling | 100 × ₹35 | −₹3,500 | |
| Reverse shipping | 15 × ₹85 | −₹1,275 | |
| CM2 | ₹59,760 − ₹15,775 | ₹43,985 | 43.1% |
| Marketing | Ad spend | −₹60,000 | |
| CM3 | ₹43,985 − ₹60,000 | −₹16,015 | −15.7% |
Read the ladder down the right-hand column: 60% gross margin, 58.6% CM1, 43.1% CM2, and a negative CM3. The product is fine. The delivery costs are survivable. The acquisition cost is not.
This is why "we have 60% margins so 2x ROAS is profitable" is wrong on its own terms. Nothing in that sentence is true for this brand.
Returns: where the maths usually breaks
A returned order is not a neutral event that cancels out. It costs you four things, and only one of them is obvious.
- The revenue. Obvious, and the only one most sheets capture.
- The forward shipping. Already spent. Not recoverable.
- The reverse shipping. Spent to get the parcel back.
- The stock. Some of what comes back cannot be resold — opened, damaged, or past its window. In the example above, 3 units of ₹480.
Two warnings. First, your return rate is not one number: it differs sharply between prepaid and COD, and between categories, so a blended rate hides the problem. Second, your ad platform knows none of this. Its revenue figure is gross checkout value. Returns land weeks later and never reach its report.
No clean return data by payment mode? Mark it as an assumption. A labelled estimate is workable. An estimate everyone has forgotten is an estimate is how a brand spends a quarter scaling a loss.
From contribution margin to break-even ROAS and maximum CAC
The bridge is two divisions.
Maximum CAC is CM2 per delivered order. In the example: ₹43,985 ÷ 85 = ₹517. Pay more than ₹517 to acquire one order and that order loses money before a single fixed cost is counted. Actual CAC here was ₹60,000 ÷ 85 = ₹706. Over the ceiling by ₹189 an order. Our customer acquisition cost guide covers measuring it; contribution margin sets the limit.
Break-even ROAS is 1 divided by your CM2 percentage. Google defines target ROAS as the conversion value you want for each rupee of spend (Google Ads Help). So:
- On net revenue: 1 ÷ 0.431 = 2.32.
- On the revenue your ad platform reports: the platform counts gross checkout value, ₹1,20,000, against net revenue of ₹1,02,000 — a factor of 1.18. So 2.32 × 1.18 = 2.73.
That second number is the one almost nobody computes, and the one you are judged against in Ads Manager. This brand needs a reported 2.73 to break even on CM2. It delivered 2.0 — exactly the loss CM3 already showed.
Break-even is a floor, not a goal — it leaves nothing for rent, salaries or profit. What target sits above it is a different question, and our post on what counts as a good ROAS takes that one on.
Why a blended ROAS target set without this is guesswork
A single blended target assumes a single contribution margin. Five things break that assumption.
- Mix. Your ₹1,200 hero SKU and your ₹300 refill have different CM2s. A blended target over-funds one and starves the other.
- Discounting. A 20% off code does not cut CM2 by 20%. It cuts it by 20% of order value against a much smaller base — often half the margin.
- Payment mode. COD carries handling fees and a different return rate. Prepaid and COD do not share a break-even.
- Returns reaching you late. You judge a campaign on gross revenue in week one and see the real number in week six.
- Fixed costs. Break-even on CM2 is not break-even for the business. That gap is why the marketing budget has to be set above the floor, deliberately.
This does not mean abandon blended targets. It means a blended target is an average of margins you should have calculated — so calculate them, then blend, and recompute when the mix moves.
What we ask for before we agree a ROAS target (DH's own view)
In our own work on D2C and ecommerce accounts, one figure comes before any target: CM2 per order for the specific SKUs the campaign will push, built on the last 90 days of actual courier invoices, gateway statements and return reports. Not the headline gross margin. Not CM1.
Plenty of brands cannot produce it. That is normal, and not a reason to pick a number anyway. What we do instead:
- Build it from documents, not memory. Landed cost sheet, one month of courier invoices, one gateway settlement statement, the RTO and return report. Four files, usually one afternoon.
- Run to a max-CAC cap, not a ROAS target, for the first 30 days when return data is missing. A cap on what we pay per order fails safely. A ROAS target built on a guess does not.
- Write every assumption into the plan, with the date and who supplied it. An assumption on paper gets corrected. One in someone's head gets defended.
- Recompute when the mix or the discount changes. CM2 is not an annual exercise.
We do not agree a ROAS figure before CM2 exists. A target set without it is a number both sides will later disagree about — a worse outcome than an afternoon with four spreadsheets.
The number that makes every other target honest
Contribution margin is not a reporting metric. It is a permission slip: the most you can pay for an order and still be in business. Once you have it, half the arguments in a performance review stop being arguments.
It is also an input. Customer lifetime value is contribution margin repeated over a customer's orders, and cohort analysis is the honest way to watch it move. It belongs on any sane list of marketing KPIs, and it is the first thing we build on a new D2C marketing strategy — before channels, before creative, before cost per acquisition targets.
Build it once properly and every ecommerce marketing decision after it gets easier to defend.
Frequently asked questions
What is the contribution margin formula?
Contribution margin = revenue − variable costs. Per order it is order value minus the variable cost of that order; as a ratio it is contribution margin divided by revenue. A variable cost is one that exists only because the order exists — product cost, shipping, packaging, payment fees, reverse logistics. Rent and salaries are fixed and stay out.
Is contribution margin the same as gross margin?
No. Gross margin deducts cost of goods sold only, and it appears in audited statements. Contribution margin deducts every variable cost wherever it sits, and excludes fixed overheads that are absorbed into COGS. Neither contains the other. A brand quoting "60% margins" is nearly always quoting gross margin.
What is the difference between CM1, CM2 and CM3?
CM1 subtracts landed product cost. CM2 also subtracts shipping, packaging, payment and COD fees, reverse logistics and written-off returns. CM3 also subtracts marketing spend. These labels are an operator convention, not an accounting standard — no standard defines them, and two brands can put different costs inside CM2.
How do I calculate break-even ROAS from contribution margin?
Divide 1 by your CM2 percentage. At a CM2 of 43.1% of net revenue, break-even is 2.32. Then adjust upward for returns, because your ad platform reports gross checkout value: if gross revenue is 1.18 times net, the reported break-even ROAS is 2.73. Break-even is a floor, not a target.
Where do returns belong in the contribution margin calculation?
Either net them out of revenue before CM1, or take the full cost inside CM2 — both are used, and CM3 ends up the same. What changes is the middle number you quote, so state which convention you used. Count all four losses: the revenue, the forward shipping, the reverse shipping and any stock you cannot resell.
Targets built from your margins, not from a round number
We build CM2 per order first, then set the ROAS and CAC ceilings the media plan has to live inside. Fees exclude ad spend.
Make Digital Hangover a preferred source
One tap tells Google to show more of our SEO and marketing coverage in your Top Stories.
