Why COD orders get returned: start with your own parcels, not a blog's list
Why COD orders get returned is the question behind almost every bad month for a Pakistani online seller. Every guide lists the same causes: fake orders, wrong address, customer not picking up the phone. The list is true, but it does not tell you which cause is eating your money. A store selling Rs 1,500 phone covers on TikTok has a very different return problem from a store selling Rs 6,000 suits through Google search. This post gives you a return-reason audit: a sheet you can copy into Google Sheets, a fixed list of reason codes, a fix for each code, and a worked Rs example of what each return costs.
There is very little public data on this in Pakistan. A June 2026 OrderNation study of one large Pakistani online retailer says no previously published study had reported order-level COD failure or return-to-origin (RTO) rates for the country. That is exactly why your own returned parcels are the best data you have.
What does the public data say about COD returns in Pakistan?
The OrderNation study looked at about 127,000 COD parcels shipped between July 2025 and June 2026. These are figures from a single retailer, not a national average, but they are the most detailed public numbers available.
| Measure (one retailer, 2025-26) | Figure |
|---|---|
| Shipped parcels delivered | 78.4% |
| Shipped parcels returned (RTO) | 19.4% |
| Monthly RTO range across 11 settled months | 19% to 22% |
| Median days for a failed COD delivery to show in the books | 21.7 days |
| RTO on search-intent traffic | 14.2% |
| RTO on social-discovery traffic | 22.7% |
| Cancellation rate, COD orders placed | 37.3% |
| Cancellation rate, prepaid orders placed | 2.8% |
| Share of COD cancellations that happened before dispatch (April 2026 cohort) | About three-quarters |
Three things stand out. First, returns were steady at around one in five shipped parcels every month, so this is a structural cost, not bad luck. Second, where the buyer came from mattered: buyers who searched for the product returned far less often than buyers who discovered it on social media, and a later matured cohort showed the same gap (13.5% against 21.1%). Third, most COD cancellations in April 2026 happened before the parcel left the warehouse. Every order you cancel before dispatch is a return you never pay for.
The reason codes: one list for every returned parcel
Courier return remarks are short and often vague, such as "refused" or "consignee not available". To learn anything, you need to put every returned parcel into exactly one reason from a fixed list. Use these nine codes, and do not add new ones casually, or your counts will not add up.
| Code | Reason | What it usually points to |
|---|---|---|
| R1 | Refused, changed mind | Impulse order, weak offer, long gap between order and delivery |
| R2 | Refused, product or price mismatch | Photos, size chart or total at the door not matching what the buyer expected |
| R3 | Phone off or not answering | Wrong number typed, buyer avoiding the call, or no confirmation before dispatch |
| R4 | Address incomplete or wrong | Missing area, landmark or house number; form fields too loose |
| R5 | Buyer not available or out of city | Delivery arrived on a day the buyer was away |
| R6 | Cash not ready, asked to come later | Amount at the door higher than expected, or delivery near month end |
| R7 | Did not order (fake or prank) | Orders with no confirmation, repeated names or numbers |
| R8 | Duplicate order | Buyer pressed order twice or ordered again from another ad |
| R9 | Courier side (no real attempt, delay, lost) | A lane or courier problem, not a customer problem |
Do not trust the courier remark alone. A "refused" may really be a late parcel the buyer no longer wanted (R9 leading to R1), and "consignee not available" may mean the rider never called. The fix is to ask the buyer, as explained in the method below.
There is a useful public parallel. Pakistan Post's Lahore office of exchange studied why inbound international parcels were not being delivered. Its list included incorrect or incomplete addresses, addressees who had moved, half-hearted delivery attempts and refusals because of heavy customs duty. Staff then started phoning recipients to get correct details. A 2022 Universal Postal Union article reported that undelivered items fell by 68% since January 2019, with about 90% of initially undelivered items reaching addressees within 72 hours. Those were international parcels, not COD orders, but the lesson carries over: a phone call fixes address and availability problems that a form cannot.
The template: copy this return-reason sheet into Google Sheets
Make a sheet called Returns with these headers in row 1, from column A to column L: Order no, Ship date, City, Product, Courier, Traffic source, Order value, Courier remark, Buyer said, Reason code, Who can fix it, Cost of this return.
- Fill one row for every parcel that came back in the month you are auditing. Take Order no, City, Product and Order value from Shopify, Courier remark from the courier portal, and Traffic source from your order tags or UTM (Meta, TikTok, Google, WhatsApp, repeat buyer).
- Buyer said (column I): message or call the buyer and ask one polite question, for example: "Your parcel came back to us. Was there a problem with the delivery or the order?" Write their answer in a few words. If they do not reply in two days, leave it blank and code from the courier remark.
- Reason code (column J): one code from R1 to R9. Use a dropdown (Data, then Data validation, then List of items) so nobody types a new reason.
- Who can fix it (column K): Seller for R1, R2, R4, R7 and R8; Seller and buyer for R3, R5 and R6; Courier for R9.
- Cost of this return (column L): put your fixed cost per return in cell N1 (see the example below) and use =$N$1 in every row, or a per-product figure if your ad cost differs a lot by product.
- Make a Summary tab. In A2 to A10 type R1 to R9. In B2 put =COUNTIF(Returns!J:J,A2) and drag down. In C2 put =B2/SUM($B$2:$B$10) for the share of returns. In D2 put =SUMIF(Returns!J:J,A2,Returns!L:L) for the money lost on that reason.
- Add a pivot table: rows = Reason code, columns = Traffic source, values = count of Order no. Make a second pivot with City instead of Traffic source, and a third with Product.
Audit a month that has settled. In the OrderNation study a failed COD delivery took a median of 21.7 days to appear in the books, so a month you ended last week still has returns on the way. Audit the month that ended at least three to four weeks ago.
Example: what one return really costs you
Example (illustrative numbers, not real courier rates or store data). You sell a Rs 3,000 product. Shipping out costs Rs 250, the return charge is Rs 250, packaging is Rs 50 and you spend about Rs 600 in ads for every order you ship.
| Line | Per returned parcel |
|---|---|
| Forward shipping | Rs 250 |
| Return charge | Rs 250 |
| Packaging (usually not reusable) | Rs 50 |
| Ad spend that bought this order | Rs 600 |
| Total lost per return | Rs 1,150 |
Now take 1,000 shipped parcels a month at a 20% return rate: 200 returns, or Rs 230,000 lost. Your audit shows R3 (phone off) is 30% of returns and R4 (address) is 15%. If better confirmation and a stricter address field halve those two reasons, returns fall by 45, from 200 to 155, and you keep about Rs 51,750 a month. That is before counting the product that sometimes comes back damaged and the cash that sat with the courier for weeks.
The example also shows why the audit is worth an afternoon: cutting the right reason by half beats cutting every reason by a little.
How to fix each return reason
- R1 changed mind: confirm every order on WhatsApp or a call before booking, and ship fast. The longer the gap between order and rider, the more buyers lose interest. Avoid offers so strong that people order without really wanting the product.
- R2 mismatch: use real photos, a size chart in cm and inches, and show the full amount including delivery charge on the order form and in the confirmation message, so the rider never surprises anyone.
- R3 phone off: check the number format on the form (11 digits starting with 03), confirm before dispatch, and ask the buyer to save your number. Hold orders that cannot be confirmed after two tries instead of shipping them.
- R4 address: ask for city, area, street or block and a landmark as separate fields, and call buyers whose address looks incomplete. A one-page COD form such as RabbitROI's lets you set these fields once for every product.
- R5 not available: in the confirmation message, ask when they will be home and add it to the courier's special instructions.
- R6 cash not ready: tell the exact amount in the confirmation message and remind them the day the parcel goes out for delivery.
- R7 fake: never ship an order you could not confirm, and keep a simple list of numbers that refused before.
- R8 duplicate: check for the same phone number in the last 48 hours before booking.
- R9 courier side: compare couriers per city with a scorecard and move lanes where one courier keeps failing.
Read the pivots: where your returns really come from
- Look at the Summary tab. The reason with the biggest money lost is your first fix. Ignore the rest for this month.
- Look at the Traffic source pivot. If social traffic returns much more than search or repeat buyers, as in the OrderNation study, judge your Meta and TikTok ads on delivered orders, not placed orders.
- Look at the City pivot. If R9 or R5 clusters in one city, it is a courier or lane problem, not a buyer problem. RabbitROI shows return (RTO) rates by courier, city and product for Leopards, PostEx, DEX, Daewoo and Avix, which saves you building this pivot by hand.
- Look at the Product pivot. A single product with lots of R2 returns needs better photos or sizing, not more ad budget.
- Write down the one change you are making and the date. Next month, run the same audit and check whether that reason's count fell.
FAQ
Why do COD orders get returned in Pakistan?
The common reasons are buyers changing their mind, product or price not matching expectations, phones off, incomplete addresses, buyers not at home, cash not ready, fake or duplicate orders and courier problems. Which one hurts most differs by store, so code your own returned parcels into reasons.
What is a normal COD return rate in Pakistan?
There is no official national figure. In a 2026 OrderNation study of one large retailer, 19.4% of shipped COD parcels came back, and the monthly rate stayed between 19% and 22%.
Do orders from Facebook and TikTok ads get returned more?
In the same study, social-discovery traffic had a 22.7% return rate against 14.2% for search-intent traffic. Check your own numbers by traffic source before changing your ads.
Does confirming COD orders before dispatch help?
Cancelling an order before dispatch means you never pay shipping or return charges on it. In the OrderNation study about three-quarters of COD cancellations in April 2026 happened before dispatch.
When should I audit my returned orders?
Audit a month at least three to four weeks after it ends. In the study, failed COD deliveries took a median of 21.7 days to show up in the seller's books.
Comments
No comments yet. Start the conversation.