Reasonable exception rate for freight and 3PL invoices

There is no industry benchmark for a freight invoice exception rate. Here is how to set your own threshold and defend it, line by line. Read the full guide.

Twitter LinkedIn WhatsApp
Ask AI: ChatGPT Claude Gemini Grok
Reasonable exception rate for freight and 3PL invoices

Margin drift is the gap between what a vendor contract says and what the invoice actually charges. On a freight and 3PL invoice that gap shows up as an exception: a line that does not match the rate confirmation, the accessorial tariff, or the fuel table it should follow.

Shippers ask what exception rate is "reasonable" because they want a number to compare against. No such published number exists for freight audits specifically. What does exist is a method for setting your own threshold from your own lane mix, and that is what this page works through.

Executive Summary

A freight exception rate is the share of invoice lines that fail a match against contract, tariff, or fuel table when checked line by line. There is no external benchmark for what that share should be. No dataset ties an exception rate to company size, vertical, or carrier mix, so any number presented as an industry standard is invented, not measured.

What changes the outcome is not chasing a target percentage but building the match logic that finds exceptions in the first place: rate confirmation against invoiced rate, accessorial charge against tariff, fuel surcharge against the index it references. A shipper with weak match logic will show a low exception rate because it is not catching the drift, not because the drift is not there.

Freight input costs are also moving in a direction that makes stale rate tables more expensive to leave unchecked. Fuel and truck transportation cost indices are both running well above last year, which raises the cost of any surcharge table that has not been refreshed to match.

1. What is a reasonable exception rate for freight and 3PL invoices?

There is no reliable answer as a single percentage. No dataset ties an exception rate for freight and 3PL invoices to company size, lane mix, or carrier count, so any figure quoted as an industry norm is not measured, it is guessed. The useful question is not what rate is normal but what rate your own match logic produces when it actually tests every line against contract, tariff, and fuel index, rather than only the base linehaul charge.

A quoted exception rate is only meaningful next to a description of what was tested. A team that checks base rate alone against the rate confirmation will report a low number. A team that also checks each accessorial code against the published tariff and each fuel surcharge against its index will report a higher one, on the same invoices, from the same carrier.

That is why the rate itself travels badly between companies. Two shippers with identical drift can report exception rates a full order of magnitude apart, purely because one of them is testing more of the invoice.

The more useful comparison is the same shipper against itself over time, once the match rules are fixed. A rising exception rate under a fixed rule set says something real: either the carrier's billing accuracy is changing or the underlying rate tables have gone stale. A falling rate under the same rules says the opposite.

Neither reading is possible if the rule set is not held constant, which is the actual discipline behind the question, not the number itself.

2. What counts as an exception on a freight invoice?

An exception is any invoice line that fails a defined match test: a linehaul rate that does not equal the rate confirmation, an accessorial charge with no matching authorization, a fuel surcharge calculated against the wrong index value, or a duplicate invoice number for a shipment already paid. Each of those is a distinct test, not one blended check, and a shipment can fail more than one at once.

Linehaul mismatches are the simplest to test and the easiest for a carrier to correct once flagged: the invoiced rate either matches the confirmed rate or it does not.

Accessorial charges are harder because the charge is often legitimate in kind but wrong in amount or application: a detention charge for time that did not occur, a liftgate fee on a dock delivery, a redelivery charge on a shipment that was never attempted the first time.

Fuel surcharges fail differently again: the surcharge percentage stops tracking its index after a rate change, or the index reference itself is outdated. Each of these three categories needs its own test logic, which is why a single exception rate collapses distinct failure modes into one number and loses the information about which one is driving it.

  • Rate mismatch: The invoiced linehaul rate does not equal the confirmed or contracted rate for that lane and equipment type.
  • Unauthorized accessorial: A detention, liftgate, or redelivery charge appears with no supporting event on the shipment record.
  • Fuel surcharge drift: The surcharge percentage no longer tracks the index it is supposed to reference.
  • Duplicate billing: The same shipment or invoice number is billed more than once, sometimes under a different reference number.

3. Why is freight cost data moving enough to matter right now?

Two federal cost indices that feed freight rate tables have both moved sharply. The Producer Price Index for truck transportation of freight (BLS series WPU3012) reached 170.984 in July 2026, up 10.9% year over year, and the gasoline commodity index (BLS series WPU0571) reached 302.759, up 37.1% year over year, both read 2026-09-04. A fuel surcharge table set months ago is now referencing a stale relationship.

A fuel surcharge is a formula, not a flat number: a percentage applied against a published fuel index, stepped in bands. When the underlying index moves 37.1% year over year, as the BLS gasoline commodity series did through July 2026, a surcharge table that has not been updated to the current step is charging against a fuel price that no longer exists.

The truck transportation industry index (BLS series PCU484121484121) tells a similar story from the carrier cost side, up 8.1% year over year to 195.575 in July 2026. Base linehaul rates negotiated before that movement are now out of step with the carrier's own cost basis, which is exactly the condition under which a carrier is most likely to push accessorial charges to recover margin elsewhere on the invoice.

Neither figure says what your exception rate should be. Both say that a fuel table or rate card set even a few months ago is worth re-checking against its own reference point before assuming it still holds.

4. How do you calculate your own exception rate?

Divide the number of invoice lines that fail at least one defined match test by the total number of lines reviewed, over a fixed period, with the test list held constant. Report the rate alongside the test list and the sample size, not as a bare percentage. Without the test list attached, the number cannot be compared to anything, including your own rate from a prior quarter.

Start with a fixed denominator: all invoice lines for a defined carrier set over a defined period, not a sample chosen after the fact. Then fix the numerator's test list before running it, so the count is not silently expanded or narrowed between periods.

Run the same test list every period. If a new test is added, such as a check for redelivery charges that was not previously run, report the change and, where practical, re-run the prior period under the new list so the trend line stays comparable.

Carry the sample size with the rate. A rate computed on 40 invoices during a slow month means less than the same rate on 4,000. State both. This is the same discipline the proof registry for this program requires before any figure is published: state the basis, state the sample, do not let a bare number stand alone.

5. What exception rate is too low to be believable?

A near-zero exception rate over a large invoice volume is not evidence of a clean carrier relationship. It is far more likely evidence that the match logic is not testing enough of the invoice, most often because accessorial charges and fuel surcharges are being accepted at face value while only the base linehaul rate is checked against the rate confirmation.

A three-way match that only compares linehaul rate to rate confirmation will pass almost everything, because carriers rarely misstate the negotiated base rate outright. The drift lives in the accessorial lines and the surcharge formula, which is exactly where a narrow match test does not look.

Before trusting a low exception rate, check what the test list actually covers. A rate that looks clean because detention charges, liftgate fees, and fuel surcharge steps were never individually verified is not a clean invoice, it is an unverified one.

The fix is the same one described above for calculating the rate: name every test being run, and treat any category not on that list as unmeasured rather than passed.

6. Which accessorial charges are worth checking first?

Detention, liftgate, redelivery, and residential delivery charges are the accessorial categories with the clearest yes-or-no test against a shipment record: either the event happened or it did not. These are worth checking first because they resolve quickly and because a wrong charge here is easiest to prove back to the carrier with dock or delivery records already on file.

Detention charges depend on arrival and departure timestamps at the dock. If those timestamps are captured in the warehouse management system, the charge is either supported or it is not, with no interpretation required.

Liftgate and residential delivery fees depend on the delivery address and equipment type, both of which are known before the shipment moves. A liftgate fee on a dock-equipped facility has no basis and should be flagged automatically rather than reviewed case by case.

Redelivery charges require a first delivery attempt on record. Absent that record, the charge has no basis. Each of these checks resolves against data the shipper already holds, which is why they belong at the front of a freight exception process rather than the fuel surcharge or linehaul rate checks that require an external index or a rate confirmation on file.

For the wider pattern this sits inside, start with the margin drift guide. See also rate card enforcement: why approved timesheets still produce wrong invoices and off-contract resources: people billed outside the agreement.

7. Frequently Asked Questions (People Also Ask)

Is there an industry-standard freight invoice exception rate we should be hitting?

No. There is no published or licensed dataset that ties a freight and 3PL exception rate to company size, vertical, or carrier mix. Any figure presented as an industry standard for this metric is not sourced to real audit data. Build your own baseline from a fixed test list applied consistently, and track it against itself over time rather than against an external number.

Why does our exception rate look different from what a peer company reports?

Almost always because the test lists differ. A company checking only linehaul rate against the rate confirmation will report a lower exception rate than one also testing accessorial charges and fuel surcharge steps, even on invoices with identical underlying drift. Compare test lists before comparing rates.

Should our exception rate go down over time as we fix issues?

It should trend down for a fixed carrier and a fixed test list, once corrections take hold. If the rate is dropping while the test list is also shrinking or the carrier mix is changing, the trend is not telling you what you think it is telling you. Hold both constant before reading the direction.

Does a rising fuel index mean our fuel surcharge exceptions will increase?

It raises the chance that a surcharge table set before the movement is now out of step with the index it references. The BLS gasoline commodity index (WPU0571) was up 37.1% year over year as of July 2026, read 2026-09-04. That does not set your exception rate, but it is a reason to re-check the surcharge table's current step against the live index rather than assume it still applies.

What is the difference between an exception and a dispute?

An exception is an internal finding: an invoice line that fails a defined match test. A dispute is what you send the carrier once you have confirmed the exception is real and not explained by a data gap on your side, such as a missing delivery record. Not every exception becomes a dispute, but every dispute should start from a documented exception.

Can accessorial charges be checked without a freight audit specialist?

Detention, liftgate, and redelivery charges can be checked against dock and delivery records already held internally, since each depends on a yes-or-no event rather than a rate table. Fuel surcharge and rate card checks require an external index or a rate confirmation on file, which is where an audit process built around those references adds the most value.

How often should the exception test list be updated?

Whenever a new drift pattern is identified, such as a redelivery charge category that had not previously been tested. Update the list, document the change, and where practical re-run the prior period under the new list so trend comparisons stay valid rather than mixing two different test sets.

Does a low exception rate mean our freight spend is under control?

Not by itself. A low rate can mean genuinely clean invoicing, or it can mean the match logic is not testing enough of the invoice, most commonly the accessorial and fuel surcharge lines. Check what the test list covers before treating a low number as reassurance.

Executive Summary

A freight exception rate is the share of invoice lines that fail a match against contract, tariff, or fuel table when checked line by line. There is no external benchmark for what that share should be. No dataset ties an exception rate to company size, vertical, or carrier mix, so any number presented as an industry standard is invented, not measured. What changes the outcome is not chasing a target percentage but building the match logic that finds exceptions in the first place: rate confirmation against invoiced rate, accessorial charge against tariff, fuel surcharge against the index it references. A shipper with weak match logic will show a low exception rate because it is not catching the drift, not because the drift is not there. Freight input costs are also moving in a direction that makes stale rate tables more expensive to leave unchecked. Fuel and truck transportation cost indices are both running well above last year, which raises the cost of any surcharge table that has not been refreshed to match.

1. What is a reasonable exception rate for freight and 3PL invoices?

There is no reliable answer as a single percentage. No dataset ties an exception rate for freight and 3PL invoices to company size, lane mix, or carrier count, so any figure quoted as an industry norm is not measured, it is guessed. The useful question is not what rate is normal but what rate your own match logic produces when it actually tests every line against contract, tariff, and fuel index, rather than only the base linehaul charge. A quoted exception rate is only meaningful next to a description of what was tested. A team that checks base rate alone against the rate confirmation will report a low number. A team that also checks each accessorial code against the published tariff and each fuel surcharge against its index will report a higher one, on the same invoices, from the same carrier. That is why the rate itself travels badly between companies. Two shippers with identical drift can report exception rates a full order of magnitude apart, purely because one of them is testing more of the invoice. The more useful comparison is the same shipper against itself over time, once the match rules are fixed. A rising exception rate under a fixed rule set says something real: either the carrier's billing accuracy is changing or the underlying rate tables have gone stale. A falling rate under the same rules says the opposite. Neither reading is possible if the rule set is not held constant, which is the actual discipline behind the question, not the number itself.

2. What counts as an exception on a freight invoice?

An exception is any invoice line that fails a defined match test: a linehaul rate that does not equal the rate confirmation, an accessorial charge with no matching authorization, a fuel surcharge calculated against the wrong index value, or a duplicate invoice number for a shipment already paid. Each of those is a distinct test, not one blended check, and a shipment can fail more than one at once. Linehaul mismatches are the simplest to test and the easiest for a carrier to correct once flagged: the invoiced rate either matches the confirmed rate or it does not. Accessorial charges are harder because the charge is often legitimate in kind but wrong in amount or application: a detention charge for time that did not occur, a liftgate fee on a dock delivery, a redelivery charge on a shipment that was never attempted the first time. Fuel surcharges fail differently again: the surcharge percentage stops tracking its index after a rate change, or the index reference itself is outdated. Each of these three categories needs its own test logic, which is why a single exception rate collapses distinct failure modes into one number and loses the information about which one is driving it. - Rate mismatch: The invoiced linehaul rate does not equal the confirmed or contracted rate for that lane and equipment type. - Unauthorized accessorial: A detention, liftgate, or redelivery charge appears with no supporting event on the shipment record. - Fuel surcharge drift: The surcharge percentage no longer tracks the index it is supposed to reference. - Duplicate billing: The same shipment or invoice number is billed more than once, sometimes under a different reference number.

3. Why is freight cost data moving enough to matter right now?

Two federal cost indices that feed freight rate tables have both moved sharply. The Producer Price Index for truck transportation of freight (BLS series WPU3012) reached 170.984 in July 2026, up 10.9% year over year, and the gasoline commodity index (BLS series WPU0571) reached 302.759, up 37.1% year over year, both read 2026-09-04. A fuel surcharge table set months ago is now referencing a stale relationship. A fuel surcharge is a formula, not a flat number: a percentage applied against a published fuel index, stepped in bands. When the underlying index moves 37.1% year over year, as the BLS gasoline commodity series did through July 2026, a surcharge table that has not been updated to the current step is charging against a fuel price that no longer exists. The truck transportation industry index (BLS series PCU484121484121) tells a similar story from the carrier cost side, up 8.1% year over year to 195.575 in July 2026. Base linehaul rates negotiated before that movement are now out of step with the carrier's own cost basis, which is exactly the condition under which a carrier is most likely to push [accessorial charges](/guides/accessorial-charge-audit-the-surcharges-nobody-validates) to recover margin elsewhere on the invoice. Neither figure says what your exception rate should be. Both say that a fuel table or rate card set even a few months ago is worth re-checking against its own reference point before assuming it still holds.

4. How do you calculate your own exception rate?

Divide the number of invoice lines that fail at least one defined match test by the total number of lines reviewed, over a fixed period, with the test list held constant. Report the rate alongside the test list and the sample size, not as a bare percentage. Without the test list attached, the number cannot be compared to anything, including your own rate from a prior quarter. Start with a fixed denominator: all invoice lines for a defined carrier set over a defined period, not a sample chosen after the fact. Then fix the numerator's test list before running it, so the count is not silently expanded or narrowed between periods. Run the same test list every period. If a new test is added, such as a check for redelivery charges that was not previously run, report the change and, where practical, re-run the prior period under the new list so the trend line stays comparable. Carry the sample size with the rate. A rate computed on 40 invoices during a slow month means less than the same rate on 4,000. State both. This is the same discipline the proof registry for this program requires before any figure is published: state the basis, state the sample, do not let a bare number stand alone.

5. What exception rate is too low to be believable?

A near-zero exception rate over a large invoice volume is not evidence of a clean carrier relationship. It is far more likely evidence that the match logic is not testing enough of the invoice, most often because accessorial charges and fuel surcharges are being accepted at face value while only the base linehaul rate is checked against the rate confirmation. A three-way match that only compares linehaul rate to rate confirmation will pass almost everything, because carriers rarely misstate the negotiated base rate outright. The drift lives in the accessorial lines and the surcharge formula, which is exactly where a narrow match test does not look. Before trusting a low exception rate, check what the test list actually covers. A rate that looks clean because detention charges, liftgate fees, and fuel surcharge steps were never individually verified is not a clean invoice, it is an unverified one. The fix is the same one described above for calculating the rate: name every test being run, and treat any category not on that list as unmeasured rather than passed.

6. Which accessorial charges are worth checking first?

Detention, liftgate, redelivery, and residential delivery charges are the accessorial categories with the clearest yes-or-no test against a shipment record: either the event happened or it did not. These are worth checking first because they resolve quickly and because a wrong charge here is easiest to prove back to the carrier with dock or delivery records already on file. Detention charges depend on arrival and departure timestamps at the dock. If those timestamps are captured in the warehouse management system, the charge is either supported or it is not, with no interpretation required. Liftgate and residential delivery fees depend on the delivery address and equipment type, both of which are known before the shipment moves. A liftgate fee on a dock-equipped facility has no basis and should be flagged automatically rather than reviewed case by case. Redelivery charges require a first delivery attempt on record. Absent that record, the charge has no basis. Each of these checks resolves against data the shipper already holds, which is why they belong at the front of a freight exception process rather than the fuel surcharge or linehaul rate checks that require an external index or a rate confirmation on file. For the wider pattern this sits inside, start with the [margin drift](/guides/indirect-spend-audit-categories) guide. See also [rate card enforcement: why approved timesheets still produce wrong invoices](/guides/rate-card-enforcement-why-approved-timesheets-still-produce) and [off-contract resources: people billed outside the agreement](/guides/off-contract-resources-people-billed-outside-the-agreement).

Questions & Answers

Is there an industry-standard freight invoice exception rate we should be hitting?

No. There is no published or licensed dataset that ties a freight and 3PL exception rate to company size, vertical, or carrier mix. Any figure presented as an industry standard for this metric is not sourced to real audit data. Build your own baseline from a fixed test list applied consistently, and track it against itself over time rather than against an external number.

Why does our exception rate look different from what a peer company reports?

Almost always because the test lists differ. A company checking only linehaul rate against the rate confirmation will report a lower exception rate than one also testing accessorial charges and fuel surcharge steps, even on invoices with identical underlying drift. Compare test lists before comparing rates.

Should our exception rate go down over time as we fix issues?

It should trend down for a fixed carrier and a fixed test list, once corrections take hold. If the rate is dropping while the test list is also shrinking or the carrier mix is changing, the trend is not telling you what you think it is telling you. Hold both constant before reading the direction.

Does a rising fuel index mean our fuel surcharge exceptions will increase?

It raises the chance that a surcharge table set before the movement is now out of step with the index it references. The BLS gasoline commodity index (WPU0571) was up 37.1% year over year as of July 2026, read 2026-09-04. That does not set your exception rate, but it is a reason to re-check the surcharge table's current step against the live index rather than assume it still applies.

What is the difference between an exception and a dispute?

An exception is an internal finding: an invoice line that fails a defined match test. A dispute is what you send the carrier once you have confirmed the exception is real and not explained by a data gap on your side, such as a missing delivery record. Not every exception becomes a dispute, but every dispute should start from a documented exception.

Margin Drift Resources