Quick answer: Contribution margin is the money left from a sale after subtracting all variable costs, the costs that rise with every order such as product cost, shipping, payment fees and returns. Contribution margin is the amount that has to cover fixed costs and leave a profit.
Contribution margin answers a sharper question than revenue or gross margin: once this order ships, how much money is actually left? Sell a product for ₹1,000 (excluding GST) that carries ₹470 of variable costs per order, and your contribution margin is ₹530, a contribution margin ratio of 53%. Fixed costs like salaries, rent and software don’t change when one more order ships, so they sit below the line and get paid out of that ₹530.
D2C and e-commerce brands usually build contribution margin in layers:
- CM1: net revenue minus product cost (COGS).
- CM2: CM1 minus fulfilment costs: shipping, packaging, payment gateway or COD fees, and returns and RTO (return to origin).
- CM3: CM2 minus marketing, mainly ad spend.
These labels are a working convention, not an accounting standard. Many e-commerce operators use the split above (Dema, 2024), but some analytics tools fold marketing into CM2 instead (Polar Analytics, 2026). Write your definitions down before you compare numbers with anyone.
Why it matters
Contribution margin is the number that tells you how much you can afford to pay for an order. Revenue can’t tell you that, and neither can gross margin, because both ignore costs that land on every single order: shipping, payment fees, packaging and returns.
The break-even ROAS for a campaign equals 1 divided by your contribution margin ratio before marketing, so a brand with a 70% gross margin but a 53% contribution margin needs 1.89x ROAS just to break even, not the 1.43x that gross margin suggests. That gap is where ad budgets leak. A campaign running at 1.6x looks profitable against a gross-margin target and loses money on every order once shipping, fees and returns are counted. (New to the metric? Start with our ROAS glossary entry.)
Indian D2C brands carry one cost that most global benchmarks skip: RTO. Shipway’s FY25 analysis of D2C shipments on its platform found nearly 26% of cash-on-delivery orders were returned to origin, against less than 2% of prepaid orders (Mediabrief, 2025). An RTO’d order brings in no revenue, but you still pay to ship it out and back, so a COD-heavy order mix can drag CM2 down while the ROAS on your dashboard looks fine.
Ad platforms can’t see most of this. Google Ads can report gross profit if you send conversions with cart data and add cost of goods sold to your Merchant Center feed (Google Ads Help), but that is revenue minus COGS, which is CM1 at best. Shipping, gateway fees and RTO stay invisible to the platform unless you build them in yourself.
Contribution margin vs gross margin vs net profit margin
All three are called margins, and they get mixed up constantly. Each one subtracts a different set of costs.
| Attribute | Gross margin | Contribution margin | Net profit margin |
|---|---|---|---|
| Formula | (Revenue – COGS) / Revenue | (Net revenue – Variable costs) / Net revenue | Net profit / Revenue |
| What gets subtracted | Cost of goods sold only | Every cost that rises with each order: COGS, shipping, packaging, payment fees, returns (and ad spend at CM3) | Everything, including salaries, rent, software, interest and tax |
| Includes fixed costs? | Can include fixed production overhead | No | Yes |
| Built on | Accounting standards | How costs behave (variable vs fixed) | Accounting standards |
| Where you find it | Your P&L; Google Ads gross profit reports | You build it from order, shipping and payment data | Your P&L |
| Best for | Pricing and sourcing decisions | Ad budgets, break-even ROAS, CAC limits, SKU decisions | Judging whether the whole business makes money |
The short version: gross margin tells you if a product is priced well; contribution margin tells you if an order is worth buying with ads. Net profit margin tells you whether the business works once every fixed cost is paid.
How to calculate contribution margin
Two formulas cover it:
Contribution margin = Net revenue – Variable costs
Contribution margin ratio = Contribution margin / Net revenue
The ratio shows what share of each rupee of revenue is left to cover fixed costs and profit (AccountingTools, 2026). Build it layer by layer:
- Start from net revenue. Take what the customer paid and remove GST, discounts and refunds. Ind AS 115 excludes amounts collected on behalf of third parties from revenue (Ind AS 115, para 47), and GST is collected on the government’s behalf, so it was never your money.
- Subtract product cost to get CM1. Purchase or manufacturing cost per unit, plus inbound freight.
- Subtract fulfilment costs to get CM2. Forward shipping, packaging, payment gateway or COD fees, and your average cost of returns and RTO spread across delivered orders.
- Subtract marketing to get CM3. Ad spend per order (your CAC on first orders), plus any marketing cost that scales with orders, such as affiliate commissions.
Worked example, one order from a D2C brand, in rupees:
| Line item (per order) | Amount | Margin left |
|---|---|---|
| Net revenue (excluding GST, after discount) | ₹1,000 | |
| Product cost (COGS) | – ₹300 | CM1: ₹700 (70%) |
| Forward shipping | – ₹70 | |
| Packaging | – ₹20 | |
| Payment gateway or COD fees | – ₹20 | |
| Returns and RTO (averaged per delivered order) | – ₹60 | CM2: ₹530 (53%) |
| Ad spend per order | – ₹400 | CM3: ₹130 (13%) |
- Campaign ROAS = 1,000 / 400 = 2.5x
- Break-even ROAS = 1 / 0.53 = 1.89x (based on CM2, before marketing)
- Break-even CAC on a first order = CM2 = ₹530
At 2.5x you clear the floor, with ₹130 per order left for salaries, rent and software. Now scale spend until ad cost per order reaches ₹625. ROAS drops to 1.6x, which still beats the 1.43x a gross-margin calculation would allow, but CM3 is ₹530 – ₹625 = -₹95 on every order.
One honest caveat: a negative CM3 on the first order can still be the right call if repeat purchases pay it back. Make that bet with a measured repeat rate, not an assumed one.
Then put the number to work. Set your Target ROAS (tROAS) above your break-even ROAS, not at whatever figure a platform suggests. If you use Google’s gross profit reporting, Google says the cost of goods sold value in Merchant Center is for reporting and doesn’t need to be exact (Google Merchant Center Help), so you can include an estimated per-unit fulfilment cost in it to bring Google’s reported gross profit closer to your CM2. If you do, document it, so nobody mistakes it for accounting COGS.
Common mistakes
- Setting ROAS targets from gross margin. Gross margin ignores shipping, fees and returns, so the break-even ROAS it produces is too low. In the example above, any campaign running between 1.43x and 1.89x looks profitable and loses money on every order.
- Calculating on GST-inclusive revenue. Depending on how your tracking is set up, the conversion value Google or Meta reports may include GST and shipping charges. Strip GST out before you calculate contribution margin or ROAS, or both will look better than reality.
- Leaving out returns and RTO. On COD-heavy stores, returns aren’t a one-off; they’re a structural cost. Average the cost of returns and RTO across all delivered orders and subtract it in CM2 every month.
- Using different CM definitions across teams. If your finance team’s CM2 includes marketing and your agency’s doesn’t, you’ll argue about numbers that were never comparable. Agree on one definition and write it down.
- Judging SKUs on revenue or blended margin. A bestseller with heavy discounting, a high shipping weight or a high return rate can have the lowest contribution margin in your catalogue. Calculate CM2 per SKU before you push budget behind it.
Frequently asked questions
What is a good contribution margin?
A good contribution margin is one that covers your fixed costs and still leaves profit at the ad spend you need to grow. There is no universal figure, because category, order value, return rate and repeat purchase rate all change it. Track your own CM2 and CM3 month on month rather than chasing another brand’s benchmark.
What is the difference between contribution margin and gross margin?
Gross margin subtracts only the cost of goods sold, follows accounting standards, and can include fixed production overhead. Contribution margin subtracts every variable cost, including shipping, payment fees and returns, and leaves fixed costs out. For setting ad budgets, contribution margin is the more honest number.
What are CM1, CM2 and CM3?
CM1 is net revenue minus product cost. CM2 is CM1 minus fulfilment costs such as shipping, packaging, payment fees, returns and RTO. CM3 is CM2 minus marketing. These labels are a common e-commerce convention rather than an accounting standard, so confirm how a tool or team defines them before comparing numbers.
Is ad spend a variable cost in contribution margin?
In performance marketing, yes. Textbook cost accounting often treats advertising as a fixed cost, but when you buy orders through Google or Meta, spend rises with order volume, so D2C brands subtract it at CM3. Agency retainers and brand campaigns that don’t scale with orders are better treated as fixed costs.
How do you calculate break-even ROAS from contribution margin?
Divide 1 by your contribution margin ratio before marketing, which is usually your CM2 ratio. At a 53% CM2 ratio, break-even ROAS is 1 / 0.53 = 1.89x. A campaign below that figure loses money on every order before a single fixed cost is paid.
How Uginix helps
Before Uginix sets a ROAS target on an e-commerce or D2C account, we work out your break-even ROAS from contribution margin, not gross margin, and if a channel can’t clear it, we tell you and move the budget. Our analytics and attribution setup reconciles what Google and Meta report against real, GST-exclusive revenue net of returns, so the ROAS you optimise against reflects money you actually keep. Not sure which of your bestsellers make money after shipping and RTO? That’s exactly what our free growth audit finds.
Related terms
- ROAS (Return on Ad Spend): revenue earned per rupee of ad spend; compare it with your break-even ROAS to see whether a campaign makes money.
- Break-even ROAS: the lowest ROAS at which a campaign stops losing money, equal to 1 divided by your contribution margin ratio before marketing.
- CAC (Customer Acquisition Cost): what you spend to win one paying customer; spending more than CM2 to win a first order means a loss on that order.
- POAS (Profit on Ad Spend): profit, usually gross profit, divided by ad spend; ROAS with margin built in.
- MER (Marketing Efficiency Ratio): total revenue divided by total marketing spend; the business-level check on campaign-level numbers.
Sources: AccountingTools, Ind AS 115 (Ministry of Corporate Affairs), Dema, Polar Analytics, Google Ads Help, Google Merchant Center Help, Mediabrief (Shipway ShipNotes).