How to Reconcile a Carrier Invoice to a Rate Confirmation Without Missing Accessorials
Reconcile against three things, not two. The rate confirmation is the authority, the invoice is the claim, and the documents (signed BOL, POD with times,
NexaSphere Team
Author

Reconcile against three things, not two. The rate confirmation is the authority, the invoice is the claim, and the documents (signed BOL, POD with times, lumper receipt, gate or GPS logs) are the evidence. Compare charge line to charge line, never total to total. Then apply one rule to every accessorial: it needs authority (a line on the rate confirmation, or a written approval after the fact) and evidence (a timestamped document that proves it happened and how much). A charge with both gets paid. A charge with one gets held. A charge with neither gets short paid with a reason code.
That rule is the whole method. Everything below is how to apply it without leaking money in either direction.
Comparing totals is the trap
Two errors on the same invoice can net out to almost nothing. The carrier bills linehaul higher than the rate confirmation because a rate increase was verbally agreed and never papered, and in the same invoice forgets to bill the detention the driver actually earned at the receiver. The total lands inside your tolerance and the invoice auto-approves.
You have now done three bad things. You paid a linehaul rate you never agreed to, you set a precedent for the next hundred loads on that lane, and you never billed your customer for detention their receiver caused. The last one is the expensive one, because it is margin, not cost.
Line-level comparison is the only way to see offsetting errors. Totals hide them by design.
Normalize the words before you match anything
The same charge has a different name on every invoice. Detention shows up as waiting time, driver detention loaded, demurrage, or standby. Truck ordered not used shows up as TONU, truck order not used, dry run, or dead run. Lumper shows up as unloading, third party unload, or dock fee. Stop-off shows up as extra stop, multi-stop, or intermediate stop.
Build a mapping table from the carrier's raw string to your internal charge code, and keep the raw string on the record so you can audit the mapping later. An unmapped description is the single most common way an accessorial gets silently dropped or counted twice, and it is invisible in a report because the line just quietly never joins to anything.
Do this before you write any comparison logic. Matching is easy once both sides speak the same vocabulary, and impossible before that.
The match, in order
- Identify the load on two keys, not one. Load or pro number plus a second key such as pickup date with origin and destination ZIP. Reference numbers get reused, transposed, and typed into the wrong field. A single-key match will confidently reconcile the wrong load.
- Freeze the authority set. The rate confirmation lines, plus any written approval issued afterward (email, TMS note, portal message). Written means written. A phone approval nobody recorded is not authority, and saying so out loud once will change how your team handles the next call.
- Compare linehaul, then fuel, then each accessorial. Separately, in that order.
- Attach evidence to every accessorial. Not a checkbox. A pointer to the specific document and page.
- Classify each difference and route it. Approve, hold for evidence, short pay with a reason code, or dispute.
The accessorials that go missing, and what proves each
- Detention. Arrival and departure times on the signed BOL or POD, or gate and GPS timestamps. Check three things on the rate confirmation, not one: free time, the hourly rate, and the cap. Carriers often bill correct hours at an uncapped rate.
- Layover and TONU. Dispatch records and the cancellation or delay message, with its timestamp.
- Lumper. The receipt, plus the payment instrument fee if one was used. The fee is real and is frequently either double billed or never passed through.
- Stop-offs. Count the stops beyond the first and check whether the rate confirmation priced them at all. Loads that gain a stop after tender are a common quiet overbill.
- Reconsignment, diversion, and redelivery. The instruction that caused it, in writing, with a timestamp before the truck moved.
- Driver assist, inside delivery, liftgate, residential, limited access, after hours. These are usually knowable at tender time from the location itself. If they keep appearing as surprises, the problem is your location master data, not the carrier.
- Flatbed specifics. Tarping, extra straps or chains, oversize permits, escorts.
- Drayage specifics. Per diem, chassis rental, chassis split, demurrage, prepull, storage. These originate with different parties and arrive on different invoices at different times, so they are the easiest category to miss entirely. Reconcile a drayage move at the container level, not the invoice level.
- Reweigh, sort and segregate, pallet exchange, hazmat, team service.
Fuel surcharge deserves its own step
Fuel is where the largest silent variance usually lives, because it is arithmetic rather than an event, and arithmetic does not look suspicious.
Check the basis (percentage of linehaul, cents per mile, or flat), the mileage source and setting if it is per mile (practical versus shortest, ZIP to ZIP versus actual stops), and which index date was used. Then check the obvious one: if the rate confirmation says all in, there should be no separate fuel line at all. That single check finds more money than most people expect.
Set the tolerance deliberately
Tolerance is a business decision, not a technical default. A flat dollar tolerance across all charge types is how unagreed rate changes become permanent.
A reasonable starting posture: zero tolerance on linehaul and fuel, evidence gating on accessorials regardless of size, and a small absolute tolerance for rounding only. Then make sure every short pay carries a reason code and the document reference, because a short pay without a stated reason becomes a collection call six weeks later, and by then nobody remembers the load.
Reconcile the receivable in the same pass
While the documents are open, ask the second question about every approved accessorial: is it billable to the customer, and was it billed?
A missed accessorial on the payable side costs you the overpayment. A missed accessorial on the receivable side costs you the entire amount, because you absorbed a cost someone else caused. Detention at a slow receiver is the classic case. Teams that reconcile payables well and never close the loop on the pass-through are usually losing more on the second half than they recovered on the first.
If you are automating this
Parse invoices into structured charge lines and keep the raw description on every line. Store evidence as a pointer to the document and location, not a boolean, so a human reviewing the exception can see what the machine saw.
Use a language model for what it is good at: reading messy documents, normalizing charge descriptions to your codes, and pulling arrival and departure times out of a scanned BOL. Do not use it for the math or the final decision. Extraction goes through the model, comparison and arithmetic go through deterministic code, and low confidence extractions route to a person instead of guessing.
Then treat the exception queue as the actual product. Auto-approving clean invoices is the easy half. The value is a ranked queue that tells a human which fifteen invoices to look at today and why, with the document already on screen.
Measure three numbers: percentage auto-matched without human touch, dollars recovered split between overbilling caught and pass-through recovered, and minutes per exception. If the first number climbs while the second falls, your tolerance is too loose and you are auto-approving errors.
FAQ
The carrier billed an accessorial that clearly happened, but nobody approved it. Do I pay? Pay it if the evidence is solid and the amount is consistent with the rate confirmation's stated rates, and record it as an unapproved but valid charge. Then fix the approval path, because the recurring version of this is what actually costs money. Refusing a legitimate documented charge on process grounds damages a carrier relationship for less than the charge is worth.
Short pay or dispute? Short pay when the difference is arithmetic or clearly outside the rate confirmation, and always with a reason code and document reference. Dispute when the facts themselves are contested, such as whether the driver actually waited four hours. Silent short pays are the single fastest way to lose a good carrier.
The BOL times are handwritten and illegible. Now what? Fall back to a secondary source (GPS breadcrumbs, gate logs, the driver's check calls, or the receiver's own system) and tell the carrier which source you used. If no secondary source exists, decide once, in writing, whether illegible times default to paid or held, and apply it consistently. Inconsistency here is what carriers remember.
Does an all-in rate mean no accessorials ever? It means no accessorials for the scope described on the rate confirmation. Work outside that scope, such as an added stop or a diversion, is still billable, but it needs a written instruction before the truck moves. Make that explicit in the confirmation language rather than arguing it afterward.
How long should I keep the documents? Longer than you think, and driven by your carrier contract terms and the applicable statute of limitations for freight charges rather than by a number you picked. Confirm the specific retention period for your jurisdiction and contracts, then store documents in a way that lets you retrieve one by load number in seconds. A reconciliation you cannot evidence two years later is a reconciliation you will lose.
Early access
The gap between delivered and invoiced
We are building the weekly check described above, so delivered loads, accessorials and missing documents surface before month end rather than during it. Early access is open and we are talking to brokers about what it has to do.
Early access. No card, no launch date promised.
Related Posts
Detention and Lumper Accessorials: How to Audit a Carrier Invoice Line by Line
September 14, 2026
Guard Hours to Invoice: Turning a Weekly Timesheet Into a Client-Ready Bill Without Rekeying
September 14, 2026
The 3PL Carrier Invoice Reconciliation Spreadsheet: A Free Template and When to Outgrow It
September 14, 2026