This is not another article about why RTO hurts. This is the procedure: 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.
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. Shipway's FY25 data puts COD RTO at 26 percent against under 2 percent for prepaid, so most of this SOP is really one instruction: stop shipping unverified cash orders to risky pin codes.
SOP 1 · Pre-dispatch address scrub
Run this on every order before a label is printed. If a field fails, the order is flagged, not shipped.
| # | Field to check | Auto-flag rule | Action if flagged |
|---|---|---|---|
| 1 | Pin code | Not 6 digits, or not in courier serviceability list | Hold. Re-confirm pin on WhatsApp before dispatch |
| 2 | Phone number | Not 10 digits, starts below 6, or repeated digits (9999999999) | Hold. Request alternate number |
| 3 | Address length | Under 15 characters, or no house or flat number | Hold. Ask for full address line |
| 4 | Landmark | Blank (treat as compulsory in India) | Request a landmark by WhatsApp |
| 5 | City or state vs pin | City does not match the pin code master | Auto-correct city and state from pin |
| 6 | Duplicate order | Same phone or address ordered in last 24h | Call once to confirm it is not a mis-tap |
A flagged address costs one WhatsApp message to fix before dispatch, or roughly ₹150 in two-way freight to discover after.
SOP 2 · 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."
| Attempt | Channel | Timing | If no response |
|---|---|---|---|
| 1 | WhatsApp with YES or NO buttons | Within 1 hour of order | Wait 6 working hours, go to attempt 2 |
| 2 | IVR or human call | 6 to 24 hours after order | Hold order, do not ship |
| Cutoff | Auto-cancel or force-prepaid link | 48 hours, no confirmation | Cancel COD, send prepaid link instead |
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.
SOP 3 · Force-prepaid and confirmation-gate table
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.
| Condition | Green pin (RTO under 15%) | Amber pin (15 to 30%) | Red pin (over 30%) |
|---|---|---|---|
| Order under ₹700 | COD allowed, confirm by WhatsApp | WhatsApp + IVR confirm | Prepaid only |
| ₹700 to ₹1,500 | WhatsApp confirm | Partial prepaid token ₹50 to ₹100 | Prepaid only |
| Over ₹1,500 | Partial token or WhatsApp confirm | Prepaid only | Prepaid only |
| First-time buyer over ₹2,000 | Partial token | Prepaid only | Prepaid only |
| Phone with 2 past refusals | Prepaid only | Prepaid only | Prepaid only |
Red pin codes are real and named. Shipway's FY25 report puts Patna at 35 percent RTO and Vadodara at 18 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 · Prepaid nudge sequence
Every COD order you convert to prepaid before dispatch removes the entire RTO risk on that order. Run this sequence.
| Stage | Nudge | Mechanics |
|---|---|---|
| Checkout, payment page | UPI intent on top, COD last behind one extra tap | Make prepaid the path of least resistance |
| Checkout incentive | Flat ₹50 or 5% off for paying online | Size the discount below your COD penalty (about ₹70) |
| Checkout, high value | Partial prepaid token ₹50 to ₹100 on COD | Balance payable at door; refusals collapse on token-paid orders |
| Post-order, 0 to 2 hours | WhatsApp payment link: "Pay now, skip the doorstep cash hunt" | Optional sweetener: priority dispatch |
| Post-order, high value | Manual call offering prepaid + small discount | Only on orders above 2x your median AOV |
Sizing rule: if COD costs about ₹70 more per order, 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 · NDR first response, the 24-hour rule
An NDR is a failed delivery attempt waiting in the courier hub; it converts to RTO in 24 to 72 hours if nobody acts. Shipway's data 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.
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.
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. Deeper decoding of courier remarks and fake-attempt disputes lives in the NDR management guide.
SOP 6 · Courier lane selection by 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.
| Step | Action | Threshold |
|---|---|---|
| 1 | Pull delivery success rate per courier per zone, monthly | Need 30+ shipments per courier per zone to trust it |
| 2 | Rank couriers within each zone by success rate, not price | Ignore price gaps under ₹15 |
| 3 | Set allocation rules: best courier as default per zone | Every aggregator supports rule-based routing |
| 4 | Route high-value orders to your most reliable courier | Over ₹1,500 or fragile |
| 5 | Move volume away from any courier faking attempts in a zone | Fake-attempt rate 2x the zone average |
This is free money in a settings screen. Aggregator coverage and remittance differences are compared in Shiprocket vs NimbusPost vs Delhivery.
SOP 7 · The weekly RTO review ritual
Ten minutes, one sheet, every Monday. Same owner, same numbers, same thresholds. This ritual keeps every SOP above honest.
| Metric | How to pull it | Threshold | Owner |
|---|---|---|---|
| COD RTO rate | COD RTO shipments ÷ COD shipped, last 7 days | Act if over 25%; freeze ad scaling if over 30% | Founder |
| Confirmation rate | COD orders confirmed ÷ COD orders placed | Under 70% means the script or timing is broken | Ops owner |
| NDR save rate | Rescued orders ÷ NDRs flagged | Target 30%+; below 20% means slow response | Ops owner |
| Worst 10 pin codes | RTO per pin, sorted, last 60 days | Any pin over 30% moves to prepaid-only | Ops owner |
| Worst courier per zone | Success rate per courier per zone | Reallocate if 10 points below the zone best | Founder |
What one saved RTO is worth
Run the Margin Waterfall™ on a ₹599 COD order to size the prize. Each RTO you prevent is not a saved sale, it is a saved loss plus a captured contribution.
Margin Waterfall™: selling price minus COGS, packaging, shipping, COD fee, RTO loss, then CAC. Each prevented RTO stops a ₹340 cash burn (two-way freight, dead packaging, repack, the CAC already spent), and if the order now delivers it adds back roughly ₹124 of contribution. So one rescued order swings your P&L by close to ₹460, not ₹599. At 500 COD orders a month, cutting RTO from 30 to 20 percent prevents 50 returns, worth about ₹17,000 a month before the recovered contribution.
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 back to 30 percent, and he concludes "SOPs do not work." They do. He never ran them. 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.
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 morning, before anything else. I have watched a 90-minute daily NDR-calling habit recover more cash than a quarter of ad optimization. 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
- 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, not a hopeful one.
Your next action 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, and both are live in under an hour. 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.
