Contribution Margin for D2C Brands: CM1, CM2 and CM3 Explained
Contribution margin shows what each order leaves after the costs it causes. How to work out CM1, CM2 and CM3 for a Shopify brand, with returns and ad spend included.
On this page
Contribution margin is what an order leaves after the costs that order causes. D2C brands usually split it in three: CM1 is revenue minus product cost; CM2 also takes off shipping, payment fees, packaging and returns; CM3 also takes off marketing. CM2 tells you whether an order is worth having; CM3 tells you whether your ads make money. Fixed costs like salaries and rent come after CM3.
Key takeaways
- CM1 = net revenue − product cost. CM2 = CM1 − costs of fulfilling and collecting the order. CM3 = CM2 − marketing.
- Returns and refunds belong in CM2, not hidden in "other costs".
- Your break-even ROAS comes from CM2: break-even ROAS = 1 ÷ CM2 as a share of revenue.
- Positive CM3 means each month's orders cover their ads; fixed costs still have to come out of it.
- Calculate on net revenue after discounts, taxes, cancellations and returns.
Why gross margin isn't enough
Gross margin, revenue minus product cost, says a product is profitable. But a $40 necklace with a $16 cost can still lose money once you ship it, pay the payment fee, refund the ones that come back and pay for the ad that sold it. Contribution margin follows the money one step further each level, so you can see where it goes.
The three levels
| Level | Formula | What it answers |
|---|---|---|
| CM1 | Net revenue − product cost (COGS) | Is the product priced well? |
| CM2 | CM1 − shipping − payment fees − packaging − return costs | Is each order worth fulfilling? |
| CM3 | CM2 − marketing (ad spend, influencers, discounts paid for by marketing) | Do the ads pay for themselves? |
| Operating profit | CM3 − fixed costs (team, rent, software) | Does the business make money? |
Some teams define the levels slightly differently, for example putting payment fees in CM1. That's fine; what matters is using the same definitions every month.
A worked example
Monthly numbers for an illustrative jewellery brand:
- Net revenue (after discounts, sales tax or VAT, and cancellations): $50,000
- Product cost: $19,000
- Shipping (outbound and return legs): $5,500
- Payment processing fees: $1,750
- Packaging: $1,000
- Lost revenue and write-offs from returns: $4,500
- Ad spend: $12,000
CM1 = $50,000 − $19,000 = $31,000 (62%).
CM2 = $31,000 − $5,500 − $1,750 − $1,000 − $4,500 = $18,250 (36.5%).
CM3 = $18,250 − $12,000 = $6,250 (12.5%).

At 62%, the product margin looks comfortable. By CM2 it's 36.5%. After ads, 12.5% is left to cover the team, rent and tools. That gap is why brands that track only gross margin are surprised by their bank balance.
Where returns go
Returns and refunds are often the biggest cost hiding between CM1 and CM2. A return costs the shipping both ways, packaging, sometimes damaged stock, and the sale itself. Count returns in the month the order was placed, so each month's contribution margin reflects the orders it sold, as explained in Shopify profit tracking. In cash-on-delivery markets such as India, count parcels returned to origin (RTO) as returns too.
How CM2 sets your ad targets
CM2 as a share of revenue is the margin that ads have to work within. If CM2 is 36.5%, every dollar of ad spend needs to bring at least $2.74 of net revenue to break even (1 ÷ 0.365). That is your break-even ROAS, and it's why the same 3x ROAS can be profitable for one brand and loss-making for another. Break-even ROAS covers the full calculation, and POAS shows a way to measure campaigns on profit directly.
| CM2 margin | Break-even ROAS | ROAS needed for 10% CM3 |
|---|---|---|
| 30% | 3.33x | 5.00x |
| 36.5% | 2.74x | 3.77x |
| 45% | 2.22x | 2.86x |
| 55% | 1.82x | 2.22x |

Improving each level
- CM1: raise prices, bundle products, negotiate supplier costs, push higher-margin products in ads.
- CM2: cut returns with clearer sizing, photos and descriptions, negotiate carrier rates, right-size packaging.
- CM3: cut loss-making campaigns, refresh tired creatives, move budget to campaigns with the best profit after returns.
Most brands find the fastest gains in CM2, because returns and shipping are large and often unmanaged.
Common mistakes
Using gross revenue. Revenue before discounts, sales tax or VAT, and cancellations overstates every level. Start from net revenue.
Forgetting the cost of returns. Taking refunds off revenue isn't enough. A returned order still cost shipping both ways and packaging, and those costs often sit outside the profit sheet. Put them in CM2.
Mixing months. Counting returns in the month the parcel came back, rather than the month it was sold, makes a strong month look worse and a weak month look better. Attribute it to the order's month.
Leaving out payment fees. Card and wallet fees look small per order, often 2% to 3% plus a small fixed fee, but they add up across thousands of orders.
Average product cost. Using one blended cost for every product hides the products that lose money. Use cost per variant where you can.
Treating marketing as fixed. Ad spend moves with orders, so it belongs in CM3, not with rent and salaries. Keeping it separate is what lets you see whether growth is profitable.
Contribution margin by product and campaign
A brand-level CM2 can hide products that lose money on every order. Work it out per product too: product cost, the shipping weight band it falls in, and its return rate. A heavy, low-priced product with a high return rate can have negative CM2 even when the brand average looks healthy. Do the same by campaign for CM3, using each campaign's kept orders and spend, and you'll see which campaigns pay for themselves and which ride on the others.
Tera Ads shows your store's profit after ad spend and returns on one screen, from your Shopify orders and your Meta Ads and Google Ads spend. It is free for one business.
Frequently asked questions
What is a good contribution margin for a D2C brand?
It depends on category and stage. What matters is that CM3 is positive and large enough to cover fixed costs. Track the trend month by month rather than comparing with other brands.
Is contribution margin the same as gross margin?
No. Gross margin is revenue minus product cost (roughly CM1). Contribution margin goes further, taking off the variable costs of each order and, at CM3, marketing.
Should discounts be counted as marketing?
Use net revenue after discounts for CM1. Some teams count promotional discounts as a marketing cost in CM3 instead; either works if you're consistent.
Do I include sales tax or VAT in revenue?
No. Use revenue net of sales tax, VAT or GST, because the tax isn't yours to keep.
How often should I calculate contribution margin?
Monthly at minimum, and weekly for CM3 if you spend heavily on ads, because that's the level that changes fastest.