How to reconcile a freight vendor statement

A 7-step method for reconciling a freight vendor statement against contracted rates, accessorials, and fuel surcharge tables before you pay it.

Twitter LinkedIn WhatsApp
Ask AI: ChatGPT Claude Gemini Grok
How to reconcile a freight vendor statement

Margin drift is the gap between what a vendor contract says and what the invoice actually charges. A freight vendor statement is where that gap hides best, because one statement can bundle base linehaul, a fuel surcharge that moves weekly, and a column of accessorial codes nobody on your AP team has memorized.

Reconciling the statement means testing each of those pieces against a separate source of truth: the rate agreement, the fuel index it references, and the accessorial tariff. Below is the sequence to run it in, and what each step actually catches.

Executive Summary

A freight vendor statement is not one number to check against a PO total. It is three or four separately negotiated components stacked into one invoice line, each of which can drift independently: the base rate, the fuel surcharge, the accessorial charges, and any minimum charge or tier. Reconciling it as a single figure misses drift in any component the total happens to offset.

The mechanism is straightforward once separated. Base rates drift when a rate card update never reaches the invoicing system. Fuel surcharges drift when the carrier applies an index that no longer matches the published schedule, or applies it after a rate change should have superseded it. Accessorials drift when a charge appears without a matching event on the bill of lading or delivery record.

What changes it is running the same seven-step sequence on every statement rather than spot-checking the ones that look wrong. A rate ten dollars over is invisible on inspection; it is only visible against the rate card, line by line.

1. How do you reconcile a freight vendor statement, start to finish?

Reconcile a freight vendor statement in seven steps: pull the current rate agreement, match each invoice line to a shipment record, verify the base rate against the rate card, verify the fuel surcharge against the published index, verify each accessorial against a documented event, total the variances, and route confirmed variances to the carrier as a dispute before payment. Each step tests one component in isolation.

Start with the source documents, not the invoice. Pull the current, signed rate agreement, the fuel surcharge table it references, and the accessorial tariff. An invoice cannot be tested against itself.

Next, match every line on the statement to a shipment record: bill of lading, delivery receipt, and purchase order if one exists. A line with no matching shipment is a first finding before you have checked a single rate.

Then work through steps three, four and five below in order: base rate, fuel surcharge, accessorials. Keep them separate. A statement that nets out correctly can still contain an overcharge on one line offset by an undercharge on another, and netting hides both.

Step six totals the confirmed variances by type so you know whether the pattern is a stale rate card, a surcharge lag, or accessorial misuse. Step seven routes the dispute to the carrier with the shipment references attached, because a dispute without documentation gets deprioritized on the carrier's side.

  1. Pull source documents: Get the current signed rate agreement, fuel surcharge table, and accessorial tariff before opening the invoice.
  2. Match lines to shipments: Every invoice line needs a bill of lading or delivery record behind it, or it fails before rate checking starts.
  3. Test each component separately: Base rate, fuel surcharge, and accessorials are tested against three different documents, never netted together.
  4. Total and route disputes: Group confirmed variances by type and send them to the carrier with shipment references attached.

2. What does checking the base rate actually involve?

Checking the base rate means finding the specific lane, mode, and equipment type on the signed rate card and comparing it to the invoiced amount before any surcharge is added. The comparison has to use the rate card version in effect on the ship date, not the current one, because a mid-year rate change applied retroactively or too late is itself a form of drift.

Freight rate cards are usually structured by lane, origin-destination pair, equipment type, and sometimes weight break. The invoiced base rate has to be checked against the exact matching row, not a nearby lane that looks similar.

Date matters as much as the row. If the rate card was updated mid-quarter, the ship date on the shipment record determines which version applies. An invoice using last quarter's rate after an increase should have taken effect, or this quarter's rate before it was contractually due, is a mismatch either way.

Watch for lane substitution too: a shipment routed through an intermediate hub not named in the contract can get billed at a different rate table entirely. That is a contract question, not a math error, and it belongs in the dispute with the routing documentation attached rather than treated as a simple rate lookup failure.

3. How do you verify a fuel surcharge line?

Verify a fuel surcharge by identifying which published index the contract names, pulling that index's value for the invoice period, applying the contracted formula, and comparing the result to the invoiced surcharge. Fuel surcharges are formula-driven, not flat, so the check is arithmetic against a moving reference, not a lookup against a fixed table.

Most freight contracts tie the fuel surcharge to a named public index and a stated formula, often a percentage that steps up or down as the index crosses defined bands. The first task is confirming which index the contract actually names. Carriers sometimes reference the wrong series or apply a stale reading.

As a reference point for how much an index can move, the US EIA and BLS both track fuel and freight-related series. Per the US Bureau of Labor Statistics Producer Price Index for Fuels and related products, Gasoline (series WPU0571), read 2026-09-05, the July 2026 index value was 302.759, up 37.1% year over year. A surcharge formula anchored to an index moving at that pace will produce a materially different result month to month, so the invoiced value has to be recalculated for the specific invoice period, never assumed to match the prior month.

Once you have the index value for the correct period, apply the contract's own formula rather than a generic rule, since step tables and percentage bands vary by contract.

4. Which accessorial charges need individual validation?

Every accessorial charge needs a matching event on the bill of lading, delivery receipt, or driver log before it is paid: detention needs a timestamped wait, liftgate needs a documented request, residential delivery needs a residential address, and reweigh needs a certified scale ticket. An accessorial with no supporting event on the shipment record is not payable as invoiced.

Accessorial charges are where a freight statement accumulates the most line items with the least individual scrutiny, because each one is small relative to the base rate. Individually small does not mean individually unimportant; a recurring accessorial applied without the underlying event repeats on every invoice until someone checks it.

The validation principle is the same across accessorial types: find the event that justifies the charge before accepting the charge. Detention charges require a timestamped arrival and departure showing wait time beyond the free period. Liftgate and inside delivery charges require a documented request, since these are typically billed only when actually performed.

Residential delivery surcharges require the delivery address to actually be residential. Reweigh and reclassification charges require a certified scale ticket, not just a stated weight.

A. Detention and delay charges

Detention only applies once wait time exceeds the contracted free period, and the invoice should show the exact arrival and departure times it is calculating from. If those times are missing, the charge cannot be validated and should be held pending documentation rather than paid and corrected later.

B. Delivery condition surcharges

Liftgate, inside delivery, and residential surcharges depend on the physical circumstances of a specific delivery. Cross-reference the delivery address and any special instructions on the original order against what the carrier billed; a commercial address billed a residential surcharge is a clean, checkable error.

5. How often should you reconcile freight statements?

The cadence decision is between a periodic audit of past statements and a continuous control that checks every invoice as it arrives. A periodic review catches accumulated drift across a batch of history; a continuous control catches the next invoice before it is paid. Neither replaces the other, and most AP functions need both at different points in the same year.

A periodic reconciliation, run quarterly or as part of a broader audit, is designed to surface drift that has already accumulated: a fuel surcharge formula that has been miscalculated for months, or a rate card update that never reached the invoicing system. It tests history and produces a recovery figure.

A continuous control tests the next invoice against current rules before payment, which prevents new drift but does nothing about drift already sitting in the last year of paid statements. The two answer different questions, and neither is a substitute for verifying what your own contract and current index actually say.

6. What should you do once you find a variance?

Document the variance with the shipment reference, the contract clause it violates, and the expected versus invoiced amount, then submit it to the carrier as a formal dispute before the invoice is paid or shortly after under the contract's dispute window. Track it to resolution rather than treating the finding itself as the recovery, since an unsubmitted variance recovers nothing.

A variance identified but not submitted is not a recovery, it is a spreadsheet entry. The dispute needs three things to move quickly on the carrier's side: the specific shipment reference, the contract clause or rate card row the charge should have matched, and the dollar difference between invoiced and expected.

Most carrier contracts specify a dispute window, often tied to invoice date, after which a credit becomes harder to obtain. Track open disputes against that window the same way you would track an aging receivable, because a dispute that goes stale is functionally the same as one never filed.

Where the same variance type recurs across statements from the same carrier, that is a signal the underlying rate file or surcharge configuration is wrong at the source, not that each invoice is an isolated error. That distinction determines whether the fix is a one-time credit or a correction to how the carrier bills you going forward.

7. Can this reconciliation be done in a spreadsheet?

A spreadsheet can reconcile a single statement against a static rate card, but it cannot hold a fuel index that updates weekly, a rate card with effective-dated versions, or an accessorial tariff with dozens of conditional charges, without someone manually rebuilding those references before every run. The arithmetic is not the hard part; keeping the reference data current is.

The base rate check is genuinely simple in a spreadsheet: one lookup against one table. The fuel surcharge check is harder, because it needs the correct index value for the correct period pulled in every time, and a spreadsheet does not refresh that on its own.

The accessorial check is where a spreadsheet approach tends to break down at scale, because it requires cross-referencing each charge against a shipment record that lives in a different system, for every line, on every statement, from every carrier. That is a matching problem, not a calculation problem, and matching problems compound with volume.

Whether to build this by hand or bring in a system designed for it is a genuine decision, and it turns on volume and on how many carriers and rate structures you are reconciling against, not on which option sounds more sophisticated.

For the wider pattern this sits inside, start with the margin drift guide.

8. Frequently Asked Questions (People Also Ask)

What documents do I need before I can reconcile a freight invoice?

You need the current signed rate agreement for the lane, the fuel surcharge table and formula the contract references, the accessorial tariff, and the shipment records: bill of lading, delivery receipt, and purchase order if one was issued. Without these, you are checking the invoice against itself, which cannot surface a rate or surcharge error.

How do I know which rate card version applies to an old invoice?

Use the ship date on the shipment record, not the invoice date or today's date, to determine which rate card version was in effect. If the rate card changed mid-quarter, a shipment made before the change date should be billed at the prior rate, and one made after should reflect the new rate.

Why does my fuel surcharge not match what I calculated?

Check first whether the carrier applied the correct published index and the correct reading for your invoice period, since these move regularly. Fuel-linked indices can move substantially year over year: per the US Bureau of Labor Statistics PPI for Gasoline (series WPU0571), read 2026-09-05, the July 2026 value was up 37.1% year over year, which is the scale of movement a surcharge formula has to track precisely.

What counts as proof for a detention charge?

A detention charge needs a timestamped arrival and departure at the delivery or pickup location showing wait time beyond the contracted free period. Without both timestamps, the charge cannot be validated against the contract and should be disputed pending documentation from the carrier.

Is it worth disputing a small accessorial overcharge?

A single small accessorial charge may not be worth the administrative time individually, but the same charge repeating across every statement from that carrier is a sign the carrier's billing configuration is wrong at the source. That pattern is worth escalating even when no single line is large.

How is this different from three-way matching in accounts payable?

Three-way matching checks the invoice against the purchase order and receipt to confirm quantity and that a shipment occurred. It does not test whether the fuel surcharge formula was applied correctly or whether an accessorial charge has a supporting event, because those checks require the rate agreement and tariff, not the PO.

Should I reconcile every freight statement or sample them?

A rate that drifts by a small amount on every invoice from one carrier is invisible in a sample and material over a year of statements. Reconciling every statement, or every statement above a set dollar threshold, catches recurring drift that a periodic sample is structurally unable to see.

What is a reasonable dispute window with a carrier?

This is set in your specific carrier contract, not by a general standard, so check the contract's own dispute or claims clause for the exact window. Track any open dispute against that date the way you would an aging receivable, because credits become harder to obtain once the window closes.

Does a fuel surcharge formula ever change independent of the index?

Yes. The formula itself, the percentage bands or step table applied to the index reading, is a separate negotiated term from the index value. A carrier can apply the correct index reading but the wrong formula, which is why the contract's own formula has to be checked, not assumed from a prior invoice.

Executive Summary

A freight vendor statement is not one number to check against a PO total. It is three or four separately negotiated components stacked into one invoice line, each of which can drift independently: the base rate, the fuel surcharge, the accessorial charges, and any minimum charge or tier. Reconciling it as a single figure misses drift in any component the total happens to offset. The mechanism is straightforward once separated. Base rates drift when a rate card update never reaches the invoicing system. Fuel surcharges drift when the carrier applies an index that no longer matches the published schedule, or applies it after a rate change should have superseded it. Accessorials drift when a charge appears without a matching event on the bill of lading or delivery record. What changes it is running the same seven-step sequence on every statement rather than spot-checking the ones that look wrong. A rate ten dollars over is invisible on inspection; it is only visible against the rate card, line by line.

1. How do you reconcile a freight vendor statement, start to finish?

Reconcile a freight vendor statement in seven steps: pull the current rate agreement, match each invoice line to a shipment record, verify the base rate against the rate card, verify the fuel surcharge against the published index, verify each accessorial against a documented event, total the variances, and route confirmed variances to the carrier as a dispute before payment. Each step tests one component in isolation. Start with the source documents, not the invoice. Pull the current, signed rate agreement, the fuel surcharge table it references, and the accessorial tariff. An invoice cannot be tested against itself. Next, match every line on the statement to a shipment record: bill of lading, delivery receipt, and purchase order if one exists. A line with no matching shipment is a first finding before you have checked a single rate. Then work through steps three, four and five below in order: base rate, fuel surcharge, accessorials. Keep them separate. A statement that nets out correctly can still contain an overcharge on one line offset by an undercharge on another, and netting hides both. Step six totals the confirmed variances by type so you know whether the pattern is a stale rate card, a surcharge lag, or accessorial misuse. Step seven routes the dispute to the carrier with the shipment references attached, because a dispute without documentation gets deprioritized on the carrier's side. 1. Pull source documents: Get the current signed rate agreement, fuel surcharge table, and accessorial tariff before opening the invoice. 2. Match lines to shipments: Every invoice line needs a bill of lading or delivery record behind it, or it fails before rate checking starts. 3. Test each component separately: Base rate, fuel surcharge, and accessorials are tested against three different documents, never netted together. 4. Total and route disputes: Group confirmed variances by type and send them to the carrier with shipment references attached.

2. What does checking the base rate actually involve?

Checking the base rate means finding the specific lane, mode, and equipment type on the signed rate card and comparing it to the invoiced amount before any surcharge is added. The comparison has to use the rate card version in effect on the ship date, not the current one, because a mid-year rate change applied retroactively or too late is itself a form of drift. Freight rate cards are usually structured by lane, origin-destination pair, equipment type, and sometimes weight break. The invoiced base rate has to be checked against the exact matching row, not a nearby lane that looks similar. Date matters as much as the row. If the [rate card was updated mid-quarter](/guides/price-file-governance-why-annual-uploads-create-twelve), the ship date on the shipment record determines which version applies. An invoice using last quarter's rate after an increase should have taken effect, or this quarter's rate before it was contractually due, is a mismatch either way. Watch for lane substitution too: a shipment routed through an intermediate hub not named in the contract can get billed at a different rate table entirely. That is a contract question, not a math error, and it belongs in the dispute with the routing documentation attached rather than treated as a simple rate lookup failure.

3. How do you verify a fuel surcharge line?

Verify a fuel surcharge by identifying which published index the contract names, pulling that index's value for the invoice period, applying the contracted formula, and comparing the result to the invoiced surcharge. Fuel surcharges are formula-driven, not flat, so the check is arithmetic against a moving reference, not a lookup against a fixed table. Most freight contracts tie the fuel surcharge to a named public index and a stated formula, often a percentage that steps up or down as the index crosses defined bands. The first task is confirming which index the contract actually names. Carriers sometimes reference the wrong series or apply a stale reading. As a reference point for how much an index can move, the US EIA and BLS both track fuel and freight-related series. Per the US Bureau of Labor Statistics Producer Price Index for Fuels and related products, Gasoline (series WPU0571), read 2026-09-05, the July 2026 index value was 302.759, up 37.1% year over year. A [surcharge formula anchored to an index](/guides/surcharge-sunset-dating-as-a-control) moving at that pace will produce a materially different result month to month, so the invoiced value has to be recalculated for the specific invoice period, never assumed to match the prior month. Once you have the index value for the correct period, apply the contract's own formula rather than a generic rule, since step tables and percentage bands vary by contract.

4. Which accessorial charges need individual validation?

Every accessorial charge needs a matching event on the bill of lading, delivery receipt, or driver log before it is paid: detention needs a timestamped wait, liftgate needs a documented request, residential delivery needs a residential address, and reweigh needs a certified scale ticket. An accessorial with no supporting event on the shipment record is not payable as invoiced. Accessorial charges are where a freight statement accumulates the most line items with the least individual scrutiny, because each one is small relative to the base rate. Individually small does not mean individually unimportant; a recurring accessorial applied without the underlying event repeats on every invoice until someone checks it. The validation principle is the same across accessorial types: find the event that justifies the charge before accepting the charge. Detention charges require a timestamped arrival and departure showing wait time beyond the free period. Liftgate and inside delivery charges require a documented request, since these are typically billed only when actually performed. Residential delivery surcharges require the delivery address to actually be residential. Reweigh and reclassification charges require a certified scale ticket, not just a stated weight. ### A. Detention and delay charges Detention only applies once wait time exceeds the contracted free period, and the invoice should show the exact arrival and departure times it is calculating from. If those times are missing, the charge cannot be validated and should be held pending documentation rather than paid and corrected later. ### B. Delivery condition surcharges Liftgate, inside delivery, and residential surcharges depend on the physical circumstances of a specific delivery. Cross-reference the delivery address and any special instructions on the original order against what the carrier billed; a commercial address billed a residential surcharge is a clean, checkable error.

5. How often should you reconcile freight statements?

The cadence decision is between a periodic audit of past statements and a continuous control that checks every invoice as it arrives. A periodic review catches accumulated drift across a batch of history; a continuous control catches the next invoice before it is paid. Neither replaces the other, and most AP functions need both at different points in the same year. A periodic reconciliation, run quarterly or as [part of a broader audit](/guides/the-quarterly-margin-drift-review-a-control-design-pattern), is designed to surface drift that has already accumulated: a fuel surcharge formula that has been miscalculated for months, or a rate card update that never reached the invoicing system. It tests history and produces a recovery figure. A continuous control tests the next invoice against current rules before payment, which prevents new drift but does nothing about drift already sitting in the last year of paid statements. The two answer different questions, and neither is a substitute for verifying what your own contract and current index actually say.

6. What should you do once you find a variance?

Document the variance with the shipment reference, the contract clause it violates, and the expected versus invoiced amount, then submit it to the carrier as a formal dispute before the invoice is paid or shortly after under the contract's dispute window. Track it to resolution rather than treating the finding itself as the recovery, since an unsubmitted variance recovers nothing. A variance identified but not submitted is not a recovery, it is a spreadsheet entry. The dispute needs three things to move quickly on the carrier's side: the specific shipment reference, the contract clause or rate card row the charge should have matched, and the dollar difference between invoiced and expected. Most carrier contracts specify a dispute window, often tied to invoice date, after which a credit becomes harder to obtain. Track open disputes against that window the same way you would track an aging receivable, because a dispute that goes stale is functionally the same as one never filed. Where the same variance type recurs across statements from the same carrier, that is a signal the underlying rate file or surcharge configuration is wrong at the source, not that each invoice is an isolated error. That distinction determines whether the fix is a one-time credit or a correction to how the carrier bills you going forward.

7. Can this reconciliation be done in a spreadsheet?

A spreadsheet can reconcile a single statement against a static rate card, but it cannot hold a fuel index that updates weekly, a rate card with effective-dated versions, or an accessorial tariff with dozens of conditional charges, without someone manually rebuilding those references before every run. The arithmetic is not the hard part; keeping the reference data current is. The base rate check is genuinely simple in a spreadsheet: one lookup against one table. The fuel surcharge check is harder, because it needs the correct index value for the correct period pulled in every time, and a spreadsheet does not refresh that on its own. The accessorial check is where a spreadsheet approach tends to break down at scale, because it requires cross-referencing each charge against a shipment record that lives in a different system, for every line, on every statement, from every carrier. That is a matching problem, not a calculation problem, and matching problems compound with volume. Whether to build this by hand or bring in a system designed for it is a genuine decision, and it turns on volume and on how many carriers and rate structures you are reconciling against, not on which option sounds more sophisticated. For the wider pattern this sits inside, start with the [margin drift](/guides/contract-compliance-controls-p2p) guide.

Questions & Answers

What documents do I need before I can reconcile a freight invoice?

You need the current signed rate agreement for the lane, the fuel surcharge table and formula the contract references, the accessorial tariff, and the shipment records: bill of lading, delivery receipt, and purchase order if one was issued. Without these, you are checking the invoice against itself, which cannot surface a rate or surcharge error.

How do I know which rate card version applies to an old invoice?

Use the ship date on the shipment record, not the invoice date or today's date, to determine which rate card version was in effect. If the rate card changed mid-quarter, a shipment made before the change date should be billed at the prior rate, and one made after should reflect the new rate.

Why does my fuel surcharge not match what I calculated?

Check first whether the carrier applied the correct published index and the correct reading for your invoice period, since these move regularly. Fuel-linked indices can move substantially year over year: per the US Bureau of Labor Statistics PPI for Gasoline (series WPU0571), read 2026-09-05, the July 2026 value was up 37.1% year over year, which is the scale of movement a surcharge formula has to track precisely.

What counts as proof for a detention charge?

A detention charge needs a timestamped arrival and departure at the delivery or pickup location showing wait time beyond the contracted free period. Without both timestamps, the charge cannot be validated against the contract and should be disputed pending documentation from the carrier.

Is it worth disputing a small accessorial overcharge?

A single small accessorial charge may not be worth the administrative time individually, but the same charge repeating across every statement from that carrier is a sign the carrier's billing configuration is wrong at the source. That pattern is worth escalating even when no single line is large.

Margin Drift Resources