The carrier invoice nobody reads line by line
The main carrier invoice arrives as a PDF and a CSV with thousands of lines. Most of them are what you expected. Scattered through are the extras: a surcharge because a parcel measured longer than declared, a weight adjustment, a charge for a Highlands postcode, a returned-to-sender fee, an address correction.
Someone in finance checks the total against last month, pays it, and moves on. Nobody has time to match six hundred surcharge lines to clients and orders. The clients were charged a flat rate per parcel when the label was printed, so the extras come out of your margin.
Why surcharges stay with the warehouse
The surcharge arrives long after the order was billed to the client, it refers to a tracking number rather than a client, and the carrier's reason codes are cryptic. Linking it back takes a lookup in the WMS for each line. Some carriers also bill in a different layout per service, and your own network may use three or four carriers.
| Surcharge type | Usual root cause in a 3PL |
|---|---|
| Oversize or non-standard parcel | Product dimensions missing or wrong in the WMS, wrong box chosen |
| Weight correction | Weight defaulted rather than taken from product data |
| Remote or offshore postcode | Client charged a flat rate for the UK |
| Address correction or failed delivery | Address not validated at order intake |
| Return to sender | Undeliverable parcels with no process to recharge |
The root cause is usually upstream: product data or a flat rate card. The invoice is just where the problem finally shows its cost.
What absorbing them costs
Margin, month after month, on the part of the business where margins are thinnest. It also hides client-specific problems. A client with bulky products and poor dimension data may be losing you money on shipping without anyone knowing, while their monthly invoice looks healthy.
The matching we build
- Invoice intake: each carrier's invoice file is read in its own layout, whether it comes as CSV, a portal download or an API.
- Line matching: tracking numbers are matched to shipments in your WMS, which gives the client, the order and what was declared.
- Comparison: what the carrier charged against what you charged the client for that shipment, per your rate card.
- Recharge lines: surcharges that the client's contract allows you to pass on are prepared as charges for their next invoice, with the carrier's reason and the order reference.
- Root-cause flags: SKUs repeatedly triggering size or weight adjustments, postcodes that are consistently surcharged, addresses that fail.
- A monthly view per client and per carrier of expected against actual shipping cost.
Which surcharges you pass on is your commercial decision and depends on your contracts. The build makes that decision possible line by line, rather than impossible.
After the carrier invoice is matched
Finance can pay the carrier knowing what each line relates to, and recover what the contracts allow. Operations gets a list of SKUs whose data needs fixing, which stops the same surcharge recurring. Sales can see which clients cost more to ship than their rates assume before the next price review.
Signs this is happening to you
- Carrier invoices are checked by total, not by line.
- Clients pay a flat shipping rate set when the label prints.
- You do not know which client caused last month's surcharges.
- Product weights and dimensions are often default values.
- Returns-to-sender fees are rarely passed on.