RTO Is a Measurement Problem Before It's a Logistics Problem

Ask any Indian D2C founder about RTO and you will hear the same answers. Verify addresses. Call the customer before dispatch. Push people from COD to prepaid. Score risky pincodes.

All of that works. None of it is wrong.

But there is a step almost everyone skips. Before you can reduce RTO, you have to measure it in the right place. And for most brands, the analytics setup counts a returned order as a success, the same as an order that was delivered and kept.

That single gap quietly shapes your ads, your website tests, and your budget decisions. Here is how.

The Numbers First

RTO in India is not a small leak.

The national average sits between 20% and 35%, depending on category and payment mix. Global ecommerce runs at 8% to 12%. Fashion and footwear are the worst hit, often touching 40%.

Payment method is the biggest single factor. Unicommerce tracked RTO at 39.2% during the November 2025 festive peak. Optimised brands brought it down to 21% by March 2026. In that same festive quarter, 58% of COD orders came back. Prepaid returns stayed under 15%.

COD makes up roughly 60% of Indian ecommerce orders. But it drives 76% to 83% of all RTO volume.

So the problem is real, and it is concentrated. The question is whether your data shows you where.

What Your Analytics Actually Counts

Open GA4 and look at your funnel. The last step is purchase.

That event fires when someone completes checkout. Not when the package arrives. Not when the customer accepts it. Not when the money reaches your account.

For a prepaid order, that gap is small. The payment is already collected.

For a COD order, the gap is everything. The customer has promised nothing. No card was charged. No UPI went through. They clicked a button.

Your analytics treats both of these the same way. One conversion. Same value. Same success.

If a third of your COD orders come back, then a third of what GA4 calls revenue never became revenue at all.

Four Things This Breaks

1. You optimise checkout for the wrong outcome

Say you run a test to make checkout faster. You remove a form field. You make COD easier to select. Conversion rate goes up 12%.

That looks like a win. You ship it.

But if the extra orders are mostly COD, and COD comes back at three to four times the prepaid rate, your delivered orders may not have moved at all. Your shipping costs went up. Your reported conversion rate went up. Your actual revenue stayed flat.

You can only see this if you measure delivered orders, not placed ones. Most brands do not.

2. You train Meta to find the wrong customers

This one costs the most and gets noticed the least.

Meta's algorithm learns from the purchase events you send it. It looks at who converted and goes to find more people like them.

If you send a purchase event for every order including the ones that come back, you are teaching Meta that a customer who places a COD order and refuses delivery is a good customer. So it finds more of them.

The campaign looks like it is working. Cost per purchase drops. Your RTO rate climbs, and nobody connects the two.

3. Your channel reports are wrong

Different traffic sources bring different quality of buyer.

Cold Instagram traffic tends to produce more impulse COD orders. Branded search brings people who already decided to buy. Email brings existing customers.

If your reports only show orders placed, all three look similar. If they showed delivered orders, they would look very different and you would move budget accordingly.

4. Your CRO programme measures the wrong success

Every A/B test needs a success metric. Almost every ecommerce test uses conversion rate, pulled from GA4.

If that metric counts returned orders, then a test can win on paper and lose in reality. You would never know, because the test ended weeks before the returns came in.

Why This Is a Measurement Problem First

Here is the honest sequence.

You cannot reduce something you cannot see clearly. Most brands know their overall RTO rate because their logistics partner reports it. Very few know their RTO rate broken down by traffic source, campaign, landing page, or product.

Without that breakdown, RTO reduction stays a logistics job. Verify addresses. Call before dispatch. Both useful, both reactive.

With that breakdown, RTO becomes a marketing and CRO job too. You can see which campaign brings buyers who accept delivery. You can see whether your checkout changes shifted the payment mix. You can stop training your ad platforms on bad signals.

The logistics fixes work better when the measurement comes first.

How to Fix the Measurement

Five changes. None of them require new software.

1. Track payment method as an event parameter

Pass payment_method on your begin_checkout, add_payment_info, and purchase events. Register it as a custom dimension in GA4.

Now you can split your funnel into COD and prepaid. These are two different buyer journeys, and until you separate them, every number you look at is an average of both. Our guide to GA4 setup for brands with multiple funnels covers how to set this up.

2. Stop treating purchase as the finish line

Add a second event for delivered orders. You can push this from your logistics platform or order management system through a server-side container, or load it into BigQuery and join it to your GA4 data.

The event does not need to be complicated. Order ID, delivery status, date. That is enough to connect it back to the original session.

3. Send delivered orders to Meta, not just placed orders

This is the highest-impact change on the list.

Use Meta's Conversions API to send a purchase event when the order is delivered and accepted, rather than when checkout completes. Or send both, with the delivered event as your optimisation target.

Meta then learns from customers who actually kept the product. The algorithm goes looking for more of those people instead of more order-placers.

4. Report RTO by traffic source

Once you have delivered order data connected to session data, build a simple report. Traffic source on one axis, RTO rate on the other.

Most brands find one or two channels doing far worse than the rest. That is a budget decision you could not make before.

5. Change your CRO success metric

For any test that could shift payment mix, measure delivered orders, not placed orders. This means waiting longer for results. It also means the results are real.

If you cannot wait, at least track the payment mix shift alongside the conversion rate. A test that lifts conversion 10% while moving the mix 20% toward COD may not be a win.

What Changes When You Do This

Three things, fairly quickly.

Your reported conversion rate drops. This is expected. You were counting orders that came back. The new number is the real one, and it is the one every future decision should be based on.

Your ad targeting improves. Meta and Google start optimising toward customers who accept delivery. This usually takes a few weeks to show, since the algorithms need time to relearn.

Your CRO priorities shift. Tests that looked like winners may not survive the new metric. Tests you ignored may look better. This is uncomfortable, and it is the point.

The Simple Version

RTO is not only about delivery. It starts with what your analytics calls a success.

Right now, most Indian D2C brands count a placed order as a win. Your ad platforms learn from that. Your funnel reports are built on it. Your A/B tests are measured against it.

Fix the measurement, and the logistics work gets easier. Skip it, and you keep optimising for orders that come back.

If you are not sure whether your current setup can even tell COD and prepaid apart, that is the first thing to check. Our guide to the Indian D2C analytics problem covers the related gaps, and our pre-CRO data audit guide covers how to validate the whole setup.

Want your funnel to measure delivered orders instead of placed ones? Talk to FunnelFreaks — we build the tracking that connects your analytics to what actually got delivered.