Carrier invoices contain quiet money: duplicate surcharges, wrong weights, and accessorials for services never used. This guide shows how to audit them as part of the landed cost workflow, where the shipment data already lives, instead of as a separate annual project.
Nobody steals the money dramatically. A fuel surcharge applied at last month's higher rate, a residential fee on a warehouse delivery, a weight rounded up into the next band, a duplicate line for a service included in the base rate. Each is small, deniable, and repeated across hundreds of invoices until it is real money.
Annual audit projects recover some of it, minus the share outside the claim window, and the errors resume the week after. Auditing inside the workflow, invoice by invoice, stops the repetition, which is worth more than the recovery.
The landed cost file already holds the shipment's quoted rate, its packed weight and dimensions, and its destination type. Matching the invoice against those three catches the standard error set without new data collection: rate, weight band, surcharge basis, and accessorial validity.
Set a tolerance for trivial differences so staff are not disputing pennies, and auto approve inside it. Everything above tolerance goes to an exception list with the evidence attached: the invoice line, the rate card line, and the shipment record. A carrier dispute backed by its own documents settles quickly.
Charges for waiting time, redelivery, liftgate, and storage are legitimate when the event happened and fiction when it did not. The delivery record, driver notes, and warehouse booking log decide which. Requiring that match before payment turns accessorials from an honour system into a verified cost.
Feed confirmed accessorials back into landed cost by lane and customer type. A lane that regularly incurs waiting charges at one delivery point has a scheduling problem wearing a freight costume, and the audit data proves it better than an argument with the carrier does.
Repeated exceptions on the same charge usually mean the rate card in your system is stale, not that the carrier is inventing fees. Keep the card updated at every renegotiation and surcharge notice, and version it, so an audit compares against the terms actually in force on the ship date.
Report audit results monthly in one line: invoiced, matched, disputed, recovered. When the disputed share falls and stays down, the workflow is working, and the landed costs downstream of it, pricing, quoting, and margin reporting, are standing on cleaner numbers.
Share results with the carrier at the regular review, with the exception data attached. Carriers fix billing patterns faster when a customer shows a clean, specific error rate than when they receive a general complaint about invoices feeling high. The tone that works is arithmetic, not accusation: here are forty invoices, here are the six exception types, here is the rate. Most billing teams would rather correct a system setting than defend it line by line every month, so give them the pattern and let them.
Keep reading: Landed cost dashboards: the five views finance actually opens, Quote versus actual freight variance: a monthly review that keeps landed cost honest, and Landed cost exception alerts: the handful of warnings an operations team will actually act on cover the nearby cases in this series.
Small repeated ones: surcharges at outdated rates, wrong weight bands, residential fees on commercial addresses, duplicate lines, and accessorial charges for events that never happened. Individually minor, they compound across volume.
Because the workflow already holds the quote, the shipment weight and dimensions, and the delivery record needed for a three way match. Auditing per invoice also catches errors inside the dispute window and stops them repeating.
Match them against the delivery record before paying: driver notes and booking logs confirm whether waiting, redelivery, or storage actually occurred. Confirmed patterns should feed back into lane cost analysis.
Set a small auto approve threshold so staff time goes to real exceptions. Repeated exceptions on one charge usually signal a stale rate card, which should be updated and versioned rather than disputed forever.