COD and Failed Deliveries: The Silent Margin Killer in Malaysian E-Commerce
Short answer: A failed COD delivery is not a discount, a return or a normal cost of doing business — it is a pure loss. The parcel goes out, the buyer refuses it or cannot be reached, and it comes back with zero revenue collected, while you still paid for outbound shipping, return shipping and the handling in between. In COD-heavy categories, a failed-delivery rate that never gets tracked separately from ordinary returns is one of the easiest ways to quietly lose margin you thought you had.
Cost of a failed COD delivery = outbound shipping + return shipping + handling time − RM 0 revenue
What counts as a failed COD delivery?
A failed delivery is different from a buyer accepting the parcel and later requesting a return. It typically means the buyer refuses the parcel at the door, is uncontactable after multiple attempts, gave a wrong or incomplete address, or simply never intended to complete the purchase — common with impulse taps during a live session or a flash sale. No payment ever changes hands, because COD collects on delivery, not before.
Why does a failed delivery cost more than it looks?
Because every cost line that a normal sale would recover through revenue is still there, with nothing coming in to offset it:
- Outbound shipping — paid the moment the parcel is dispatched, regardless of outcome.
- Return shipping — the courier still has to bring the parcel back to you, at a cost.
- Handling time — receiving, inspecting and restocking a returned parcel is real labour.
- Opportunity cost — that stock was unavailable to sell to a real buyer while it was in transit.
Unlike a paid order that gets refunded, there was never any revenue here to net these costs against. It is a straight loss, on paper before you even look at margin.
Worked example: a month of COD orders
Take a shop running 500 COD orders a month at an average RM 12 outbound shipping cost, with an 8% failed-delivery rate:
| Line | Amount |
|---|---|
| Failed deliveries (8% of 500) | 40 orders |
| Outbound shipping (RM 12 × 40) | RM 480.00 |
| Return shipping (est. RM 10 × 40) | RM 400.00 |
| Handling time (est. RM 3 × 40) | RM 120.00 |
| Revenue collected on these orders | RM 0.00 |
| Total pure loss from failed deliveries | RM 1,000.00 |
That RM 1,000 never shows up as a "cost" line on most dashboards — it is buried inside general logistics spend, and none of it produced a single sale. On a shop netting a 15–20% margin, this single month's failed-delivery cost alone can be equivalent to the profit on dozens of successful orders. (Figures illustrative; use your own COD order volume, shipping cost and observed failure rate.)
Why isn't a failed delivery the same as a return in your reports?
A return usually follows a completed, paid sale — see what returns really cost for that math, including which platform fees are and are not refunded on a return. A failed COD delivery never collects payment in the first place, so it has no revenue line to sit against and often gets folded silently into the same "returns" bucket, or dropped entirely from margin reporting. Tracking it as its own metric — failed-delivery rate, separate from buyer-initiated returns — is the only way to see the real size of the problem.
How can sellers reduce COD failed deliveries?
- Verify address and phone at checkout where the platform's checkout flow allows it, catching obviously incomplete details before dispatch.
- Call-ahead or confirmation SMS from the courier before attempting delivery, which some 3PLs support and can cut down on uncontactable-buyer failures.
- Flag repeat offenders — a small number of buyers with a pattern of refused COD parcels usually account for a disproportionate share of the failed-delivery cost.
- Nudge toward prepaid where possible — categories and price points where you can incentivise online payment over COD reduce exposure, without needing to drop COD entirely.
Size it before you accept it as normal
Most sellers accept a "normal" level of COD failure as a cost of doing business in Malaysia without ever putting a ringgit figure on it. Once you do, on a per-SKU or per-campaign basis, it becomes a number worth actively managing rather than a shrug. See also how much TikTok Shop sellers really make for how logistics costs like this fit into realistic seller income, and check your fee assumptions with the TikTok fee calculator or Shopee fee calculator.
Reconciling failed-delivery cost against actual settlement, separate from returns and separate from your headline GMV, is where most spreadsheets give up. Inseller was built by a seller shipping real COD volume in Malaysia, to surface true net profit per order and per SKU — including the parcels that never sold anything at all.