Proxima
Back to blog

Finance · September 1, 2026

Courier invoice reconciliation and freight audit: getting your money back

Weight discrepancy is one line item. The full courier invoice audit — zone misclassification, COD remittance delays, duplicate AWBs, surcharge slabs — recovers 1-2% of freight spend, every single month, if someone actually does the rows.

Diagram of courier invoice reconciliation matching invoices against shipment ledgers to flag weight discrepancies, zone misclassification and COD remittance delays
Two documents, one agent, five recurring discrepancy types. Everything on the right was in your own data all along — it just never got compared line by line.

Here is a number most Indian D2C brands have never computed: the difference between what their courier invoices say and what their own shipment data says. Not the rate card difference — the line-level one. At 4,000 parcels a day and ₹60-120 of freight per parcel, a brand is billing ₹80-150 lakh a year in freight. A typical reconciliation finds 1-2% of that was charged wrong: billable weight above actual, zones classified higher than shipped, COD remitted late, the same AWB billed twice. That is ₹1-2.4 lakh a month. It recurs. And almost nobody collects it, because doing 4,000 line comparisons by hand every month is a job nobody wants.

Weight discrepancy recovery is the best-known slice of this problem. This piece is the full pie: what a monthly freight audit actually compares, where the recurring leaks are, and how to run the loop without hiring an analyst whose whole job is spreadsheet sadness.

What gets compared

The audit has two inputs: the courier’s invoice (usually a PDF or CSV of thousands of rows — AWB, weight, zone, charges, COD amount, surcharges) and your own ledger (the OMS record of the same AWBs — what you shipped, at what weight from the weighbridge or catalog data, from which pin to which pin, at what contract rate). Every row of the invoice is matched to your row for the same AWB, and every field that can differ is compared:

  • Billable weight vs actual. Volumetric calculations gone generous, rounding up to the next 500g, the classic. The known problem — the linked post covers the recovery mechanics.
  • Zone billed vs zone shipped. The most under-watched leak. Your metro-to-metro shipment billed as metro-to-tier-2; a pin reclassified by the courier’s own table update mid-month, at a higher rate, without a word to you.
  • COD remittance timing. The contract says T+2; the statement shows T+9. You funded the courier’s working capital for a week on hundreds of parcels at once, which is a real cost even though no line item says so.
  • Duplicate and orphan charges. The same AWB billed under two invoice numbers; charges for AWBs that never shipped or were cancelled pre-pickup; RTO freight charged on parcels that never moved.
  • Surcharges and slabs. Fuel, DSA, festive-peak and remote-area surcharges applied against the wrong slab or beyond their contracted end date. These slide because nobody reads the surcharge rows — they are small, numerous, and wrong just often enough to matter.

Anything outside tolerance gets flagged, evidence-packed and claimed. Most couriers have a dispute window (commonly 15-30 days) and a dispute process; the audit’s job is to hit that window every month with clean evidence, not to fight every rupee.

Why it never gets done

Not because it is hard to understand — because it is boring at scale. A human doing 4,000 rows well needs days, misses things when the invoice format changes, and quits by the third month. Teams patch it with spot checks, catch the giant duplicates, and let the systematic 1-2% ride. The couriers, to be fair, are not villains — billing engines drift, edge cases get rounded in the engine-owner’s favour, and nobody’s invoice is perfectly clean. The drift is precisely why the audit has to be every month: last month’s corrections do not hold this month’s format change.

The loop

Circular diagram of the five-step freight audit loop from invoice ingestion to recovery with a human review gate
The audit loop: ingest, normalize, match, flag, recover. The agent does the rows; a person signs the claims. Every month, without exception.

Run as a monthly loop: ingest the invoice and your ledger into one place. Normalize — one row per shipment, zones mapped to one standard, weights in one unit; invoice formats change and the normalization layer absorbs it. Match AWB to AWB and apply your contract’s rates to your own data, computing what each shipment should have cost. Flag every difference over tolerance with the evidence attached: your weight record, the pin-to-pin zone, the contracted rate line. Recover: claims drafted, reviewed by a person who knows the contract, filed inside the dispute window, tracked to credit note or payment.

The human gate matters. Auto-filing every flagged rupee burns credibility with the courier and buries the real wins in noise. A person reviews the flagged set — the patterns, not the individual rows — approves what gets claimed, and sets next month’s tolerances. The machine does the rows; you do the judgment. That division is the entire design.

What the patterns tell you

After two or three loops, the flags stop being one-off corrections and become a signal about the relationship itself. Zone drift concentrated on one lane is a rate-table conversation with that courier. Remittance that runs T+9 every month is a terms conversation, and a cash-flow one — compute the interest you gifted. A weight discrepancy rate that spikes after a catalog update means your own product weights in the OMS are stale, which is your leak, not theirs — fix the data and the flags fall. Persistent duplicates from one network hint at a billing-engine quirk worth escalating beyond the dispute form.

This is also quiet ammunition for the allocation strategy: the courier with clean invoices and clean delivery earns volume. The one with great rates and chronic drift is discounting you with one hand and collecting with the other — and now you can prove it with numbers, at renewal time.

Where automation fits, honestly

Ingestion, normalization, matching and flag-drafting are exactly the kind of work automation is for: high-volume, rules-based, error-prone when humans do it, and worthless when done sporadically. An agent that reads both documents, does the rows, drafts the claims and keeps the evidence is the difference between an audit that happens every month and an audit that happened once, in Diwali week, never again. What stays with people: the contract knowledge, the dispute judgment, the tolerance settings, and the renewal negotiation where the findings get spent. If you want the safety model, it is the same one everywhere on this blog — shadow, then approve, then run within limits.

Start smaller than you think: one month, one courier, weight and zone only. The first loop usually pays for the other eleven.

Start with one process

Bring one month of courier invoices to a free two-day review.

Request a Free Process Review