Skip to content

RTO Reduction SOP: The Step-by-Step Operating Procedure (2026)

By Ravikant Tyagi · 14 min read ·

You ship COD and roughly one parcel in four comes back. That's the Indian average, not bad luck: Shipway's ShipNotes FY25 report puts COD RTO at 26 percent against under 2 percent for prepaid. Each return burns ₹300 to ₹500 in two-way freight, dead packaging and ad spend you already paid. This page is the procedure that stops it: the checklist your team runs daily, the exact words your confirmation message uses, the pin-code table that decides when COD gets switched off, and the Monday ritual that keeps the number honest. Print it. Hand it to whoever packs your orders.

For the reasoning, the ₹ math and the causes behind these steps, read the full RTO reduction playbook first. This page is the how, built from the operations chair by Ravikant Tyagi, Distribution Head at Eureka Forbes and Supply Chain and Operations Leader at Atomberg.

Executive summary

Seven SOPs, run in order of the parcel's journey. Scrub the address before dispatch. Confirm every COD order by WhatsApp, then one IVR call, 2-attempt rule, then hold or cancel. Force prepaid above your value ceiling and in red pin codes. Nudge prepaid at checkout and after the order with UPI first and a sized token. Clear every NDR inside 24 hours with a named owner. Pick the lower-RTO courier per zone, not the cheapest. Review five numbers every Monday against fixed thresholds. Each RTO you prevent keeps ₹300 to ₹500 of cash in the business, so most of this SOP is really one instruction: stop shipping unverified cash orders to risky pin codes.

Find→Validate→Unit Economics→Fulfilment→Scale

SOP 1: How do I scrub addresses before dispatch?

Run this on every order before a label is printed. If a field fails, the order is flagged, not shipped. Most aggregator panels and Shopify checkout apps can run the first five checks automatically; the sixth needs a simple report.

#Field to checkAuto-flag ruleAction if flagged
1Pin codeNot 6 digits, or not in courier serviceability listHold. Re-confirm pin on WhatsApp before dispatch
2Phone numberNot 10 digits, starts below 6, or repeated digits (9999999999)Hold. Request alternate number
3Address lengthUnder 15 characters, or no house or flat numberHold. Ask for full address line
4LandmarkBlank (treat as compulsory in India)Request a landmark by WhatsApp
5City or state vs pinCity does not match the pin code masterAuto-correct city and state from pin
6Duplicate orderSame phone or address ordered in last 24hCall once to confirm it is not a mis-tap

A flagged address costs one WhatsApp message to fix before dispatch, or roughly ₹150 to ₹250 in two-way freight to find out after. Bad addresses are the second largest cause of failed deliveries after ghost buyers, so this table earns its place at the top.

SOP 2: What is the COD confirmation script and timing?

Every COD order gets confirmed before it ships. Two channels, two attempts, then a decision. Use these exact messages.

Step 1 · WhatsApp, within 1 hour of order

"Hi [Name], this is [Brand]. Confirming your order for [Product], COD ₹[Amount], to [short address]. Reply YES to confirm and we ship today. Reply NO to cancel. The rider also accepts UPI at the door."

Step 2 · IVR or human call, if no reply in 6 hours

"Hello, calling from [Brand] about your order for [Product], cash on delivery ₹[Amount]. Press 1 to confirm, press 2 to cancel. To confirm on WhatsApp, reply YES to our message."

AttemptChannelTimingIf no response
1WhatsApp with YES or NO buttonsWithin 1 hour of orderWait 6 working hours, go to attempt 2
2IVR or human call6 to 24 hours after orderHold order, do not ship
CutoffAuto-cancel or force-prepaid link48 hours, no confirmationCancel COD, send prepaid link instead

What the message costs: on Meta's WhatsApp Business Platform pricing, a confirmation sent as a utility template is billed per delivered message, and it's free if the customer messaged you inside the last 24 hours. The India rate card lists a utility message at about ₹0.115 before 18 percent GST and your provider's markup, so budget under ₹1 per confirmation even with a BSP fee. The IVR call costs more, but both together are a rounding error against the ₹300 to ₹500 they protect. Template setup and opt-in rules are covered in the WhatsApp marketing guide.

The rule is non-negotiable: an unconfirmed COD order does not ship. Hold it 48 hours, then cancel or convert to prepaid. Shipping unverified cash to a stranger is a ₹340 donation to your courier on a ₹599 order, and closer to ₹400 on a ₹1,299 one.

SOP 3: When do I force prepaid instead of COD?

Two triggers decide the gate: order value and pin-code risk. Build the pin-code buckets after 60 to 90 days of your own orders (RTO per pin, sorted). Until then, use a courier risk score. Then apply this table exactly.

ConditionGreen pin (RTO under 15%)Amber pin (15 to 30%)Red pin (over 30%)
Order under ₹700COD allowed, confirm by WhatsAppWhatsApp + IVR confirmPrepaid only
₹700 to ₹1,500WhatsApp confirmPartial prepaid token ₹50 to ₹100Prepaid only
Over ₹1,500Partial token or WhatsApp confirmPrepaid onlyPrepaid only
First-time buyer over ₹2,000Partial tokenPrepaid onlyPrepaid only
Phone with 2 past refusalsPrepaid onlyPrepaid onlyPrepaid only
Decision Framework

The Founder Decision Loop™ applied to one COD order. If the pin is red (over 30 percent RTO) → prepaid only, no exceptions. If the pin is amber and the order is over ₹1,500 → prepaid only. If the pin is amber and the order is ₹700 to ₹1,500 → ship only against a ₹50 to ₹100 token. If the pin is green → ship on a WhatsApp YES. If the phone has refused twice before → prepaid only, whatever the pin. Decide from the table, not from the day's mood, and revisit the buckets every 60 days.

Source Scratch to ₹5 Lac/month · Phase Fulfilment · Framework Founder Decision Loop™ · Created by Ravikant Tyagi, 2026

Red pin codes are real and named. The same ShipNotes data puts Patna at 35 percent RTO and Vadodara at 18 percent, and it shows the ₹500 to ₹1,000 order band returning most often at 28 percent, so your own map will look similar. Reference cities and the full risk logic sit in the COD vs prepaid strategy guide.

SOP 4: How do I nudge COD buyers to pay online?

Every COD order you convert to prepaid before dispatch removes the entire RTO risk on that order. Run this sequence.

StageNudgeMechanics
Checkout, payment pageUPI intent on top, COD last behind one extra tapMake prepaid the path of least resistance
Checkout incentiveFlat ₹50 or 5% off for paying onlineSize the discount below your COD penalty (about ₹70)
Checkout, high valuePartial prepaid token ₹50 to ₹100 on CODBalance payable at door; refusals collapse on token-paid orders
Post-order, 0 to 2 hoursWhatsApp payment link: "Pay now, skip the doorstep cash hunt"Optional sweetener: priority dispatch
Post-order, high valueManual call offering prepaid + small discountOnly on orders above 2x your median AOV

Sizing rule: if COD costs about ₹70 more per order (a ₹25 to ₹50 collection fee plus the RTO provision), any spend up to ₹60 converting it to prepaid is profit. On sub-₹1,000 orders a flat ₹50 beats a percentage because it reads bigger.

SOP 5: What is the 24-hour NDR rule?

An NDR, or non-delivery report, is the courier's notice that a delivery attempt failed; the parcel sits in the hub and converts to RTO in 24 to 72 hours if nobody acts. Shiprocket's NDR documentation gives you three actions on each one: reattempt, contact the buyer, or return to origin. ShipNotes shows deliveries dragged beyond 5 days hit 35 percent RTO versus 22 percent for 1 to 2 day deliveries, so speed is the whole game. One named owner clears the queue every morning.

SOP Preview · NDR First Response

Within 4 working hours of any NDR: auto-WhatsApp the customer with three buttons, Reattempt tomorrow, Update address, Cancel. No reply in 4 hours, call from your own number: "Your [Product] is with the courier in [City] and came back undelivered. I want it reaching you tomorrow." Read the address back line by line, confirm the time window, state the COD amount and that the rider accepts UPI. Update the corrected address in the courier panel before triggering the reattempt, never in your chat alone. Escalate any parcel on its second failed attempt to a human daily before the auto-RTO timer fires. Confirmed refusal, mark RTO today; stop spending attempts on a dead order.

Source Scratch to ₹5 Lac/month · Phase Fulfilment · SOP NDR First Response

Who does what: the ops owner clears the panel and calls; the founder sees only the count of NDRs older than 24 hours in the Monday review. A sub-24-hour response saves 30 to 50 percent of NDRs; past 48 hours the save rate roughly halves. Deeper decoding of courier remarks and fake-attempt disputes lives in the NDR management guide.

SOP 6: How do I pick the courier for each zone?

Do not pick the cheapest courier. Pick the one with the lower RTO in that zone. The ₹8 you save on freight vanishes the first time weak coverage triggers one extra return.

StepActionThreshold
1Pull delivery success rate per courier per zone, monthlyNeed 30+ shipments per courier per zone to trust it
2Rank couriers within each zone by success rate, not priceIgnore price gaps under ₹15
3Set allocation rules: best courier as default per zoneEvery aggregator supports rule-based routing
4Route high-value orders to your most reliable courierOver ₹1,500 or fragile
5Move volume away from any courier faking attempts in a zoneFake-attempt rate 2x the zone average

This is free money in a settings screen. The rule-writing itself is walked through in the multi-courier allocation guide, and aggregator coverage and remittance differences are compared in Shiprocket vs NimbusPost vs Delhivery.

SOP 7: What do I review every Monday?

Ten minutes, one sheet, every Monday. Same owner, same numbers, same thresholds. This ritual keeps every SOP above honest.

MetricHow to pull itThresholdOwner
COD RTO rateCOD RTO shipments ÷ COD shipped, last 7 daysAct if over 25%; freeze ad scaling if over 30%Founder
Confirmation rateCOD orders confirmed ÷ COD orders placedUnder 70% means the script or timing is brokenOps owner
NDR save rateRescued orders ÷ NDRs flaggedTarget 30%+; below 20% means slow responseOps owner
Worst 10 pin codesRTO per pin, sorted, last 60 daysAny pin over 30% moves to prepaid-onlyOps owner
Worst courier per zoneSuccess rate per courier per zoneReallocate if 10 points below the zone bestFounder

How much is one saved RTO worth?

Size the prize before you assign the hours. Take a ₹1,299 COD order, a typical mid-band AOV. Here is the cash that leaves the business when it comes back, line by line.

Calculator Preview · Cost of one RTO at ₹1,299 AOV
Forward shipping (paid at dispatch)−₹90
Reverse shipping (RTO leg)−₹80
Packaging written off−₹30
Repack, QC and restocking labour−₹20
Marketing CAC already spent−₹180
Cash burned per RTO₹400
Open the interactive calculators →
Source Scratch to ₹5 Lac/month · Calculator Unit Economics · Created by Ravikant Tyagi, 2026

Two-way freight of ₹170 sits inside the ₹120 to ₹250 a typical parcel costs, and the total lands at ₹400, the middle of the ₹300 to ₹500 band a saved RTO is worth at ₹999 to ₹1,999 AOV. On a ₹599 order the same lines add up to about ₹340, because freight barely changes with price. Now the monthly view: at 500 COD orders a month, cutting RTO from 30 to 20 percent prevents 50 returns. 50 × ₹400 = ₹20,000 of cash kept every month, and if those 50 parcels deliver, each order's own contribution lands on top. Run this against your real numbers in the D2C unit economics guide and put an RTO provision line in your P&L at the rate you actually see.

Operator Framework

Margin Waterfall™: selling price minus COGS, packaging, shipping, COD fee, RTO loss, then CAC. RTO enters the waterfall twice: once as the ₹400 of cash a return burns, and again as the contribution the delivered order would have earned. That is why a prevented return is never "just a saved sale". At a 26 percent COD RTO rate, the provision alone is ₹104 per COD order at ₹400 a return; at 15 percent it drops to ₹60. That ₹44 per order is the SOP's return on effort, before a single rupee of recovered margin.

Source Scratch to ₹5 Lac/month · Phase Unit Economics · Framework Margin Waterfall™ · Created by Ravikant Tyagi, 2026
Founder Mistake

A founder writes all seven SOPs, prints them, then runs them only when the RTO report looks ugly. Confirmation calls happen some days, not others. The NDR panel gets cleared twice a week. Within a month the number drifts from 20 back to 30 percent, and he concludes "SOPs do not work." They do. He never ran them. At 500 COD orders a month that drift is 50 extra returns, about ₹20,000 of cash a month at ₹400 a return, plus the ad money that bought those orders. An SOP skipped on a busy day is not an SOP, it is a suggestion, and RTO is a daily counter that only rewards a daily habit. Assign one named owner with a fixed 4-hour NDR SLA and a Monday review, or do not bother printing the sheet.

Operator Note · Ravikant Tyagi

Running fulfilment at Atomberg through its ₹400 crore to ₹1,200 crore growth phase taught me that the NDR panel is a morning job, not an evening one. The teams that beat RTO were never the ones with the fanciest tool. They were the ones where the same person cleared the same panel at the same time every day, before anything else. I have watched a 90-minute daily NDR-calling habit recover more cash than a quarter of ad optimisation, because a parcel rescued on day 1 has a 22 percent return risk and the same parcel on day 5 has 35. Systems beat willpower, so turn these SOPs into calendar events with an owner's name on them. What gets scheduled gets done; what gets remembered gets skipped.

Execution checklist

Execution Checklist
  • Turn on the 6-field address scrub at checkout: pin, phone, address length, landmark, city-pin match, duplicate flag.
  • Set the COD confirmation flow: WhatsApp in 1 hour, IVR at 6 hours, hold at 48 hours. Unconfirmed orders do not ship.
  • Build your pin-code ledger after 60 to 90 days and enforce the force-prepaid table by value and risk.
  • Put UPI first at checkout, COD last, with a flat ₹50 prepaid nudge and a token on high-value COD.
  • Assign one named owner to clear every NDR within 4 working hours, daily.
  • Pull courier success rate per zone monthly and set allocation rules by reliability, not price.
  • Run the 5-metric Monday review with fixed thresholds and named owners.
  • Add an RTO provision line to your unit economics at your real rate, ₹400 a return, not a hopeful one.

Next action: turn on SOP 1 and SOP 2 today

Pick SOP 1 and SOP 2 and turn them on before you close your laptop: the address scrub and the COD confirmation message. Those two stop the most orders from ever becoming RTO, both are live in under an hour, and the message costs under ₹1 to send. Assign the NDR owner tomorrow morning. Do not wait to build all seven; a business running two SOPs today beats one planning seven for next month.

If you'd like the complete execution system, calculators, SOPs, templates and operating frameworks behind this process, continue inside D2C Acquisition.Lab.

Free: six D2C operator notes

Work through validation, margins and the costs that change a launch decision. Six practical notes, with examples you can check against your own numbers.

You'll get the six-part series plus occasional operator notes. Unsubscribe anytime.

About the author
Ravikant Tyagi, Founder of D2C Acquisition.Lab
Founder, D2C Acquisition.Lab
  • Former Distribution Head at Eureka Forbes (₹3,500 crore consumer business).
  • Former Supply Chain & Operations Leader at Atomberg Technologies during its growth from ₹400 crore to ₹1,200 crore.
  • Creator of the Scratch to ₹5 Lac/month Operating System. Fractional COO to funded consumer startups.
D2C OperationsUnit EconomicsProduct ValidationSupply ChainEcommerce LogisticsFounder Execution Systems

Want the whole system, not just the theory?

Scratch to ₹5 Lac/month: 9 live calculators (margin, RTO, break-even), 50+ SOPs, and a 90-day plan built for Indian D2C.

₹1,999₹4,99960% off
Start building today
  • One-time payment
  • No recurring fees
  • Instant access

FAQ

Common questions

Send WhatsApp within an hour: "Confirming your order for [Product], COD ₹[Amount], to [address]. Reply YES to ship today, NO to cancel. Rider accepts UPI at the door." If no reply in 6 hours, call or fire an IVR: "Press 1 to confirm, 2 to cancel." Two attempts, then hold the order at 48 hours and either cancel or send a prepaid link. The message costs under ₹1 on Meta's utility rate. An unconfirmed COD order never ships.

Force prepaid in three cases: any pin code where your 60 to 90 day RTO exceeds 30 percent, orders above ₹1,500 in medium-risk pin codes, and first-time buyers ordering above ₹2,000. Also block COD for any phone number with two past refusals. Everywhere else keep COD on, but gate it behind WhatsApp confirmation or a ₹50 to ₹100 partial prepaid token depending on order value and pin-code risk.

An NDR is a failed delivery attempt sitting in the courier hub; it converts to RTO in 24 to 72 hours if nobody acts. The 24-hour rule means a named owner clears every NDR within roughly 4 working hours, and never lets one sit past 24. Auto-WhatsApp the buyer with reattempt, update-address and cancel buttons, then call within 4 hours, fix the address in the courier panel, and trigger the reattempt. Speed decides your save rate.

On a ₹1,299 COD order, about ₹400: ₹90 forward shipping, ₹80 reverse shipping, ₹30 of packaging written off, ₹20 of repack and QC labour, and ₹180 of ad spend that bought the order. On a ₹599 order it is roughly ₹340, because freight barely changes with price. That is why a saved RTO is worth ₹300 to ₹500 in cash before you count the margin the delivered order earns.

Shipway's ShipNotes FY25 data puts the average COD RTO at about 26 percent, against under 2 percent for prepaid. A brand running address scrubbing, COD confirmation, pin-code rules and daily NDR follow-up should target under 15 percent on COD. Below roughly 10 to 12 percent, tightening COD further usually rejects more genuine orders than it saves, so shift focus to growing prepaid share and lowering CAC instead.

Five numbers, every Monday, ten minutes: COD RTO rate for the last 7 days, COD confirmation rate, NDR save rate, your worst 10 pin codes by RTO, and worst courier per zone. Fixed thresholds trigger action: freeze ad scaling if RTO tops 30 percent, fix the script if confirmation falls below 70 percent, move any pin over 30 percent to prepaid-only, and reallocate any courier 10 points below the zone best.