One self-hosted console to run your entire business — commerce, ERP, HRM, CRM & manufacturing

Cash on Delivery Without the Losses: How to Cut Failed Deliveries and Return-to-Origin

A failed COD parcel can erase the profit of several good orders. See where return-to-origin comes from, how to score and confirm orders before dispatch, handle non-delivery reports fast, and test it all in six weeks.

Author

Anichur Rahaman

1 week ago10 min read2 views
Cash on Delivery Without the Losses: How to Cut Failed Deliveries and Return-to-Origin

One thousand cash-on-delivery orders left an online store last week. On Monday at 9:10 its operations lead opens the report: seventy-eight percent were delivered. The other 22 percent are coming back: 80 refused at the door, 60 where nobody answered the phone, 50 with an address the courier could not find, 30 lost in a hub somewhere. The numbers in this scene are illustrative, but the pattern is familiar to anyone who sells for cash.

Each of those 220 parcels was packed, paid for by the shipper, driven out, driven back and counted in stock that nobody could sell for two weeks. The profit from a good part of the 780 delivered orders is already spent on the 220 that were not.

The thesis of this article is simple: return-to-origin (RTO) is decided before the parcel leaves the warehouse and in the first 48 hours after a failed attempt, not at the door. If you confirm the order, score the risk, and answer the courier's first non-delivery report quickly, most of those 220 parcels never start the round trip or finish it.

What one failed COD parcel really costs

Cash on delivery stays common across the Middle East, South and Southeast Asia, Latin America, Africa and parts of Central and Eastern Europe. Buyers use it because they do not trust a card form, do not own a card, or want to see the goods first. For the seller it moves all the risk to the last metre.

Two terms matter. A non-delivery report (NDR) is the status a courier raises after one failed attempt: customer unavailable, address incomplete, refused. The parcel is still recoverable. Return-to-origin (RTO) is what happens when the attempts run out and the parcel travels back to you, at your cost.

Here is an illustrative order, with every figure in the same currency unit:

LineDelivered orderFailed order (RTO)
Order value collected40.000.00
Product cost-22.000.00 (goods return)
Outbound shipping-3.00-3.00
Return shipping0.00-2.50
Packaging-0.50-0.50
Pick and pack-1.00-1.00
Inspect and restock0.00-1.00
COD handling fee-0.800.00
Damage on return (8% of 22.00)0.00-1.76
Contribution12.70-9.76

The swing between the two outcomes is 22.46. One failed parcel therefore erases the contribution of 0.77 of a good one, and that is before counting the cost nobody books: the unit was out of stock for two weeks, and the cash arrived late or never.

Bar chart of the illustrative cost of one failed COD parcel, from outbound shipping to damage on return, totalling 9.76 against 12.70 earned by a delivered order
What one failed parcel costs, line by line (illustrative), and what it takes from a good order's profit.

Why parcels fail: three different problems

An RTO rate of 20 percent is not one problem with one fix. It is at least three, and each needs a different lever.

The buyer never meant to take it

Impulse orders, prank orders, and a better price found elsewhere in the meantime. Cash on delivery costs the buyer nothing to cancel, so refusal at the door is free. The lever is intent: confirmation, deposits, incentives.

The buyer cannot be reached

A wrong digit in the phone number, a phone that is off during the delivery window, a courier who calls once. The lever is contact: validated numbers, a second channel such as WhatsApp or SMS, and a chance to reschedule.

The parcel cannot find the buyer

Free-text addresses without a landmark, the wrong district, a zone the courier serves poorly. The lever is address quality and courier choice by zone, and it is the one most stores never measure.

The funnel from order to cash

Treat a COD order like a payment funnel with leaks at every stage. Count how many orders enter and how many leave, and the leaks stop being a feeling.

Funnel from 1,000 placed COD orders through dispatch, first attempt and retries to cash settled, with the illustrative drop at each stage
Where the orders leak on the way to cash (illustrative numbers, 1,000 orders placed).

In the illustration, which matches Monday's scene, 1,000 orders are all dispatched, 690 are delivered at the first attempt, 780 after retries, and 770 are matched to cash within 30 days. The 90 recovered by retries show how much a fast response is worth, and the 10 delivered but never remitted show why finance needs its own stage. Each stage has its own owner. Confirmation belongs to customer care, first attempt to the courier, retries to whoever answers the NDR, and settlement to finance. If nobody owns a stage, nobody sees its leak.

Confirm and score before you dispatch

The cheapest RTO is the parcel you did not ship. Between checkout and the pick list, add two gates: a risk score and a confirmation.

A risk score from signals you already have

No model is needed to start. A points table over fields already in your orders database works, and it can be explained to the support team. Starting weights, to be tuned on your own history:

  • Phone fails a format check or has been used by another customer name: +20
  • First order from this customer: +15
  • Order value above 3 times your average: +15
  • Delivery area whose RTO rate is more than double your average: +15
  • Address without a landmark or house reference: +10
  • Earlier refused or returned COD order: +40
  • Three or more earlier delivered orders: -30

Worked example: a first-time buyer orders at 02:00, value 3.4 times average, from a weak zone, with a short address. The score is 15 + 15 + 15 + 10 = 55. Below 20, the order ships. From 20 to 49, it needs confirmation. From 50, you ask for a deposit or full prepayment. The thresholds are yours to move once you see the results.

Confirmation that costs seconds

Confirmation can be a call, a WhatsApp message with two buttons ("Confirm" and "Cancel"), an SMS reply, or an automated voice prompt. The message should repeat the item, the total to hand over, the address and the delivery window. A buyer who replies is a buyer who expects the parcel.

Flowchart of the pre-dispatch decision: validate the address, compute the risk score, ship if low, confirm if medium, ask for prepayment if high, and cancel or hold when there is no reply
The decision every COD order passes before dispatch, and where each branch ends.

Record every step on the order: the score, the signals that produced it, the message sent, the reply and the time. When RTO analysis starts, that history is what lets you tell which rule helped and which only annoyed good buyers.

Prepayment, fees and incentives

For the high band, give the buyer a way to keep the order. A deposit of 10 to 20 percent by card or mobile wallet shows intent and covers the return shipping if the parcel bounces. A small COD fee, shown at checkout and not at the door, makes prepaid the cheaper option. A discount or free shipping for prepaid orders does the same from the other side.

Test these as experiments, not policies. A fee on every order can cost conversion. Applied only to the high band, it touches a small share of orders and filters the ones most likely to refuse.

When the courier says no: the first 48 hours

A failed first attempt is the moment of highest recovery. Courier statuses vary by company, but the pattern is the same: an NDR appears with a reason code, the courier schedules another attempt in a day or two, and after the last attempt the parcel flips to return.

Map each reason to an action within hours:

  • Customer unavailable: message the buyer with a reschedule link or a time slot.
  • Address incomplete: ask for a landmark or a map pin and push the correction to the courier.
  • Refused: offer a discount or a different delivery date, once; then accept the return.
  • Phone unreachable: try the second channel before the next attempt.

An NDR answered the same day gives the next attempt a real chance. An NDR nobody reads becomes an RTO by default.

Choose the courier by zone, not by price list

Couriers are strong in some districts and weak in others. Group your parcels by courier and delivery zone, and compare first-attempt success and RTO for each cell. Then route accordingly: the cheaper courier where it performs, the better one where it does not.

The short StoreConsole delivery tour below shows what courier, zone and live-status data look like on one screen.

Couriers, zones, drivers and live status for every parcel (0:54).

Close the cash loop

Delivered does not mean paid. The courier collects the money, deducts its fee and remits in batches, often a week or more later. Match each remittance file against the orders it claims to cover. Three rows come out of that match: orders paid in full, orders paid short (fee or rounding differences), and delivered orders missing from any remittance.

For each order, keep these fields: courier, tracking number, amount due, amount remitted, fee withheld, remittance reference and date. An order marked delivered for 14 days with no remittance reference goes on a chase list. Without the match, unpaid parcels sit in a spreadsheet until someone notices the cash gap.

A six-week plan

Change one lever at a time so you can tell what worked.

  1. Week 1: measure the baseline per stage of the funnel, per courier and zone, and per reason code. Do not change anything yet.
  2. Week 2: fix the data. Validate phone numbers, require a landmark field, and log NDR reasons on the order.
  3. Week 3: turn on confirmation for the medium band and compare confirmed against unconfirmed orders.
  4. Week 4: add the NDR playbook, with an owner and a response time of four hours.
  5. Week 5: offer a deposit or a prepaid discount to the high band, for half of its orders, and keep the other half as the control group.
  6. Week 6: route one weak zone to a different courier, and review all results against week 1.

What to measure

MetricHow to calculate itWhy it matters
RTO rateReturned parcels / dispatched parcelsThe headline loss, split by courier and zone
First-attempt successDelivered on attempt 1 / dispatchedShows address and contact quality
Confirmation rateConfirmed / orders sent for confirmationShows how many orders had real intent
NDR recovery rateDelivered after an NDR / NDRs raisedMeasures your response, not the courier's
Days to cashRemittance date minus delivery dateWorking capital tied up per order
Net contribution per orderTotal contribution / orders placedThe number that decides if a change was worth it

Always judge a change on net contribution per order, not on RTO alone. Return the earlier illustration to the numbers: with confirmation at 0.30 per order, 6 of 20 doomed orders cancelled before dispatch and 2 saved at the door, 100 orders yield 82 delivered at 12.70, 12 failed at -9.76 and 30 spent on confirmation. The total is 894.28 instead of 820.80, a gain of 73.48 per 100 orders, or about 9 percent, without a single price change.

Back to Monday morning

The operations lead opens the same report six weeks later. Of 1,000 orders, 60 were cancelled at confirmation and never packed. The failed first attempts each have a reason code and a reply, and the weakest zone now uses a different courier. RTO has fallen from 22 percent to 12 percent, and the cash from last week's deliveries is already matched to remittance files.

The product and the price are unchanged. What changed is that every order now passes a gate before it leaves and a clock after it fails.

Key takeaways

  • A failed COD parcel costs the shipping both ways, handling, damage and locked stock; in the illustration it removes more than three quarters of a good order's profit.
  • Split RTO into intent, contact and address problems, because each has a different fix.
  • Score every order from fields you already hold, confirm the middle band, and ask the high band for a deposit.
  • Answer every NDR within hours and route zones to the courier that performs there.
  • Reconcile courier remittances against orders, and judge each change on net contribution per order.

Anichur Rahaman is a software architect and the creator of StoreConsole. He designs commerce and ERP systems for growing businesses, with a focus on event-driven architecture, data integrity and self-hosted operations.

About the Author

Anichur Rahaman

Continue Reading