The formula, and what it deliberately ignores
ROAS = revenue attributed to the ads ÷ ad spend. Spend ₹1,00,000, generate ₹3,50,000 of tracked revenue, and that's 3.5x.
Missing from that line: everything that turns revenue into money. Product cost, GST, packaging, shipping both ways, gateway charges, returns, salaries. ROAS is a media efficiency metric, never a profitability one, and treating it as the latter is how brands scale into losses behind a green dashboard.
The folk wisdom that "3x is good" is the specific problem. Whether 3x is good depends entirely on your gross margin, and for most Indian D2C it isn't.
A worked Indian D2C order
Illustrative numbers on a ₹1,000 MRP product. Yours will differ — the method is the point, not the figures.
| Line item | Per order | Note |
|---|---|---|
| Selling price | ₹1,000 | What the ad platform reports as revenue |
| Less GST at 18% | −₹153 | ₹1,000 ÷ 1.18 = ₹847 net revenue |
| Cost of goods | −₹400 | 40% of MRP |
| Packaging | −₹20 | Box, filler, label |
| Forward shipping | −₹75 | Blended courier rate |
| Gateway / COD handling | −₹25 | Blended across prepaid and COD |
| Contribution per delivered order | ₹327 | Before a single rupee of ad spend |
COD returns are the line item that ruins it
Now add the thing that makes Indian D2C different from the American blog posts you're reading. Cash on delivery is a large share of orders, and a meaningful proportion of COD orders are refused at the door or never delivered.
Say 45% of orders are COD and a quarter of those come back — a rate plenty of Indian brands live with. That's roughly 11 return-to-origin orders per 100. Each one costs forward shipping, reverse shipping and packaging, call it ₹170, and earns nothing.
Per 100 attributed orders: 89 delivered × ₹327 = ₹29,103, minus 11 × ₹170 = ₹1,870. Contribution: ₹27,233.
The ad platform, meanwhile, still reports ₹1,00,000 of revenue, because it counted the order at checkout and has no idea what happened at the doorstep.
Break-even ROAS = ₹1,00,000 ÷ ₹27,233 = 3.67x. At the celebrated 3x, you spent ₹33,333 to generate ₹27,233 of contribution. That's a ₹6,100 loss on a campaign your dashboard is calling a winner — before overheads, salaries or agency fees.
Break-even ROAS in one line
Break-even ROAS = 1 ÷ contribution margin, where contribution margin is measured against the same revenue figure the ad platform reports.
That last clause is where most calculations fall apart. If you compute margin on net-of-GST revenue but your ROAS is reported on gross, you'll understate break-even by the GST rate and wonder later where the money went. Pick one revenue definition and use it in both halves of the fraction.
Reference points, all on gross reported revenue: 50% margin breaks even at 2x. 33% at 3x. 27% at 3.7x — the example above. 20% at 5x. Anyone quoting a target ROAS without asking your margin first is guessing.
And break-even isn't the goal. Salaries, rent, software and returns processing still have to come out. Set your target at break-even plus what the business actually needs, then judge campaigns against that.
ROAS, ROI and the blended number
ROAS is revenue ÷ ad spend. ROI is (profit − investment) ÷ investment and includes every cost. A 3x ROAS and a negative ROI coexist happily, as above. Contribution margin tells you whether an extra order is worth having at all.
Then attribution. Meta and Google will both claim the same order — Meta's default window counts 7-day clicks and 1-day views, Google runs data-driven attribution over a longer click window. Add up platform-reported revenue and it comfortably exceeds what your order system recorded. Not fraud, just two systems each answering "did I influence this?" with yes.
Blended ROAS — total revenue from your own order system ÷ total ad spend everywhere — is the number that can't be double counted. Some teams call it MER. Report blended to yourself; use platform figures only for moving budget between channels.
Measuring that properly is an analytics job before it's a media job: clean UTM parameters, server-side order data, one agreed definition of revenue. We run performance marketing from ₹40,000/mo with ad spend billed separately at zero markup — the other half of the same honesty problem, since an agency taking a cut of spend has a reason to prefer the flattering number.