Blog · 10 November 2026 · Deepak Gupta

Breakeven ROAS for COD-heavy D2C: why 40% RTO almost doubles it

The formula, with D2C numbers: AOV ₹1,800, 30% product cost, ₹90 shipping each way, ₹40 COD fee. At 0% RTO you break even at ROAS 1.59. At 40% RTO you need 2.97.

Meta's ROAS counts the order the moment it's placed. Your bank only sees the orders that get delivered and paid. With cash on delivery, that gap is your RTO rate, and it changes what "good ROAS" means.

The math, per placed order

COD-heavy D2C: AOV ₹1,800 · product cost 30% (₹540) · shipping ₹90 forward, ₹90 back on a return · COD fee ₹40 on delivered orders. Returned stock goes back on the shelf.

For every order placed, with an RTO rate of r:

  • Money you actually collect = (1 − r) × ₹1,800
  • Product cost = (1 − r) × ₹540
  • Shipping = ₹90 on every order + r × ₹90 for returns
  • COD fee = (1 − r) × ₹40
  • What's left to pay for ads = collected − all of the above

Breakeven ROAS (as Meta reports it) = ₹1,800 ÷ what's left to pay for ads

The same numbers at three RTO rates

RTOCollected per placed orderCostsLeft for adsBreakeven ROAS
0%₹1,800₹670₹1,1301.59
20%₹1,440₹572₹8682.07
40%₹1,080₹474₹6062.97

At 40% RTO, a ROAS of 2.5 in Ads Manager looks healthy and still loses money on every order.

What to do with this

  1. Put your own AOV, product cost, shipping and RTO into the formula. Use RTO from your courier dashboard, not a guess.
  2. Treat that breakeven ROAS as the floor for every scaling decision.
  3. Bringing RTO down lowers the floor itself. Confirming COD orders on WhatsApp before shipping is a cheap first step.

Missing costs here (GST, payment gateway, packaging, returns that can't be resold) only push breakeven higher. Add yours.