Ideas for better growth
How to Reduce RTO and COD Losses
Chris Content · · 4 min read

Return-to-origin quietly eats margin on cash-on-delivery orders. Practical steps at checkout, confirmation, and dispatch that cut failed deliveries.
Return to origin is the quietest margin problem in Indian ecommerce. The order is placed, the parcel ships, the delivery fails, and the parcel comes back. You paid forward shipping, return shipping, packaging, and handling, and you sold nothing.
On cash-on-delivery orders the rate is materially higher, because the buyer has committed nothing at the point of purchase.
Almost every fix is upstream of dispatch.
Step 1: Measure it properly
Before changing anything, separate the causes. Ask your courier for reason codes and group them:
- Address incorrect or incomplete - a data capture problem
- Customer not available - a scheduling problem
- Customer refused - an expectation or intent problem
- Customer unreachable - a contact data problem
- Out of delivery area - a serviceability problem
Then split by payment method, price band, category, city, and courier. The remedy for a bad-address problem is nothing like the remedy for a refusal problem, and an aggregate RTO percentage tells you which to fix.

Step 2: Capture the address properly
A large share of failures are created in thirty seconds at checkout:
- Auto-fill city and state from the PIN code, and validate the PIN against your serviceable list
- Ask for a landmark as an optional field - it is how delivery actually works in much of India
- Require a mobile number and validate its length and format
- Offer address type - home or office - which changes the delivery window
- Do not silently truncate long address lines
- Confirm serviceability before payment, not after
Our mobile checkout checklist covers the field-level detail.
Step 3: Confirm the order actively
An unconfirmed COD order is a guess. Confirm it before dispatch:
- Send an immediate confirmation on the channel the customer used
- For COD above a threshold, ask for an explicit confirmation - a reply, a link click, or a WhatsApp confirmation
- Restate the total amount payable, including any COD fee
- Restate the delivery window
- Give an easy cancellation route before dispatch
A cancellation before dispatch costs you nothing. A refusal at the door costs you both legs.
Step 4: Reduce the reasons to refuse
Refusals usually mean the customer's expectation was not met:
- Delivery took longer than promised. Under-promise the date, and update proactively if it slips.
- They ordered the same thing elsewhere. Faster, clearer delivery dates reduce this.
- The amount was a surprise. Show COD fees and the exact payable total up front.
- They forgot they ordered. Send a dispatch notice and a day-before reminder.
- Buyer's remorse. Long gaps between order and delivery increase this; so does urgency marketing that pushed a decision.
Honest delivery dates are the highest-return fix here. See reducing cart abandonment for the related work at checkout.
Step 5: Make prepaid the easier path
Do not remove COD if your customers rely on it. Make prepaid more attractive instead:
- A small prepaid discount or free delivery on prepaid
- UPI as the first, most prominent option
- A COD fee that reflects its real cost, disclosed clearly
- Prepaid-only for high-value orders, or for repeat-RTO addresses
- Loyalty benefits on prepaid orders
Measure the shift in mix and the change in RTO together. A prepaid discount that costs less than your average RTO is a straightforward win.
Step 6: Use your own order history
Your data already flags risk:
- Addresses with previous failed deliveries
- Customers with a history of refusals
- Pin codes with consistently poor delivery performance
- High-value first orders from new customers
For flagged orders, confirm actively before dispatch, or require prepayment. Be careful and consistent about the rules - and keep them internal, not stated as an accusation to the customer.
Step 7: Fix the dispatch and delivery loop
- Choose couriers by measured performance per region, not by headline rate
- Send tracking that actually works, with a route to reschedule
- Make sure the customer's phone number reaches the delivery agent
- Attempt redelivery before returning, and tell the customer it is coming
- Reconcile courier RTO claims against your own records monthly - billing errors here are common
Common mistakes to avoid
- Treating RTO as a courier problem. Most of it is created at checkout.
- Removing COD abruptly. In many categories it removes the customers too.
- No confirmation step on high-value COD.
- Optimistic delivery dates. They convert better and refuse more.
- Never reading reason codes. Without them you are guessing at the fix.
Frequently asked questions
What causes high RTO rates?
Bad address capture, unconfirmed cash-on-delivery orders, delivery dates that slip past what was promised, unreachable customers, and buyer's remorse during long transit times. Courier performance matters, but most causes are upstream.
How do I reduce COD returns without removing COD?
Confirm high-value COD orders actively before dispatch, disclose the exact payable amount including any fee, make prepaid slightly more attractive, and flag addresses with previous failed deliveries for confirmation.
Should I charge a COD fee?
A modest, clearly disclosed fee reflects a real cost and nudges some customers to prepay. Hiding it until the doorstep causes refusals, which is exactly what you are trying to avoid.
How do I capture better delivery addresses?
Auto-fill city and state from the PIN code, validate serviceability before payment, ask for a landmark, require a validated mobile number, and never truncate long address lines.
Next steps
Pull last month's RTO reason codes, split them by payment method and city, and fix the largest single cause first. If it is address quality, that is a checkout change you can ship this week.
Start free and add a WhatsApp confirmation route for high-value COD orders.
