Why there is no single best courier for COD in Pakistan
Every seller group on WhatsApp gets the same question every week: which is the best courier for COD in Pakistan? The honest answer is that it depends on the city, and you can only find out from your own parcels. This post gives you a courier scorecard sheet you can copy into Google Sheets today, the formulas to fill it, and a worked example of how to read it.
The best public evidence that the answer changes by city comes from a June 2026 OrderNation study of a large Pakistani online retailer. It compared delivery success for two anonymised couriers on settled COD orders from January to April 2026. In most cities the two couriers performed about the same. But in 7 of 50 cities the gap was statistically significant, and in those cities it ranged from 7.5 to 20.5 percentage points.
| City | Courier A delivered | Courier B delivered | Significant gap? |
|---|---|---|---|
| Lahore | 78.5% | 86.0% | Yes |
| Multan | 81.7% | 73.1% | Yes |
| Quetta | 71.9% | 55.4% | Yes |
| Rahimyar Khan | 90.2% | 69.8% | Yes |
| Karachi | 80.6% | 79.5% | No |
| Islamabad | 83.2% | 82.6% | No |
Read the table carefully. Courier A was clearly better in Multan, Quetta and Rahimyar Khan, while Courier B was clearly better in Lahore. In Karachi and Islamabad it made no real difference. A seller who picks one courier for the whole country based on a friend's advice is leaving delivered orders on the table in some cities and paying for nothing extra in others.
What should a courier scorecard measure?
Price per kg is the number couriers lead with, but for a COD seller it is only one of four things that decide profit: how many parcels get delivered, how fast the cash reaches your account, what each parcel costs including returns and COD fees, and how often things go wrong (lost, damaged, late). The scorecard below tracks all four, per courier and per city.
| Column | What it means | Where to get it |
|---|---|---|
| Courier | Name of the courier | Your booking portal |
| City | Destination city (or zone for small towns) | Shopify order address |
| Shipped | Parcels handed to the rider in the period | Courier load sheet or booking report |
| Delivered | Parcels delivered and paid | Courier COD settlement report, not tracking status |
| Returned | Parcels that came back to you | Return report or physical count |
| Delivery rate | Delivered divided by Shipped | Formula |
| Avg days to deliver | Booking date to delivery date, averaged | Tracking history export |
| Forward charge | Average shipping charge per parcel | Courier invoice |
| COD fee | Fee per COD shipment | Courier invoice or rate card |
| Return charge | Charge per returned parcel | Courier invoice |
| Payment days | Days from delivery to cash in your bank | Bank statement vs settlement report |
| Lost or damaged | Parcels lost, damaged or short-paid | Your claim tracker |
| Cost per delivered order | All courier costs divided by Delivered | Formula |
Keep one row per courier per city per month. Small towns with only a few parcels can be grouped by zone, for example Southern Punjab or interior Sindh, so each row has enough parcels to mean something.
The template: copy this into Google Sheets
Make a sheet with these headers in row 1, from column A to column N: Month, Courier, City, Shipped, Delivered, Returned, Delivery rate, Avg days to deliver, Forward charge, COD fee, Return charge, Payment days, Lost or damaged, Cost per delivered order. Then add these formulas in row 2 and drag them down:
- Delivery rate (column G): =IF(D2=0,"",E2/D2) and format it as a percentage.
- Total courier cost (put it in a helper column O): =D2*(I2+J2)+F2*K2. This assumes the COD fee is charged per shipment; if your courier charges it only on delivered parcels, use =D2*I2+E2*J2+F2*K2 instead.
- Cost per delivered order (column N): =IF(E2=0,"",O2/E2).
- Pending parcels check (helper column P): =D2-E2-F2. If this is not zero, some parcels have not settled yet and the row is not final.
- Lost rate (helper column Q): =IF(D2=0,"",M2/D2).
Then make a second tab called Summary with a pivot table: rows = City, columns = Courier, values = average of Delivery rate and average of Cost per delivered order. Add conditional formatting so the best courier in each city shows in green. That pivot is the page you look at before deciding where to send next month's parcels.
One rule matters more than the formulas: do not fill a month until it has settled. The OrderNation study found that a failed COD delivery takes a median of 21.7 days to show up in the seller's books. If you score couriers on last week's parcels, the returns have not come back yet and every courier will look better than it is. Score the month that ended at least three to four weeks ago.
Example: a cheaper courier that costs you more
Example (illustrative numbers, not real courier rates or store data). You send 100 parcels a month to one city with each of two couriers. Each order sells for Rs 3,000 and you spend about Rs 600 in ads for every order that ships.
| Line | Courier X | Courier Y |
|---|---|---|
| Parcels shipped | 100 | 100 |
| Delivered | 86 | 78 |
| Returned | 14 | 22 |
| Forward charge + COD fee per parcel | Rs 230 + Rs 120 | Rs 200 + Rs 100 |
| Return charge per parcel | Rs 230 | Rs 200 |
| Courier cost (100 x forward and COD fee, plus returns) | Rs 38,220 | Rs 34,400 |
| Courier cost per delivered order | Rs 444 | Rs 441 |
| Ad spend on 100 shipped orders | Rs 60,000 | Rs 60,000 |
| Courier cost plus ads per delivered order | Rs 1,142 | Rs 1,210 |
Courier Y is about 14% cheaper per parcel, and on courier cost alone it looks equal. But it delivers 8 fewer parcels. Each of those 8 orders already cost you ad money, so once ads are counted, every paying customer through Courier Y costs Rs 68 more. On 1,000 parcels a month that is the difference between a good month and an average one.
The reverse also happens. In a city where both couriers deliver at the same rate, the cheaper one is simply cheaper and you should use it. That is exactly why the scorecard is per city, not per courier.
Payment days: the column most sellers forget
For a COD seller, cash that is sitting with the courier is cash you cannot spend on stock or ads. Published settlement times vary a lot. An April 2026 comparison of courier rates lists these indicative ranges:
| Courier | Indicative COD settlement | Indicative COD fee |
|---|---|---|
| TCS | 7 to 14 working days (retail accounts) | Rs 125 to 200 for orders under Rs 10,000 |
| Leopards | 7 to 10 working days | Rs 100 to 150 per shipment (standard retail) |
| M&P | 7 to 14 working days (standard) | Rs 440 up to 4 kg city to city, plus Rs 110 per extra kg |
| PostEx | Upfront or same day | No public rate card, pricing negotiated |
These are ranges from one public comparison, not quotes, and volume accounts often get better terms, so fill the Payment days column from your own bank statements. TechCrunch reported in 2024 that most couriers take 10 to 15 days to settle COD transactions, and that over 80% of PostEx's merchants had signed up for its upfront payments together with logistics.
Example (illustrative): if you deliver Rs 30,000 of COD orders every day and your courier pays about 10 working days later, roughly Rs 300,000 of your money is sitting with the courier at any moment. Faster settlement does not change your margin per order, but it changes how much stock and ad budget you can run without borrowing. Score it as a separate column, so you do not confuse a fast-paying courier with a high-delivering one.
How to use the scorecard to split your parcels
- Run at least two couriers in your top cities for one full month. You cannot compare a courier you never use.
- Wait for enough parcels. In the OrderNation study, a Gilgit comparison with 161 parcels across both couriers was not enough to call a winner, while the significant city gaps had roughly 100 or more settled parcels per courier. Under about 100 parcels per courier per city, treat differences as a hint, not a verdict.
- Compare delivery rate first, then cost per delivered order including ads, then payment days. A courier that delivers 5 points more usually beats one that is Rs 20 cheaper.
- Set a default courier per city or zone in your booking routine, and note it on the Summary tab so whoever books parcels follows it.
- Re-score every month. Courier performance moves with staff, routes, weather and road closures, so last quarter's winner is not guaranteed.
- Keep lost and damaged parcels in the sheet even if the claim was paid. A courier that loses parcels often costs you customers, not just claim paperwork.
If you ship with Leopards, PostEx, DEX, Daewoo or Avix, RabbitROI updates courier tracking automatically and shows return (RTO) rates by courier, city and product, which fills most of the Delivered and Returned columns for you.
Monthly courier review checklist
- Export last-but-one month's bookings from each courier portal.
- Match every parcel to a final status: delivered and paid, returned, lost, or still pending.
- Fill one row per courier per city and check the Pending column is zero.
- Check the Payment days column against your bank statement, not the courier's promise.
- Look at the Summary pivot: any city where one courier is more than 5 points better on delivery rate?
- Move that city's default courier, and write the change and the date in a notes column.
- Ask your account manager for a rate review if your volume has grown; the April 2026 comparison mentions 10 to 20% below retail at 200 or more parcels a month.
FAQ
Which is the best courier for COD in Pakistan?
There is no single answer for every city. In a 2026 study of one large retailer, two couriers performed about the same in most cities, but in 7 of 50 cities one was 7.5 to 20.5 points better on delivery success, and the winner changed by city. Compare couriers on your own parcels, per city.
How long do couriers take to pay COD money in Pakistan?
An April 2026 rate comparison lists indicative settlement of 7 to 14 working days for TCS and M&P retail accounts, 7 to 10 working days for Leopards, and upfront or same-day for PostEx. Your contract may differ, so check your bank statements.
How many parcels do I need before comparing two couriers?
Aim for about 100 settled parcels per courier per city. In the 2026 OrderNation study, a comparison with 161 parcels across both couriers was not enough to show a real difference.
When should I calculate my courier delivery rate?
Only after the month has settled. In the same study a failed COD delivery took a median of 21.7 days to appear in the seller's books, so score a month three to four weeks after it ends.
Should I always pick the cheapest courier?
No. A courier that is cheaper per parcel but delivers fewer orders can cost more per paying customer once ad spend on returned orders is counted. Compare cost per delivered order, including ads.
Comments
No comments yet. Start the conversation.