🎉 Now live — a high-converting checkout that cuts RTO & lifts prepaid. Start free →
HomeBlog › RTO Risk Scoring: Flag Risky Orders Before They Ship
RTO & Delivery

RTO Risk Scoring: Flag Risky Orders Before They Ship

Two ₹1,299 COD orders land in the same minute. One delivers clean, one bounces back as RTO fifteen days later. The signals that told them apart were all sitting in the order the moment it was placed. Scoring just reads them.

Kwikfy · 2026-07-29 · 11 min read

Key takeaways

Here is the uncomfortable truth about COD in India: you can usually tell which orders will come back before you ship a single one. Not perfectly, but well enough to change what you do. The information is right there in the order, the pincode, the phone number, the address, the cart value, the fact that it is COD. RTO risk scoring is just the discipline of reading those signals and acting on them instead of shipping everything blind and hoping.

I want to be precise about what scoring is and is not, because a lot of brands either overtrust it or dismiss it. A risk score is not a lie detector and it is not a reason to reject customers. It is a router. Its entire job is to send each order down the right path so your good buyers sail through and your risky ones get a little friction. Let me show you the signals, how they combine, and what to do with the answer.

The signals that actually predict RTO

Start with the raw inputs. Each one carries a bit of predictive weight on its own, and a lot more when they stack. These are the ones that matter in the Indian context, roughly in order of how much they move the needle.

SignalWhat it tells youWeight
Repeat-RTO phone (cross-store)This buyer has bounced orders before, often across brandsVery high
Pincode RTO historySome pincodes return far above average, structurallyHigh
Address completenessShort or junk addresses fail delivery constantlyHigh
COD flagCOD orders RTO several times more than prepaidHigh
Phone validityFake or unreachable numbers cannot be worked on NDRMedium-high
Order valueVery high-value COD carries more refusal riskMedium
Order velocity / fraud patternMany orders, one address, odd timing signals abuseMedium
New vs returning buyerA proven buyer on your store is far saferMedium

The one people underrate is the repeat-RTO phone. Geography is a blunt instrument, an entire pincode is not risky, some houses in it are. Behaviour is sharp. A phone number that has refused deliveries before, especially across multiple stores in a shared network, is the single cleanest predictor you have. That is why serial returner detection and COD fraud detection sit at the top of any serious model. Pincode history comes next, and it is real, but handle it with more care. Some pincodes in tier-3 India run structurally higher RTO because of access, local address conventions, and patchy courier reach, not because the buyers there are dishonest. You will find the patterns in high-RTO pincodes in India. Use it as a weight in the score, never as a blanket ban, or you will punish honest buyers for the accident of their postcode.

How the signals become a score

There are two layers, and you want both. The first is plain rules. The second is machine learning. Do not skip straight to ML, because rules give you something ML cannot: you can explain exactly why an order was flagged, which matters when you are deciding whether to refuse a customer.

Layer one: transparent rules

Rules are simple, fast, and auditable. You assign points and add them up. Something like:

Add the points, and the total lands the order in a band. The beauty of rules is that when an order scores 65, you can say precisely which signals got it there. That transparency is what lets you act confidently. It also lets you tune, because you can see which rule is over-firing and dial it back.

Layer two: machine learning for the middle

Rules are great at the extremes. A repeat-RTO phone on a junk address is obviously high risk, and a returning prepaid buyer is obviously low. The problem is the murky middle, the first-time COD buyer with a decent address in an average pincode. Is that a 12 percent RTO order or a 22 percent one? Rules shrug. A model trained on your own delivered-versus-returned history can read the subtle combinations a human never would. How that model is built and trained is covered in RTO prediction with machine learning.

Run ML in observe-only mode for a few weeks first. Let it score orders but do not act on the score, and check whether its high-risk flags actually match the orders that came back. Trust it only after it has earned it on your data.

What to do per risk band

This is the part that matters, and the part most guides skip. A score with no action attached is a vanity metric. The whole reason you scored the order is to treat it differently. Here is a sane banding and the action for each. Tune the thresholds to your own catalogue and margins.

BandScore rangeActionWhy
Green0-25Allow, ship as-isProven or clean order, do not add friction
Yellow26-50WhatsApp COD confirmation before dispatchCheap filter for impulse and accidental orders
Orange51-70OTP-gate COD, or nudge hard to prepaidReal risk, verify intent or shift the payment
Red71-100Force prepaid or partial-COD, else holdToo risky to ship COD without skin in the game

Walk through the logic. Green orders get nothing added, because friction on a good buyer is just lost conversion. Yellow gets a WhatsApp "reply YES to confirm", the cheapest filter there is, detailed in the WhatsApp COD confirmation sequence. Orange orders you either verify with OTP or push toward prepaid with a real incentive. Red orders you do not ship on plain COD at all, you convert them to prepaid or partial-COD so the buyer has something at stake, and if they will not, you hold or drop. That move from orange and red toward prepaid is where scoring pays for itself, because a converted order leaves the RTO pool entirely, you get the cash up front instead of waiting fifteen days on the courier, and the return risk collapses. The mechanics of the shift are in COD-to-prepaid conversion and the offers that actually work are in prepaid incentives that work.

The mistakes that make scoring backfire

First mistake: treating a score as a rejection. It is not. Most of your flagged orders are still worth shipping, just with a confirmation or a prepaid nudge attached. If your scoring is quietly cancelling orders, you have built a revenue leak and called it risk management. Second mistake: over-weighting pincode. Punishing an entire postcode drops good buyers along with bad ones. A postcode does not refuse a delivery, a specific buyer does. Weight the pincode, do not ban on it, and let behaviour signals like the repeat-RTO phone always outrank raw geography.

Third mistake, and the one that quietly rots a good model: scoring and never checking. A score that is never validated against real returns drifts. Festive-season buyers behave nothing like your January buyers, new pincodes open up as couriers expand, and a fraud pattern you tuned for six months ago mutates. You have to feed actual delivered-versus-RTO outcomes back into the score every few weeks, which is the whole idea behind the RTO feedback loop. Score, ship, observe, correct, repeat. A model you set and forget is worse than honest rules you keep an eye on.

Every quarter, pull your flagged orders and check the false-positive rate, the green orders that came back and the red orders that would have delivered fine. If either is climbing, retune before you trust the bands again.

Where scoring fits in the bigger picture

Risk scoring is one step in a longer chain, not a standalone fix. It does not repair a broken address field, it just reads it, so address quality and phone verification have to come first or the score is reading garbage in and confidently reporting garbage out. And scoring only creates value if the bands are wired to real actions downstream, the confirmations, the prepaid nudges, the courier choices in courier allocation. The full sequence is in the 9-step RTO reduction playbook, where scoring is step three, sitting exactly between fixing your inputs and acting on the output. Get that placement right and the two ₹1,299 orders I opened with stop being a coin toss: the clean one ships green and untouched, the risky one gets a WhatsApp confirm or a prepaid nudge before it ever leaves your warehouse. You did not refuse anyone. You just stopped shipping blind.

Score every order before it ships

Kwikfy scores RTO risk on every order using pincode, phone reputation, address and payment signals, then routes each one to allow, verify or prepaid automatically.

Start Free →

Frequently asked questions

What is the single strongest signal for RTO risk?
A phone number with a history of repeated returns, ideally seen across multiple stores in a shared network. Behaviour predicts behaviour better than geography does. A repeat-RTO phone on a fresh COD order is far riskier than an average pincode, because the same buyer who bounced deliveries before tends to do it again regardless of where they live.
Does a high-RTO pincode mean I should block those orders?
No. Pincode history is a weight in the score, not a reason to ban a postcode. Structural factors like courier reach and address conventions push some pincodes higher, but most buyers there are honest. Blanket-blocking a pincode drops good customers along with bad ones. Weight it, combine it with phone and address signals, and act on the combined score.
What should I actually do with a risky order?
Route it by band, do not reject it. Low risk ships as-is. Medium risk gets a WhatsApp confirmation before dispatch. Higher risk gets OTP-gated COD or a firm prepaid nudge. Only the very top band gets forced to prepaid or partial-COD, or held if the buyer refuses. The goal is friction proportional to risk, not cancellation.
Do I need machine learning, or are rules enough?
Rules are enough to start and they have the advantage of being explainable, so you know exactly why an order was flagged. They handle the clear-cut cases well. Machine learning earns its place in the ambiguous middle, where a first-time COD buyer with a decent address could go either way. Begin with rules, validate against real returns, then layer ML on top.

Ready to run a tighter, more profitable store?

Join Indian D2C brands streamlining their entire operation on Kwikfy.

Get Started Free →