Carrier invoices arrive with thousands of lines, applied surcharges and re-rated weights, at a volume that makes line-level checking impossible by hand.
Freight invoices are among the few large recurring costs that most businesses pay without checking, for an understandable reason: the invoice has more lines than anyone can read, each line is individually small, and the contract that governs the charges is complicated enough that “correct” is not obvious by inspection.
The process
Consignments are booked, collected, moved and delivered. The carrier rates each one against a contracted tariff — a base rate by service and zone, adjusted for weight, plus surcharges that depend on the shipment and on conditions at the time of carriage. Invoices arrive periodically, typically as a file with one or more lines per consignment.
The shipper holds its own record of what it shipped. That record is the basis for checking, and it is usually never used for it.
Where it breaks
Dimensional re-rating. Carriers charge on the greater of actual and volumetric weight. Where the dimensions recorded at booking differ from those measured in the network, the consignment is re-rated upward. Some of these are legitimate; some result from measurement variance on the same carton shipped hundreds of times. Without recomputation there is no way to tell which.
Surcharges applied where the condition did not hold. Residential delivery, remote area, extended address correction, fuel adjustments — each is applied per consignment against a condition. A surcharge applied to a delivery that went to a commercial address is a straightforward billing error and is invisible at the level of a total.
The same consignment invoiced twice. Under a different consignment reference, or on two periods, or once under an original booking and again under a re-booking after a failed collection. It looks like two shipments because it is recorded as two.
Credits that never arrive. Service failures that carry a refund entitlement are usually claimed by the shipper, not offered by the carrier, and the window to claim is limited. A claim not made is indistinguishable from one not owed.
Accessorials for cancelled work. A collection booked and cancelled, or an attempted delivery on a consignment already returned, can generate charges against work that produced no movement.
How we would build it
Recompute rather than compare. The check is not “does the invoice match last month” but “given this consignment, what should it have cost”. Each invoice line is re-rated independently from the contracted tariff and the shipper’s own record of the shipment, and the recomputed figure is compared against the charge.
This requires the tariff to be encoded — the single largest piece of work in the project, and the one that pays for itself repeatedly, because the same encoding then supports quoting, cost allocation and carrier comparison.
Match on the shipment, not the reference. Consignment references are the carrier’s, and the duplicate cases are precisely those where the reference differs. Matching on the tuple of collection date, destination, weight band and service catches re-bookings that a reference match cannot.
Treat each surcharge as a testable assertion. For every surcharge type, record what condition would justify it and evaluate that condition against the shipment record. Where the shipper’s data cannot establish it either way, say so — an untestable surcharge is a different finding from an unjustified one, and conflating them destroys the credibility of the whole report.
Track claim windows. Service failures are identified from delivery scan data and surfaced with the date the claim window closes, so entitlements expire because they were declined rather than because they were missed.
What the system proves about itself
The output is a per-invoice reconciliation with four categories: agreed, overcharged, undercharged, and untestable. Undercharged is included deliberately — an audit that only reports findings in the shipper’s favour is a negotiating document, not a control, and carriers respond accordingly.
Every disputed line carries the recomputed figure, the tariff clause it was computed from, and the shipment record it was matched to. That is what makes a query answerable in one message rather than a fortnight of correspondence, and it is the difference between a report that recovers money and one that generates work.
Aggregate figures — recompute agreement rate, surcharge incidence by type, re-rate frequency by carton — are worth as much as the exceptions, because they show whether a pattern is a billing fault to dispute or a packaging fact to fix.