See how Freehand recovers margin you're already losing

Map your commercial agreements to real-world execution - recovering 2-5% in lost margins and ensuring 100% audit coverage.

What to expect in the call

We identify exactly where you’re leaking margins

See how our AI Teams cross-check contracts, and resolve overcharges

Get a savings estimate based on your current spend and systems.

Trusted & Recognized by

KEARNEY
pwc
Gartner

We'll find $500,000 in 30 days

All Articles

How to Reconcile Carrier Invoices Against BOL

Learn how to reconcile carrier invoices against the BOL: which fields to check, the step-by-step process, and what to do when the two don't match up right.

Craig Edwards

Head of Solutions Consulting (US GTM Team)

13

mins

Reconciling a carrier invoice against the bill of lading means checking that the two documents describe the same shipment. Weight, piece count, origin, destination, and commodity class should match on both. When they do not, the invoice is billing for something the BOL never confirmed.

Key Takeaways

  • Invoice-to-BOL reconciliation is a field-by-field check. Weight, piece count, origin, destination, and rate class on the invoice must match the signed BOL.
  • Four documents have to agree: the invoice, the BOL, the proof of delivery, and the rate deal. Most disputes trace back to just one of the four telling a different story.
  • The biggest gaps are quantity mismatches, reweighs, and the wrong commodity class.
  • A mismatch is not proof of fraud. It is just a flag. It holds payment until someone sorts out which document is right.
  • Freehand runs this match on every invoice, on its own. A global FMCG leader went from a 50% manual review rate to a 93% first-time match, across 350,000-plus invoices a year.

What does it mean to reconcile a carrier invoice against the BOL?

It means confirming that the invoice and the bill of lading describe the same shipment, at the same weight, count, and class. The BOL is the record of what actually moved. The invoice is the bill for it. They should always agree.

The two documents come from different steps in the shipment's life. The BOL gets created and signed at pickup. The invoice gets generated afterward, sometimes days later, sometimes after a reweigh or a reclass. That gap in time is where most disagreements start.

Two more documents sit alongside the BOL and the invoice. The proof of delivery confirms what actually happened at drop-off, timestamps and all. The rate agreement or contract sets the price the invoice should reflect. When any one of these four tells a different story, the discrepancy shows up as a dispute.

Why do freight bills and bills of lading tell different stories?

They disagree because the shipment gets touched, measured, and rebilled by more than one system, and those systems do not always update each other. Six causes account for nearly every mismatch.

  • Quantity misalignment. The BOL lists ten pallets. The invoice bills for twelve.
  • Weight discrepancies. A carrier reweighs the shipment, and the new number never makes it back to the original BOL.
  • Timing gaps. A post-shipment charge gets added to the invoice with no matching update on the BOL.
  • Classification errors. The commodity code on the invoice differs from the BOL, which changes the rate.
  • Accessorial confusion. A fee shows up on the invoice with no BOL notation confirming it was requested.
  • System sync failures. The BOL lives in one system, the invoice lives in another, and nothing forces them to line up.

None of these six causes is rare. On a large enough invoice volume, all six show up every month.

What BOL fields do you need to check against the invoice?

You need to check the fields that determine the rate, not just the fields that describe the shipment. Both categories matter, but the rate-determining fields are where money actually moves.

  • Shipper and consignee names and addresses. These need to match what was actually agreed and actually executed, not just look close enough.
  • Origin and destination. A wrong destination code can pull in the wrong lane rate entirely.
  • Piece or pallet count. The count on the BOL should match the count billed, not a rounded or estimated number.
  • Weight, gross and net. A reweigh that never updates the BOL is one of the most common sources of dispute.
  • Commodity classification. The freight class drives the rate, and a wrong class on either document changes the price.
  • Linehaul rate and fuel surcharge. The linehaul rate should match the rate agreement exactly. The fuel surcharge should use the agreed index against the correct base rate, not a different baseline.
  • Accessorial notations. Detention, liftgate, lumper, and reconsignment charges each need a matching note or signed receipt confirming the service was requested and performed.
  • Pickup and delivery dates. These dates matter for service-level and detention disputes specifically.
  • Rate classification applied. Confirm the rate tier billed matches what the BOL and contract actually support.

{{blue-cta}}

How do you reconcile a carrier invoice against the BOL?

You reconcile a carrier invoice against the BOL by pulling all four documents, matching them field by field, and flagging anything that does not line up before payment goes out. The six steps below are the sequence to run on every invoice.

Step 1: Pull the invoice, the BOL, the POD, and the rate agreement together

Gather all four documents for the same shipment before comparing anything. Reconciliation against only two or three of the four sources misses whichever error the missing document would have caught.

Step 2: Match the PRO number, BOL number, and load number across every document

Confirm the invoice, BOL, and POD are describing the same shipment before checking any other field. Check the shipper and consignee names and addresses too. A mismatch here means everything you check afterward is checking the wrong set of documents.

Step 3: Compare weight, piece count, and commodity class

Check these three fields against each other on the invoice and the BOL. A reweigh, a recount, or a reclass that shows up on the invoice but not the BOL is the single most common source of disputed dollars.

Step 4: Verify the linehaul rate and fuel surcharge against the contract, not just the BOL

Confirm the linehaul rate matches the rate agreement exactly, with no unauthorized rounding. Then check the fuel surcharge separately: it should use the index your contract specifies, applied to the correct base rate. A rate can match the BOL's facts and still be priced wrong against the contract on either of these.

Step 5: Cross-check accessorials against timestamps and receipts

Match detention or layover charges to the check-in and check-out times on the BOL or POD. Match every lumper fee to a signed receipt for that exact amount. Flag any accessorial with no supporting document or no prior authorization on the rate agreement.

Step 6: Log the variance and flag it for dispute

Release the invoice if every field matches. If something does not, log the exact line item, the amount billed, and the amount you expected, then hold payment on that specific charge and move it into your dispute process before the carrier's claim window closes.

What causes the biggest invoice-to-BOL mismatches at scale?

At scale, the biggest mismatches come from disconnected systems more than from any single error type. A manual review can catch one bad invoice. It cannot catch the same error repeating across thousands.

A global FMCG leader running $337M in annual freight spend across 139 carriers and six modes had exactly this problem. Half of its invoices needed manual review. The volume itself was not unusual. Its audit system was simply never configured to match invoices against shipment data at that scale. Two separate legacy providers ran pre-audit and post-audit with no shared data between them, so a BOL correction made in one system never reached the invoice sitting in the other.

The fix was one platform that matches every invoice against contracted rates and real shipment records in real time. That change took the company from a 50% manual exception rate to a 93% first-time match, across more than 350,000 invoices a year.

What do you do when the invoice and BOL don't match?

Hold payment on the mismatched line. Gather the evidence. Send the carrier a specific dispute, not a general objection. Paying first and disputing later gives up your strongest position.

Short-pay the disputed charge, and release the rest of the invoice on schedule. Send the carrier's billing department a written dispute referencing the load and invoice numbers, with the BOL, the POD, the rate agreement, and the exact field that does not match attached. File it well inside the carrier's dispute window, whether that window comes from the contract or from statute, since a late claim can be denied on timing alone regardless of how strong the evidence is. Freehand's Dispute Management Agent builds this packet and files it on its own. That matters most when the same mismatch is happening thousands of times a month, not once.

A mismatch caught before payment is worth more than one caught after

Every invoice that goes out unreconciled is a bet that the BOL and the bill happen to agree. At scale, they will not, and the gap almost always favors the carrier.

Freehand matches every invoice against the BOL and the contract before payment, not a sample and not after the fact. The mismatches that used to require a person to notice, across thousands of invoices a month, get caught and disputed automatically instead.

{{brown-cta}}

Frequently Asked Questions

How do you reconcile a carrier invoice against the BOL?

Pull the invoice, the BOL, the proof of delivery, and the rate deal for the shipment. Match the PRO, BOL, and load numbers first. Then check weight, piece count, and commodity class. Verify the rate and fuel surcharge, and hold payment on any line that fails before you dispute it.

What is the most common mismatch between an invoice and a BOL?

Weight and quantity mismatches are the most common. Usually a reweigh or recount never makes it back onto the original BOL. Wrong commodity class comes next, since that alone changes the rate on both documents.

Why do the BOL and the invoice ever disagree in the first place?

They come from two different moments. The BOL gets signed at pickup. The invoice comes later, sometimes after a reweigh, a reclass, or an extra charge that never made it back onto the original BOL.

What should you do if the invoice and BOL don't match?

Hold payment on that one line. Gather the BOL, the rate deal, and the exact field that fails. Send the carrier a specific dispute with that evidence, not a general complaint, and let the rest of the invoice move on schedule.

Does reconciling against the BOL replace a full freight invoice audit?

No. A full audit also checks accessorial rates, duplicate charges, and service guarantees that a BOL alone will not show. BOL reconciliation is one layer inside that larger process, not a stand-in for it.

How long do you have to dispute a mismatch you find?

File inside the carrier's contract deadline whenever one applies. It is usually shorter than any statutory window behind it. A late claim can get denied on timing alone, no matter how good your proof is.

Every Invoice Checked. Every Charge Verified.

Freehand reads each carrier invoice against your contracted rates and flags the variance before you pay it. No sampling, no backlog.

You're Auditing a Sample. The Errors Live in the Rest.

Most teams spot-check 15 to 30% of freight invoices. Overcharges hide in the 70% no one opens.

Try Freehand
Gartner Research

Every warehouse. Every provider. Every mile.

Gartner's 2026 outlook on logistics outsourcing, and how AI Teams hold every contract to the terms you agreed.

  • Where outsourced logistics quietly loses margin
  • Why billed charges drift from the contract
  • How AI Teams close the gap
download now

More related blogs

How to Dispute a Freight Overcharge: Full Guide

Industry

How to Validate Accessorial Charges: Step-by-Step

Industry

How to Run a Freight RFP: Step-by-Step Guide

Industry