Skip to content
Parser BlogLogistics9 min readAll posts

Fuel Surcharge Audit: How to Check Every Freight Invoice Against the Diesel Index and Your Contract

The fuel surcharge is often the second largest number on a freight invoice, and the one nobody recalculates. It moves every week with the diesel price, it is computed by a formula buried in the contract, and it looks plausible whatever the figure is. That is what makes it easy to get wrong. This post explains how fuel surcharges are built, where they drift from the contract, and how to audit each one before you pay.

In brief

  • A fuel surcharge is a formula, not a price: the contract fixes the index, the week, the base price and the method, and the invoice should follow from them.
  • Most US freight contracts tie the surcharge to the weekly on-highway diesel price published by the Energy Information Administration, so the week the carrier picks decides the amount.
  • The most common disputable surcharges use the wrong index week, a regional price instead of the national one or the reverse, a base price or table version the contract does not use, or miles the rate confirmation does not support.
  • Auditing a surcharge means extracting the invoice and the rate confirmation into fields, looking up the governing index price, recalculating, and disputing only the difference.

What a fuel surcharge is supposed to do

Diesel is one of the largest operating costs of a motor carrier, and its price moves faster than freight contracts are renegotiated. The fuel surcharge separates the two: the line haul rate stays fixed for the term of the agreement, and a variable charge on top passes the change in fuel cost through to the shipper, up when diesel rises and down when it falls.

In the United States most contracts tie that charge to a public number: the weekly retail on-highway diesel price published by the Energy Information Administration, the EIA, often still called the DOE index after its parent department. The EIA publishes a national average and averages for each Petroleum Administration for Defense District, the PADD regions, plus some subregions. A contract picks one of these prices, a rule for which week applies to a shipment, a base price and a method. Everything on the invoice should follow from those four choices.

Because the formula is fixed and the index is public, a fuel surcharge can be checked to the cent. In practice it rarely is. A shipper paying a few hundred freight invoices a month sees a surcharge on nearly every one, each calculated by the carrier's billing system with its own assumptions about the week, the region and the miles.

52

weekly diesel prices a year, and a contract must say which one each load uses

5

PADD regions with their own average, beside the national price

6

checks per invoice in the example below, from line haul to duplicates

Two ways surcharges are calculated

Truckload: cents per mile

Truckload contracts usually express the surcharge per mile. The common formula takes the current index price, subtracts the base price at which the surcharge is zero, and divides by an agreed fuel economy in miles per gallon. With a base of 1.25, an economy of 6.0 and an index of 3.785, the surcharge is 2.535 divided by 6.0, or about 0.42 per mile. Multiply by the miles on the rate confirmation and you have the charge. Some agreements replace the formula with a table of price ranges and per-mile amounts; the audit is the same lookup.

Less than truckload: a percentage of line haul

LTL carriers usually publish a fuel table that maps a diesel price range to a percentage, applied to the line haul after discount. A table might set 31.5 percent for an index between 3.751 and 3.800, and 32.0 percent for 3.801 to 3.850. On a shipment with a gross line haul of 1,000 and a 72 percent discount, the net is 280 and the surcharge at 31.5 percent is 88.20. Apply the same percentage to the gross, or to an 85 liftgate fee as well, and the figure changes without anything on the invoice looking odd.

The contract decides, not the carrier's current tariff

Carriers revise their published fuel tables and base prices from time to time. If your agreement fixes a table version or a base price, that version governs your freight until the agreement changes. Keep the table that applies to each contract, with its effective dates, and audit against it.

Where surcharges drift from the contract

The wrong week

A contract might say the price published on the Monday on or before the pickup date, or the week before delivery, or the week of the invoice. A billing system that uses the invoice date when the contract says pickup will land on a later week, and in a rising market the later week is higher. The difference per load is a few cents a mile; across a year of freight it is real money.

The wrong region, base or table

A national price billed as a regional one, or the reverse, shifts the index by the gap between them. A base price or table version from the carrier's current tariff rather than your agreement shifts every surcharge by the same amount, every week.

The wrong miles or the wrong base charge

A per-mile surcharge billed on more miles than the rate confirmation carries, or a percentage applied to accessorials the contract excludes, inflates the charge even when the rate itself is right. And a surcharge billed once on the invoice and again on a balance due notice is a duplicate like any other.

Illustrative
Illustrative share of disputable fuel surcharges by cause. Numbers are examples, not measured results.

Audit one invoice, end to end

1. Pair the invoice with its terms

Match each freight invoice to its load or PRO number, its rate confirmation or bill of lading, and the contract fuel terms that applied on the pickup date: index, week rule, base price, fuel economy or table, and what the surcharge applies to.

2. Extract the fields that decide the charge

The audit runs on a short list: load number, pickup and delivery dates, miles, line haul, accessorials, and the surcharge as billed, with its index date, price, rate and basis when the carrier prints them. Define these once with types and required flags, as covered in the post on designing extraction schemas, so every carrier's invoice comes out in the same shape.

3. Look up the index and recalculate

Keep a table of the weekly index prices your contracts use, keyed by publication date. Apply the week rule to the pickup date, look up the price, run the contract formula, and compare with the invoice.

Illustrative
Illustrative weekly on-highway diesel prices in US dollars per gallon, by Monday. Not published data: a sample to show how much one week can move the index.
Examplefuel-surcharge-audit.json — example result for one loadjson
{  "rate_confirmation": {    "load_number": "LOAD-EXAMPLE-40217",    "pickup_date": "2026-09-17",    "miles": 820,    "line_haul": 2050.00,    "fuel": {      "index": "national_on_highway_diesel_weekly",      "week_rule": "monday_on_or_before_pickup",      "base_price": 1.25,      "miles_per_gallon": 6.0,      "rounding": "per_mile_to_cent"    }  },  "invoice": {    "invoice_number": "INV-EXAMPLE-90314",    "line_haul": 2050.00,    "fuel_surcharge": {      "index_date": "2026-09-21",      "index_price": 3.905,      "rate_per_mile": 0.44,      "miles": 860,      "amount": 378.40    },    "total": 2428.40  },  "index_lookup": {    "index_date": "2026-09-14",    "price": 3.785,    "note": "illustrative price, not published data"  },  "checks": [    { "rule": "line_haul_matches_rate_con", "result": "pass" },    { "rule": "index_week_follows_contract", "billed": "2026-09-21", "expected": "2026-09-14", "result": "fail" },    { "rule": "rate_per_mile_from_formula", "billed": 0.44, "expected": 0.42, "result": "fail" },    { "rule": "miles_match_rate_con", "billed": 860, "expected": 820, "result": "fail" },    { "rule": "surcharge_on_line_haul_only", "result": "pass" },    { "rule": "no_other_surcharge_for_load", "result": "pass" }  ],  "expected_fuel_surcharge": 344.40,  "expected_total": 2394.40,  "disputed_amount": 34.00}

In this example the load picked up on Thursday, September 17, so the contract's rule points to the price published Monday, September 14: 3.785 in this sample. The carrier used September 21, when the sample price had jumped to 3.905, which gives 0.44 per mile instead of 0.42. It also billed 860 miles where the rate confirmation says 820. The supported surcharge is 820 at 0.42, or 344.40, against 378.40 billed, and the 34.00 difference goes to the carrier with the index date, the formula and the rate confirmation attached. The line haul and the absence of a second surcharge both pass.

Fix the pattern, not only the invoice

A surcharge error is rarely a one-off. A carrier on the wrong week is on the wrong week for every load, and a carrier on an old table is off by the same amount every time. Report disputes by carrier and by cause, and send the pattern back with the first claim: one corrected setting in their billing system is worth more than a hundred recovered invoices.

The surcharge check belongs inside the wider freight invoice audit, next to the line haul and the accessorials. LTL corrections bring their own surcharge too: when a reweigh or reclass changes the line haul, the percentage should be recalculated on the supported amount, not the billed one. And a surcharge billed again on a separate notice is exactly what duplicate detection should catch.

Measure it

Track the share of invoices whose surcharge was recalculated before payment, the amount disputed and recovered by carrier and by cause, and the share of carriers whose surcharges match the contract with no exceptions for a full month. On the extraction side, measure field-level accuracy on a labeled set of your own invoices, with the attention on dates, miles and amounts: a pickup date read one day off can move a load into another index week.

Before you automate: a short checklist

  • Load each contract’s fuel terms: index, region, week rule, base price, fuel economy or table version, and effective dates.
  • Keep the weekly index prices your contracts reference, keyed by publication date.
  • Match every invoice to its load, rate confirmation or bill of lading, and the terms in force on the pickup date.
  • Extract dates, miles, line haul, accessorials and the billed surcharge into fields.
  • Apply the week rule, look up the price, and recalculate the surcharge with the contract formula.
  • Confirm what the surcharge applies to: line haul only, or the accessorials the contract names.
  • Dispute the difference with the index date and the calculation attached.
  • Report errors by carrier and cause, and ask the carrier to correct the setting behind them.

Where extraction fits

A surcharge audit stalls at the step where someone opens each invoice and rate confirmation to retype a date, a mileage and a rate. Parser extracts freight invoices, rate confirmations and bills of lading into structured JSON against the template you define, through upload, email or the API, so the values that decide each surcharge land in your audit as fields, matching invoices go to payment, and only the ones the index and your contract do not support reach your team.

Frequently asked questions

FAQ
  • For truckload freight it is often cents per mile: the current diesel price minus a base price set in the contract, divided by an agreed miles per gallon, times the miles billed. For less-than-truckload freight it is usually a percentage of the net line haul, read from a table that maps diesel price ranges to percentages.

  • Most US contracts reference the weekly retail on-highway diesel price published by the US Energy Information Administration, either the national average or a regional average. The contract should say which one, and which week applies to a shipment, for example the price published on the Monday on or before the pickup date.

  • It is the diesel price at which the surcharge is zero. Above it, the surcharge grows with the index; below it, there is no surcharge. Two carriers with the same per-mile formula and different base prices bill very different surcharges for the same week.

  • Only if the contract or tariff says so. Many agreements apply the surcharge to line haul only, so a percentage applied on top of liftgate, detention or residential delivery fees is worth checking against the terms before it is paid.

More
The newest other posts

More from the blog.

Solutions
Where Parser fits

Related solutions.

  • Logistics & freight

    Bills of lading, freight invoices, rate confirmations and delivery receipts, read into shipment fields.

    Fields bol_number shipper consignee gross_weight_lb

    Logistics & freight, see industry
  • Invoice processing

    Vendor, tax ID, line items, taxes and due date from invoices and bills.

    Fields vendor tax_id line_items total

    Invoice processing, see use case

Your documents are different?

You define the fields in an extraction template. In the demo we process your documents live — no slides, no fluff.

30 minutes · no commitment