How to Cut COD Return-to-Origin on Shopify
Every rejected COD parcel costs you forward shipping, return shipping and the working capital tied up in between — and none of it appears as a refund in your reports.

On this page
Key takeaways
- RTO is decided at checkout, not in transit — the cheapest fix is preventing a bad order from being placed rather than chasing it after dispatch.
- OTP verification removes the largest single category of RTO: orders placed with a number that was never reachable.
- Partial prepayment converts a free option into a small commitment, and even a token amount changes behaviour sharply.
- Blanket COD blocking costs more revenue than it saves; risk rules targeted by pincode, cart value and customer history are the workable version.
Cash on delivery is not really a payment method. It is a free option written on your inventory — the customer takes the option at checkout, decides at the door whether to exercise it, and you carry every cost in between either way.
That framing explains why RTO resists logistics fixes. Better couriers, more delivery attempts and improved address capture all help at the margin, but they are attempts to rescue an order that should not have been placed in the form it was. The interventions that move the number substantially happen at checkout.
Scope
Written primarily for Indian and other COD-heavy markets, where COD is a majority payment method rather than an edge case. The mechanics generalise; the economics are specific.
Count the real cost before deciding what to spend on it
Most merchants underestimate RTO cost because a rejected parcel never appears as a refund. It leaves no trace in the revenue line — it simply is not there.
The actual per-incident cost:
What one RTO parcel costs you
- Forward shipping, paid whether or not anyone accepts the parcel
- Return shipping, usually at a similar rate
- Packaging, consumed and not recoverable
- Handling at both ends, including the labour to receive and re-shelve
- Working capital, tied up for the full round trip
- Inventory opportunity cost — the unit was unavailable to a buyer who would have paid
- Condition risk, since returned goods are not always resaleable
Put a real number on that for your own operation before deciding what an intervention is worth. Merchants who do this are usually surprised, and it changes what they are willing to trade in conversion rate to prevent it.
Verification removes the largest category
The single largest bucket of RTO is orders placed with a phone number that was never reachable. Not fraudulent in any dramatic sense — a mistyped digit, a number entered to get past a form, an impulse order the buyer forgot within an hour.
OTP verification at checkout addresses this directly. The shopper receives a code by SMS or WhatsApp and enters it before the order is placed. An order that clears this step has a contactable buyer who was present and paying attention at the moment of ordering.
The objection is always conversion rate, and it is a real cost. But it is the wrong metric. The question is not how many orders you take, it is how many you deliver and what you earned net of the ones you did not. A checkout that converts a few points worse while cutting RTO substantially is straightforwardly the better checkout — and you can only see that if you are measuring delivered revenue rather than order count.
Two implementation details matter more than the decision itself. Keep verification on the same page rather than sending the shopper elsewhere, and make the code arrive fast — a slow OTP is where genuine buyers actually abandon. WhatsApp delivery tends to outperform SMS on both speed and open rate in markets where it is the dominant messaging channel.
Partial prepayment changes the decision, not the price
The second intervention is the most economically elegant: ask for a small amount up front and collect the balance on delivery.
The mechanism is not the money. A small prepayment does not meaningfully reduce your exposure on the remaining balance. What it does is convert a free option into a committed decision. A shopper who has paid anything, however little, has made a choice rather than deferred one — and the behavioural difference at the door is large relative to the amount collected.
This also solves a problem blanket COD blocking creates. Blocking removes the order and its revenue entirely. Partial payment keeps the order, keeps the customer, and shifts the economics. For most catalogues it is the higher-revenue intervention.
Where to set the amount is less important than that one exists. Token fixed amounts work; percentage-of-cart works and scales better across a wide price range. What does not work is an amount high enough that the shopper reasons they may as well prepay in full, at which point you have built a worse prepaid checkout.
Risk rules, not blanket rules
Blocking COD outright is the intervention merchants reach for first and regret. It is indiscriminate: it removes your good COD orders alongside the bad ones, and in a COD-majority market that is most of your revenue.
Targeted rules work better because RTO risk is not uniformly distributed. It concentrates:
Where RTO risk concentrates, and the proportionate response
| Signal | Why it correlates with RTO | Proportionate rule |
|---|---|---|
| High cart value | Larger sums prompt second thoughts at the door | Require partial payment above a threshold |
| Unfamiliar pincode | No delivery history, often weaker courier coverage | Require OTP, or prepaid only |
| Prior RTO from this customer | The strongest single predictor available to you | Prepaid only for repeat offenders |
| Multiple orders, same address, short window | Often duplicate or impulse ordering | Verify before dispatch |
| First-time customer, high value | No history and a large exposure at once | Partial payment |
| Category with high buyer's remorse | Fashion sizing, impulse categories | Category-level partial payment |
The principle is proportionality. Match the friction to the measured risk, and apply it only where your own data supports it. A rule built on someone else's benchmark will remove revenue you could have kept.
Measure by pincode before you write any rule
RTO is intensely geographic, and the pattern is specific to your couriers and your categories. Export your delivery data, compute RTO rate by pincode, and let that decide where rules apply. Almost every merchant who does this finds the problem concentrated far more narrowly than they assumed — which means the fix can be far narrower, and cost far less revenue, than a blanket policy.
What happens after dispatch still matters
Everything above is preventative, and prevention is where the leverage is. But a parcel already moving is not a lost cause, and the window between dispatch and delivery attempt is the cheapest place to convert an RTO into something less costly.
Confirm before dispatch. A short message asking the buyer to confirm the order, sent within an hour or two of placement, catches impulse orders while the decision is still fresh. A cancellation at this point costs you the picking labour and nothing else — no forward shipping, no return leg, no capital tied up. Merchants consistently find this is the highest-return message they send.
Set the delivery expectation precisely. A large share of door-step rejections are not really rejections; the buyer is not home, was not expecting the parcel, or does not have cash to hand. Telling someone the delivery window and the exact amount due converts a failed attempt into a successful one, and the cash-amount reminder matters more than merchants expect for COD specifically.
Make the second attempt count. Most couriers attempt delivery more than once, and the second attempt frequently fails for the same reason as the first because nothing changed in between. A message after a failed attempt, offering a reschedule or an address correction, is worth more than the attempt itself.
Watch for the pattern, not the incident. One RTO is noise. The same customer, the same pincode, or the same product appearing repeatedly is a signal that belongs in your rules. Feeding delivery outcomes back into the checkout rules is what turns a one-off cleanup into a system that keeps improving.
The metric to run this on
Track delivered contribution margin per session, not conversion rate and not RTO rate alone. Optimising RTO rate in isolation leads to blocking too much; optimising conversion in isolation leads to accepting everything. The single number that captures both is what you actually earned, after shipping both ways, per visitor who arrived.
The order to implement in
- Measure. RTO rate by pincode, by cart value band, by category. Without this everything after is guesswork.
- Add OTP verification. Broadest impact, lowest revenue cost, addresses the largest bucket.
- Introduce partial payment above a value threshold, set from your own data rather than a default.
- Add targeted risk rules for the specific pincodes and patterns your measurement exposed.
- Re-measure on delivered revenue, not order count. This is the step that tells you whether any of it worked.
Post-purchase confirmation is worth adding alongside all of the above — a message that lets the buyer confirm or cancel before dispatch converts a future RTO into a cancellation, which costs you nothing but the picking.
Expect the first pass to remove more revenue than you are comfortable with, and expect to loosen it. Merchants almost always over-tighten initially, see order count fall, and panic. Hold the change long enough to see delivered revenue rather than gross orders, then relax the rules that are costing you good customers and keep the ones that are not. Tuning towards the right level from a slightly-too-strict starting point is far easier than discovering the right level from a position of taking every order.
For the wider checkout picture, see checkout and payments. Payment method selection for Indian stores is covered in the same archive, and BFCM-specific checkout readiness lives in the BFCM 2026 series.
Frequently asked questions
- What is a normal RTO rate for COD orders in India?
- It varies enormously by category, price point and region, and any single benchmark figure should be treated sceptically.
- Does OTP verification annoy customers and cost conversions?
- It costs some conversions, and that is the point — it removes orders that were never going to be accepted.
- Is it better to block COD or charge for it?
- Charging is usually better. Blocking removes the order entirely; a COD fee or a partial prepayment keeps the order while shifting the economics and filtering out the least committed buyers.
- How much partial payment should I ask for?
- Enough to represent a real commitment and little enough not to feel like a prepaid order. Many merchants land somewhere between a token fixed amount and roughly ten to twenty percent of cart value.
- Will reducing RTO reduce my total orders?
- Yes, and that is usually the correct outcome. The orders removed are disproportionately the ones that would have been rejected at the door.



Comments