Free guide

Where Your Money Goes

The Pakistani seller's guide to COD reconciliation, returns, and choosing couriers


You ship a thousand parcels a month. Some get delivered. Some come back. Somewhere in between, a courier collects cash on your behalf, holds it for two to three weeks, deducts a set of fees, and sends you a lump sum.

Most sellers accept that lump sum without checking it. Not because they are careless, but because checking it properly means matching a thousand tracking numbers by hand, and nobody has three hours a month for that.

This guide shows you how to check it anyway. It also covers the two decisions that cost you more money than anything else: how many of your parcels come back, and which courier you hand them to.

Everything here can be done manually, in Excel, with no software. That is deliberate. Follow it and you will find money you did not know you were owed, and make courier decisions based on your own numbers instead of guesswork.

I run an e-commerce brand in Pakistan. Everything in this guide is what I do for my own business.

Azeem Amin


How to use this guide

Part 1 is about money. How to check what your courier actually owes you, what every deduction on your bill means, and how to spot the parcels that quietly never got paid for.

Part 2 is about returns. What RTO really costs you, what causes it, and the levers that reduce it, ranked by impact.

Part 3 is about couriers. How to measure them honestly, how to run a fair comparison, and why the cheapest rate is often the most expensive courier.

Part 4 is a one-page monthly routine. If you read nothing else, read this.

Read it in order the first time. After that, Part 4 is the only page you need open.


PART 1 — YOUR MONEY

The most expensive misunderstanding in Pakistani e-commerce

Delivered does not mean paid.

Your courier app says "Delivered". In your head, the money has arrived. But delivery and payment are two separate events, run by two separate systems, usually two to three weeks apart.

Between those two events, parcels fall through the gap. A parcel gets delivered. The rider collects the cash. And for whatever reason — a data entry error, a status that never synced, a settlement run that missed a batch — that parcel never appears on any payment sheet you receive.

Nobody notices, because nobody is counting.

This is not usually theft. Couriers in Pakistan are moving hundreds of thousands of parcels through systems that were not built for this volume. Things get lost. But the money is yours, and the only person who will ever notice it is missing is you.

In our data, 2 to 4 percent of delivered parcels have no corresponding payment entry in the month they were delivered. Some of that resolves the following month. Some of it never does.

On a thousand parcels a month averaging PKR 2,500, two percent is PKR 50,000. Every month.

The three numbers you should know every month

Most sellers can tell you one number: how much money the courier sent them. That is not enough. You need three.

1. Shipped. How many parcels you handed over, and their total COD value. You know this one.

2. Delivered. How many of those were actually delivered, and their total COD value. Your courier portal can tell you this.

3. Received. How much money actually landed in your account for those parcels, after deductions.

The relationship between the second and third number is where your business lives. If you only track the third, you have no way of knowing whether it is correct.

What your courier actually deducts

A PKR 1,000 COD parcel does not put PKR 1,000 in your account. Here is the full stack of what comes off, in the order it is usually applied.

Delivery fee. The headline rate you negotiated. Usually somewhere between PKR 100 and PKR 250 per parcel depending on weight, destination and your volume. This is the number every seller knows.

GST on the delivery fee. Sales tax charged on the service, not on your product. It is a percentage of the delivery fee, not of your COD amount, so it is smaller than people expect. On a PKR 150 delivery fee it is a modest amount — but it is charged on every single parcel.

Withholding tax — income tax. Charged at 2 percent, and deducted on the COD amount rather than the delivery fee — which makes it one of the largest single lines on your bill. It is a genuine tax withheld on your behalf and deposited with the FBR against your NTN, meaning it is adjustable against your annual tax liability. Most sellers never claim it, which means they effectively pay it twice.

Withholding tax — sales tax. A second withholding line, also 2 percent, also charged on the COD amount.

Together these two lines take 4 percent of every rupee your customers hand over. On a million rupees of monthly COD, that is PKR 40,000 — and a meaningful share of it is money you can claim back at filing time if your accountant knows to look for it.

Cash handling fee. Not every courier charges this. Those that do usually take a percentage of the COD collected — for handling physical cash. Where it exists, it is often the single largest deduction after the delivery fee.

Return shipping. When a parcel comes back, you usually pay to send it out and to bring it back. The return leg is charged separately, and it appears on your settlement as a negative line or a separate deduction. Many sellers do not realise they are paying twice on every RTO.

Fuel surcharge, insurance, flyer charges, bank charges. Smaller lines that vary by courier. Individually trivial. Collectively, on a thousand parcels, not trivial at all.

The point of this section

None of these deductions are wrong. They are legitimate, disclosed, and part of the cost of doing business.

The problem is that most sellers do not know which of them they are being charged, at what rate. And if you do not know what should be deducted, you cannot possibly notice when something is deducted that should not be.

Ask your courier for a written breakdown of every line item and its rate. They will give it to you. Keep it. It becomes the reference you check every settlement against.

How to check your courier — the manual method

This takes about 40 minutes the first time and 20 minutes a month after that. You need Excel or Google Sheets.

Step 1 — Get your delivered list

Log into your courier portal. Export every parcel with a status of Delivered for the month you are checking. You want at minimum: tracking number, delivery date, COD amount.

Save it as a sheet called Delivered.

Step 2 — Get your payment sheets

For every payment the courier sent you that month, there is a corresponding settlement sheet — usually called a CPR, a payment advice, or a remittance report. Download all of them.

Put every row from every sheet into a single sheet called Paid. You want: tracking number, and the net amount paid for that parcel.

If you received four payments that month, all four sheets go into this one tab, stacked.

Step 3 — Clean the tracking numbers

This step matters more than it sounds. Excel does horrible things to tracking numbers — strips leading zeros, converts long numbers to scientific notation, adds invisible spaces.

In both sheets, create a clean column:

=UPPER(TRIM(SUBSTITUTE(SUBSTITUTE(A2," ",""),"-","")))

This strips spaces and dashes and forces uppercase, so both sides match reliably.

Step 4 — Match them

In your Delivered sheet, add a column called Paid? and use:

=IF(COUNTIF(Paid!$D:$D, D2)>0, "PAID", "NOT FOUND")

Where column D is the cleaned tracking number in each sheet.

Step 5 — Read the result

Filter your Delivered sheet to NOT FOUND.

Every row in that filter is a parcel that was delivered, whose cash was collected from your customer, and which does not appear on any payment sheet you received.

Sum the COD column for those rows. That number is what you are owed.

Step 6 — Check the other direction

Now do the reverse. Look for parcels on your payment sheet that appear with a positive payment but whose status was a return or cancellation.

This is a real and common error. Returned parcels sometimes appear on settlement sheets with their original COD value populated, even though the customer never paid anything. If a courier credits you for a return and later reverses it, your books swing twice.

Filter your Paid sheet for anything with a status containing return, RTO, cancelled, or refused. Any of those with a positive net amount deserves a question.

What is normal and what is not

Normal:

  • A parcel delivered in the last few days of the month appearing on next month's payment. Settlement runs on a cycle; timing gaps are expected.
  • Small rounding differences of a few rupees across a full sheet.
  • A payment total that does not match your expected total, once you have accounted for every deduction line.

Worth a question:

  • Parcels delivered more than 30 days ago with still no payment entry
  • The same tracking number appearing on two different payment sheets
  • A deduction line you have never seen before, or a rate different from the one you agreed
  • Returned parcels credited as if delivered
  • A settlement total that does not reconcile with the sum of its own line items

Worth escalating hard:

  • More than 3 percent of a month's delivered parcels missing from all payment sheets
  • The same parcels missing for two consecutive months
  • A courier unable to explain a deduction line when asked in writing

How to raise a discrepancy

Do not phone. Write, and make it easy to say yes to.

Send your account manager an email with:

  1. A one-line summary: "38 parcels delivered in June do not appear on any payment sheet. Total COD PKR 94,200."
  2. The list, as a spreadsheet, with tracking numbers and delivery dates
  3. Which settlement sheets you checked, by reference number
  4. A specific ask: "Please confirm the status of these and advise when they will be settled."

Two things make this work. First, you have done the work for them, so investigating is cheap. Second, you have demonstrated that you are counting — and a seller who counts gets treated differently from one who does not.

Keep every reply. Patterns across months are what turn a discrepancy into a negotiation.


PART 2 — YOUR RETURNS

What an RTO actually costs you

Ask a seller what a return costs and they will usually say "the sale". That is the smallest part of it.

A returned parcel costs you:

  • Forward shipping — you paid to send it
  • Return shipping — you pay again to get it back
  • Packaging — the flyer, the box, the tape, gone
  • Handling — someone picked, packed, and will now unpack and restock it
  • Inventory time — that unit was unavailable for one to three weeks
  • Damaged returns — a share come back unsellable
  • Cash flow — you funded all of the above and got nothing

Work out your own number:

RTO cost = forward shipping + return shipping + packaging
         + handling time + (damage rate x product cost)

For most Pakistani sellers this lands somewhere between PKR 250 and PKR 500 per returned parcel, before counting the lost margin.

At 15 percent RTO on a thousand parcels, that is 150 returns, or PKR 37,500 to PKR 75,000 a month in pure cost. Not lost revenue — cost. Money that left your account.

Every percentage point of RTO you remove is money straight to your bottom line. A drop from 18 percent to 14 percent on a thousand parcels saves you roughly PKR 10,000 to PKR 20,000 every month, forever.

Where you stand

Most sellers have no idea whether their RTO rate is good or bad, because there is nothing public to compare against.

Rough bands for Pakistani COD e-commerce:

RTO rateReading
Under 10%Excellent. Usually strong confirmation process or high prepaid mix.
10 - 20%Normal. Where most healthy COD businesses sit.
20 - 35%High. Fixable, and worth serious attention.
Over 35%Alarming. Something structural is wrong.

Measure it correctly

Most sellers measure RTO wrong, and it makes their numbers look better than they are.

The wrong way: returns received this month divided by parcels shipped this month.

That compares two different groups. The returns arriving in June belong to parcels shipped in May — a return takes one to three weeks to come back. In a growing business this always understates your real rate.

The right way: take the parcels you shipped in a given month, then check how many of those specific parcels eventually came back. Wait at least 30 days before judging a month.

The number will be higher than you thought. That is the point.

The levers, ranked

Lever 1 — Confirm the order before you ship it

This is the single biggest lever, and it is not close.

A meaningful share of COD orders are placed by people who were not serious, entered wrong details, changed their mind within a day, or ordered by accident. Shipping to them costs you a full RTO. Catching them before dispatch costs you a WhatsApp message.

How to do it well:

  • WhatsApp beats calling. Higher response rate, cheaper, and it leaves a written record. Call only when there is no reply.
  • Confirm within 2 hours of the order. Intent decays fast. A confirmation sent the next morning gets far fewer replies than one sent while they are still on their phone.
  • Ask for a simple confirmation. "Aap ka order confirm hai? Reply YES." Do not send a paragraph. Do not ask them to do anything complicated.
  • Restate the address and the amount. This catches wrong addresses before the parcel moves, which is a second saving on top.
  • Set a rule for no-replies. Two attempts over 24 hours, then decide. Do not let unconfirmed orders sit for a week.

What to do with no-replies depends on your margin. High margin: ship anyway, the upside covers the RTO risk. Thin margin, high-risk city, first-time customer, large order: hold it.

Do not blanket-cancel every unconfirmed order. Many people simply do not reply to messages and would still have accepted the parcel.

Lever 2 — Know your repeat offenders

A small number of customers generate a disproportionate share of your returns. The same phone number orders, refuses, orders again a month later, refuses again.

Without a record, your team ships to them every time.

The minimum version: keep a sheet of phone numbers with two or more returns and no successful deliveries. Check new orders against it before dispatch. Even a manual list of fifty numbers will save you real money.

Normalise the numbers before comparing, or you will miss matches. 0300-1234567, +92 300 1234567 and 03001234567 are the same person. Strip everything to digits and compare the last ten.

What to do with a flagged customer: do not blacklist outright — some are genuine and had a bad experience. Require confirmation before dispatch, or offer prepaid only. Let them prove themselves.

Lever 3 — Decide city by city

RTO is not evenly spread. Some cities run double the rate of others, consistently, and the pattern is stable enough to act on.

Build the table: for each city, how many shipped, how many delivered, how many returned. Sort by RTO rate. Ignore any city with fewer than 30 parcels — the sample is too small to mean anything.

Then act on the outliers. For your worst cities:

  • Require confirmation before dispatch, always
  • Try a different courier — coverage varies enormously outside the major cities
  • Consider prepaid only above a certain order value
  • For extreme cases, stop offering COD there entirely

Most sellers resist that last one because it feels like turning away business. Run the numbers first. A city with 45 percent RTO is not business — it is a subsidy you are paying to the courier industry.

Lever 4 — Look at your products

Some products come back more than others, and the reasons are usually fixable.

The common causes: the product looks different from the photos, the size or fit is wrong, the price is high enough to trigger second thoughts at the door, or the item is easy to find cheaper elsewhere.

Build the same table by product. For anything well above your average: check the photos, check the description, check whether the variant options are clear, and check whether the delivery time is long enough for the customer to lose interest or find it cheaper.

Order value is the pattern to watch most. RTO rises with the size of the order. The moment of truth is a customer standing at their door being asked for cash. The bigger that number, the more likely they say no.

If your high-value orders return disproportionately, take partial payment upfront on those. Even a small advance changes the psychology completely — a customer who has paid something will accept the parcel.

Lever 5 — Move people to prepaid

A prepaid order has effectively zero RTO risk. Every point of your order mix you shift from COD to prepaid removes that risk entirely.

Pakistani customers default to COD out of habit and mistrust, but they will switch for a reason:

  • A discount for paying online, sized just above your RTO cost per parcel. If a return costs you PKR 400, a PKR 150 prepaid discount is profitable even if it only converts some of the time.
  • Free delivery on prepaid, delivery charged on COD
  • Faster dispatch for prepaid orders, and say so
  • Make the payment options obvious and easy at checkout

Track your prepaid share monthly. It is one of the few metrics where moving the number a few points is worth more than most operational improvements you could make.

Lever 6 — Use the right courier for the route

Covered fully in Part 3, but it belongs here too: courier performance varies enormously by city. The same parcel to the same customer can have meaningfully different odds depending on who carries it.

What not to do

Do not stop offering COD entirely. It is 80 to 90 percent of the market in Pakistan. You will lose more in orders than you save in returns.

Do not blame the courier for everything. Some RTO is delivery failure. Most is order quality — customers who were never going to accept the parcel. The courier cannot fix that. Your confirmation process can.

Do not react to one bad month. RTO moves with season, product mix and campaign type. Look at three months before changing anything structural.


PART 3 — YOUR COURIERS

The metric that matters

Ask a seller how they chose their courier and you will usually hear one of two answers: the rate, or the delivery speed.

Both are the wrong primary metric.

What matters is delivery rate — the share of parcels that successfully reach the customer and generate cash. A courier that delivers 92 percent of your parcels at PKR 180 is dramatically better than one delivering 82 percent at PKR 150, and the arithmetic is not close.

Speed is mostly vanity. The difference between two-day and three-day delivery matters far less in Pakistan than whether the parcel arrives at all. Speed matters at the extremes — a parcel taking eight days will get refused because the customer lost interest — but between two and four days, delivery rate dominates.

Cost per delivered parcel

This is the single most useful number in this guide, and almost nobody calculates it.

Do not compare couriers on their per-parcel rate. Compare them on what it costs you to get one parcel successfully delivered, including the cost of the ones that failed.

Cost per delivered parcel =
  (total shipping cost + total return cost) / number delivered

Worked example on 1,000 parcels:

Courier A — PKR 150 per parcel, 85% delivery rate

  • Forward: 1,000 x 150 = PKR 150,000
  • Returns: 150 x 150 = PKR 22,500
  • Delivered: 850
  • Cost per delivered parcel: PKR 203

Courier B — PKR 180 per parcel, 93% delivery rate

  • Forward: 1,000 x 180 = PKR 180,000
  • Returns: 70 x 180 = PKR 12,600
  • Delivered: 930
  • Cost per delivered parcel: PKR 207

Nearly identical — despite B looking 20 percent more expensive on the headline rate.

Now add the RTO handling cost from Part 2, at PKR 300 per return:

  • Courier A: 150 returns x 300 = PKR 45,000 additional
  • Courier B: 70 returns x 300 = PKR 21,000 additional

Courier B is PKR 24,000 a month cheaper, while quoting a 20 percent higher rate.

This is why the cheapest courier is often the most expensive one, and why the seller who negotiates hardest on rate frequently ends up worse off.

How to compare couriers honestly

Most courier comparisons are worthless because the comparison was not fair. One courier got the easy cities, or a different month, or the campaign traffic.

A fair test:

  1. Same period. Run both couriers over the same weeks. Seasonality is real.
  2. Same cities. Do not give one courier Lahore and Karachi and the other interior Sindh.
  3. Random allocation. Split by order number, odd and even. Not by anything correlated with order value or destination.
  4. Enough volume. At least 100 parcels per courier, ideally 200. Below that you are measuring noise.
  5. Wait 30 days before reading the result. Returns arrive late. Judging at day 10 will make both couriers look better than they are.
  6. Measure by cohort. Of the parcels given to that courier in that window, how many were eventually delivered.

Then compare on: delivery rate, cost per delivered parcel, average delivery days, and settlement speed.

Do it per city, not per courier

The most valuable conclusion is not "Courier A is better than Courier B". It is:

"Courier A for Lahore and Karachi. Courier B for Multan and Faisalabad. Courier C for everything in the south."

No courier is best everywhere. They have different hub networks, different last-mile partners, and different rider density. A courier that is excellent in Punjab can be poor in interior Sindh, and the gap is often ten to twenty points of delivery rate.

Build the table — courier by city, delivery rate, minimum 30 parcels per cell — and route accordingly. This single exercise is usually worth more than any rate negotiation you will ever have.

Settlement speed is part of the price

A courier holding your cash for 21 days instead of 7 is holding two extra weeks of your working capital.

On a million rupees a month of COD, two extra weeks is roughly PKR 500,000 of your money sitting in someone else's account permanently. For a growing business, that is often the difference between being able to buy inventory and not.

Ask before you sign: how often do you settle, and what is the gap between delivery and payment? Then verify it against reality for three months, because the answer you get and the behaviour you observe are frequently different.

What to negotiate beyond the rate

Sellers spend all their leverage on the headline delivery rate and give away everything else.

Return shipping. Often the same as forward shipping, sometimes more. It is negotiable, and at a 15 percent RTO rate it is a meaningful line.

Settlement frequency. Weekly instead of fortnightly costs the courier little and improves your cash position materially. This is usually the easiest thing to win.

Cash handling percentage. Where charged, it is a percentage of COD, which makes it one of your largest lines. Always ask.

Fuel surcharge. Frequently applied by default and rarely questioned.

A named account manager. Not a fee, but the most valuable thing on this list. Having someone who answers you within the day is worth more than PKR 5 per parcel when 40 parcels go missing.

Red flags in a courier relationship

  • Payment sheets that do not itemise per parcel. Without tracking numbers, you cannot reconcile anything, and you are trusting them completely.
  • Settlement dates that keep slipping
  • Tracking statuses that update in batches days late, or jump from "in transit" straight to "returned"
  • No written rate card
  • Missing parcels that stay unresolved for more than two weeks
  • An account manager who changes every quarter

Any one of these is survivable. Three at once means you should be actively testing an alternative.

Do not put everything with one courier

Even if one courier is clearly best today, keep at least a second one live with real volume — 20 to 30 percent.

Three reasons: you keep a live comparison running so performance decay is visible, you keep negotiating leverage, and when your primary courier has a bad week or a network problem, you are not stopped.

That last one is not hypothetical. Couriers in Pakistan have outages, disputes, and in some cases have shut down entirely. A seller with one courier and no alternative is a seller who stops shipping.


PART 4 — THE MONTHLY ROUTINE

One page. This is the part to keep open.

On the 1st of every month

Reconcile last month's money

  • Export delivered parcels for last month from every courier portal
  • Collect every settlement sheet received last month
  • Match tracking numbers, list anything delivered but not paid
  • Check for returns credited as delivered
  • Email any discrepancy over PKR 5,000 to your account manager, in writing
  • Record the month's total: shipped / delivered / received

Check your returns

  • Calculate last month's RTO rate by cohort, not by event
  • Update the RTO-by-city table
  • Update the RTO-by-product table
  • Update the repeat-offender phone list
  • Pick one city or one product to fix this month

Check your couriers

  • Delivery rate per courier for last month
  • Cost per delivered parcel per courier
  • Average settlement gap in days
  • Move volume if a courier has dropped for two consecutive months

Every week

  • Confirmation rate: what share of COD orders got confirmed before dispatch
  • Any parcel with no tracking update for 3+ days — chase it
  • Any settlement expected this week that did not arrive

Track these six numbers every month

MetricWhy it matters
Shipped (count and PKR)Your baseline
Delivery rateThe single most important operational number
RTO rate by cohortYour biggest controllable cost
Received vs expectedCatches money going missing
Cost per delivered parcelThe real courier comparison
Prepaid share of ordersYour structural RTO defence

Six numbers, one row a month, one sheet. After three months you will see things you cannot see in any single month — a courier slowly degrading, a city getting worse, a settlement gap quietly stretching.

That sheet is worth more than any dashboard, because it is yours and you will actually trust it.


If this is too much work

Everything in this guide is done by hand, and it is genuinely enough. Sellers ran businesses this way long before software existed, and if you do the monthly routine above, you will be ahead of almost everyone in this market.

But it is three to four hours a month, every month, forever. And it is the first thing to get dropped when you are busy — which is exactly when the money goes missing.

I built ShipFox because I got tired of doing it by hand for my own brand. It connects your Shopify store and your couriers, reconciles every settlement automatically, tracks what each courier still owes you month by month, flags returns and risky customers before you ship, and tells you which courier performs best in which city — from your own data.

If you want to see what it finds in your numbers, book a call. It takes twenty minutes and there is nothing to buy.

shipfox.pk

And if you would rather just use this guide — do that. It is genuinely enough.


Written by Azeem Amin, founder of ShipFox. I run an e-commerce brand in Pakistan and built ShipFox because I needed it.

Found this useful? Send it to another seller. Most of them have never checked.

Written by Azeem Amin, founder of ShipFox. I run an e-commerce brand in Pakistan and built ShipFox because I needed it.

Found this useful? Send it to another seller — most of them have never checked.

Get the free PDF