Skip to main content
← All posts

Why COD Orders Get Returned in Pakistan: A Return-Reason Audit Sheet to Find and Fix Your Biggest RTO Cause

Why COD orders get returned in Pakistan, and how to find your own reason: a copy-paste return-reason audit sheet, a fix for each cause and a Rs example.

Published 2026-10-179 min read
EnglishاردوRoman Urdu

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 delivered78.4%
Shipped parcels returned (RTO)19.4%
Monthly RTO range across 11 settled months19% to 22%
Median days for a failed COD delivery to show in the books21.7 days
RTO on search-intent traffic14.2%
RTO on social-discovery traffic22.7%
Cancellation rate, COD orders placed37.3%
Cancellation rate, prepaid orders placed2.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.

CodeReasonWhat it usually points to
R1Refused, changed mindImpulse order, weak offer, long gap between order and delivery
R2Refused, product or price mismatchPhotos, size chart or total at the door not matching what the buyer expected
R3Phone off or not answeringWrong number typed, buyer avoiding the call, or no confirmation before dispatch
R4Address incomplete or wrongMissing area, landmark or house number; form fields too loose
R5Buyer not available or out of cityDelivery arrived on a day the buyer was away
R6Cash not ready, asked to come laterAmount at the door higher than expected, or delivery near month end
R7Did not order (fake or prank)Orders with no confirmation, repeated names or numbers
R8Duplicate orderBuyer pressed order twice or ordered again from another ad
R9Courier 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.

  1. 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).
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.

LinePer returned parcel
Forward shippingRs 250
Return chargeRs 250
Packaging (usually not reusable)Rs 50
Ad spend that bought this orderRs 600
Total lost per returnRs 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

  1. Look at the Summary tab. The reason with the biggest money lost is your first fix. Ignore the rest for this month.
  2. 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.
  3. 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.
  4. Look at the Product pivot. A single product with lots of R2 returns needs better photos or sizing, not more ad budget.
  5. 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.

Sources

  1. OrderNation: State of Online Shopping in Pakistan 2026
  2. Universal Postal Union: Delivering the undeliverable, Pakistan Post goes extra mile for every parcel

Comments

No comments yet. Start the conversation.