# Who catches accessorial charge creep?

> Accessorial charge creep falls between procurement, AP and receiving. Here is who should own catching it, and how to build the check that actually works.

Source: https://valuexpa.com/insights/who-is-responsible-for-catching-accessorial-charge-creep
Publisher: ValueXPA (https://valuexpa.com)
Updated: 2026-09-07

---

Margin drift is the gap between what a vendor contract says and what the invoice actually charges. Accessorial charge creep is one shape it takes: a fee for detention, liftgate, residential delivery, or reweigh that starts inside the contracted rate table and drifts outward, invoice by invoice, until nobody can say who approved it.

The honest answer to who owns catching it is nobody, by default. It falls between three desks, and each one has a reason to assume another already checked.

## Executive Summary

Accessorial charge creep survives because it is nobody's single job. AP pays against the purchase order and the carrier's invoice total, not against the accessorial schedule buried in the contract. Procurement negotiated that schedule once, at signing, and rarely revisits it against live billing. The receiving dock that triggers the actual accessorial, a late pickup, a liftgate request, a residential stop, has no visibility into what the contract permits and no reason to record it for later matching.

The mechanism is not fraud. A carrier's default rate table gets applied at billing time, and if the contracted rate table is not the one loaded into the invoicing system, every accessorial on every invoice bills at the wrong reference point. Nobody re-enters that table with each rate renewal, so it drifts quietly behind whichever price list the carrier updates.

What changes it is putting one function in charge of matching the invoiced accessorial code and amount against the current contract schedule, on a cadence, rather than assuming the three desks together cover it. That is either a standing control inside AP with the contract schedule loaded as reference data, or a periodic audit that rebuilds the match from scratch.

## 1. Why does accessorial creep fall between departments instead of inside one?

**Accessorial charge creep falls between departments because no single desk owns both halves of the comparison. Procurement holds the contracted rate schedule but rarely sees invoices after signing. AP holds the invoices but matches them to the purchase order and total, not to the accessorial code and its contracted rate. The dock that triggers the charge holds neither document. Each function assumes the drift would surface somewhere else, and because the check requires both documents at once, it surfaces nowhere.**

Three-way matching checks the invoice against the purchase order and the receipt. It confirms a shipment happened and a quantity was received. It does not test whether a liftgate fee matches the rate the contract set for a liftgate fee, because that rate lives in a separate document the matching system was never given.

Procurement's incentive runs the other direction from AP's. Procurement is measured on the rate it negotiates at signing, not on whether that rate holds through the next twelve months of invoices. Once the contract is signed, the schedule is filed, not monitored.

AP's incentive is throughput: invoices approved and paid on time, not invoices matched line by line against a contract most AP clerks have never read. The accessorial line is usually a small dollar amount next to the freight base rate, so it clears review that is scaled to catch large discrepancies, not small recurring ones.

## 2. What does accessorial charge creep actually look like on an invoice?

**Accessorial charge creep looks like an ordinary line item that happens to reference the wrong number. A detention fee billed at a carrier's published rate instead of the negotiated contract rate. A liftgate charge applied to a delivery that did not require one. A reweigh fee stacked on top of a dimensional charge the contract already treats as inclusive. None of these look unusual to a reviewer scanning invoice totals, because each one is a legitimate accessorial code, just priced.**

The invoice format does not distinguish a correctly priced accessorial from a drifted one. Both show the same code, a plausible dollar figure, and a shipment reference that ties back to a real delivery. The only way to tell them apart is to hold the contract's accessorial rate table next to the invoice line and compare the two numbers directly.

Whether a higher fee reflects [real drift or a legitimate change](/guides/margin-drift-vs-legitimate-price-increases-how-to-tell-them) the carrier is entitled to make is a separate question, and one worth checking before disputing a line.

## 3. Is accessorial creep the same problem as a rate card violation?

**No. A rate card violation misprices the base line-haul or service rate itself. Accessorial charge creep misprices, or misapplies, the secondary fees attached around that base rate: detention, liftgate, redelivery, residential, reweigh. The two often travel together on the same invoice, priced against the same stale reference table, but they are separate checks because a contract can hold its base rate correctly while its accessorial schedule has drifted, or the reverse.**

Treating them as one check misses cases where only one half has drifted. A carrier can honor the negotiated line-haul rate exactly, invoice after invoice, while defaulting every accessorial to its own published tariff instead of the schedule negotiated alongside that rate.

The two checks use the same source document, the contract, but two different reference tables inside it. A control built to catch one will not automatically catch the other unless it is built to check both tables independently.

## 4. Which teams should be involved in catching it, and what does each check?

**Three functions each hold one piece of what a working check needs: procurement holds the current contract schedule, AP holds the invoice stream, and the operations team at the dock or plant holds the trigger event. A working control assigns one of them to own the match and requires the other two to feed it current data, rather than leaving the comparison to whichever one happens to notice.**

A control with no named owner degrades within a few renewal cycles, because each function reasonably assumes another has it covered. Naming the owner explicitly, and giving that owner the other two data feeds, is what makes the check durable rather than a one-time exercise.

- **Procurement or contracts:** Maintains the current accessorial rate schedule as a structured reference, updated at every renewal, not just filed at signing.

- **Accounts payable:** Matches each invoiced accessorial code and rate against that current schedule before the invoice is approved, not just against the PO total.

- **Operations or receiving:** Records what actually triggered an accessorial, a late pickup, a liftgate request, so a disputed charge can be verified against the event, not just the invoice.

## 5. Can AP automation software close this gap on its own?

**AP automation software validates an invoice against a purchase order and a receipt at the point the invoice arrives. It cannot, on its own, interpret an accessorial rate schedule that lives as contract language in a PDF outside the ERP, because that schedule was never entered as structured reference data for the tool to match against. The software prevents new errors of the kind it was configured to catch. It does not surface creep in charges it was never told.**

This is a configuration gap, not a software failure. The automation tool will match perfectly against whatever reference table it is given. If the accessorial schedule was never loaded, or was loaded once and never updated at renewal, the tool has nothing current to check against and approves the invoice on PO and receipt alone.

Building that reference table, in a form the automation tool can use, is itself the work of interpreting an unstructured contract into structured rules. That interpretation step sits upstream of the software and has to happen before the software can help.

## 6. How do you actually catch accessorial creep once it has accumulated?

**Catching accumulated accessorial creep means pulling every accessorial line from a period of invoices, rebuilding the contracted rate schedule that should apply to each one, and comparing the two directly, line by line. This is retrospective work: it looks backward across months of billing rather than forward at the next invoice, and it requires someone to hold both documents at once, which is exactly the step that let the drift accumulate in the first place.**

The arithmetic is straightforward once both documents are in hand. Take the invoiced accessorial amount, subtract the amount the current contract schedule would have produced for that same code and quantity, and the difference is the drift on that line. Summed across every accessorial line in the period, that is the recoverable finding.

The harder part is not the arithmetic. It is assembling the current, correct rate schedule in the first place, since the version on file may itself be out of date relative to the last renewal. A [freight and 3PL audit](/glossary/freight-and-3pl-audit) does this reconstruction as a matter of course, because rates on freight contracts change with enough regularity that the filed copy cannot be trusted without checking.

## 7. What stops accessorial creep from coming back after it is corrected?

**A one-time correction fixes the invoices already billed. It does not stop the next rate renewal from drifting the same way, because the underlying cause, no standing owner for the match, is unchanged. Preventing recurrence means someone continues to hold the current schedule and the invoice stream against each other on an ongoing basis, not just once after the finding is quantified.**

The standing version of this check is a continuous one: every new invoice matched against the current accessorial schedule at the time it is approved, with the schedule itself updated the moment a contract renews, not months later.

Building that ongoing match is a different kind of work from the retrospective audit that found the drift. The retrospective work quantifies what already happened; the standing control is what keeps it from happening again. Both matter, and neither substitutes for the other.

For the wider pattern this sits inside, start with the [margin drift](/insights/margin-drift-spend-leakage-guide) guide.

## 8. Frequently Asked Questions (People Also Ask)

### Is accessorial charge creep the same thing as a duplicate payment?

No. A duplicate payment is the same invoice, or the same charge, paid twice. Accessorial charge creep is a single invoice pricing a legitimate fee against the wrong reference rate. They are found the same way, by matching invoices against source documents, but they are different drift types with different causes.

### Who at a manufacturer should own the accessorial rate schedule?

Whoever negotiates the freight or service contract, usually procurement or a logistics manager, should own the schedule as a maintained document. But ownership of the document is not the same as ownership of the match against invoices; that check needs an explicit owner too, whether inside AP or a periodic audit.

### Does three-way matching catch accessorial rate errors?

Three-way matching checks the invoice against the purchase order and the receipt. It confirms quantity and that a shipment occurred. It does not test the invoiced accessorial rate against the contracted accessorial schedule, because that schedule is not one of the three documents the match compares.

### How often do accessorial rate schedules actually change?

They change at every contract renewal or rate amendment. There is no dataset here on how frequently that happens across companies, so no frequency claim can be made. What matters operationally is that the schedule on file needs to be checked against the current signed terms, not assumed current.

### Can a spend analysis tool find accessorial creep?

A spend analysis tool shows spend by vendor and category, which can flag that accessorial spend rose. It does not test whether each line matches the contract rate, which is what margin drift detection does. The two answer different questions.

### Should we dispute every accessorial charge that looks high?

Only where the invoiced rate can be shown to differ from the current contracted schedule, or the trigger event did not occur as billed. A charge that looks high but matches the current contract terms is a legitimate price increase, not drift, and disputing it without that check wastes the relationship and the recovery effort alike.

### What documentation do we need to dispute an accessorial line?

The current signed contract or amendment showing the accessorial rate schedule, and ideally a record of the triggering event, a delivery appointment, a liftgate request, from the receiving side. Without both, a carrier can decline the dispute for lack of support.

### Is this specific to freight, or does it happen elsewhere?

Accessorial-style fees appear in freight and 3PL contracts most visibly, but the same mechanism, a secondary fee schedule drifting away from its contracted reference, shows up in facilities, waste and environmental services, and equipment maintenance contracts with call-out or overtime fee schedules.

### Is contract complexity quietly draining your operating margin?

A small systematic drift between your negotiated contracts and your actual vendor billing compounds quietly across a year of invoices. Stop guessing at your exposure and run a targeted audit.

**[Take the Free Screener → https://valuexpa.com/margin-drift-screener](https://valuexpa.com/margin-drift-screener)**

## Executive Summary

Accessorial charge creep survives because it is nobody's single job. AP pays against the purchase order and the carrier's invoice total, not against the accessorial schedule buried in the contract. Procurement negotiated that schedule once, at signing, and rarely revisits it against live billing. The receiving dock that triggers the actual accessorial, a late pickup, a liftgate request, a residential stop, has no visibility into what the contract permits and no reason to record it for later matching. The mechanism is not fraud. A carrier's default rate table gets applied at billing time, and if the contracted rate table is not the one loaded into the invoicing system, every accessorial on every invoice bills at the wrong reference point. Nobody re-enters that table with each rate renewal, so it drifts quietly behind whichever price list the carrier updates. What changes it is putting one function in charge of matching the invoiced accessorial code and amount against the current contract schedule, on a cadence, rather than assuming the three desks together cover it. That is either a standing control inside AP with the contract schedule loaded as reference data, or a periodic audit that rebuilds the match from scratch.

## 1. Why does accessorial creep fall between departments instead of inside one?

Accessorial charge creep falls between departments because no single desk owns both halves of the comparison. Procurement holds the contracted rate schedule but rarely sees invoices after signing. AP holds the invoices but matches them to the purchase order and total, not to the accessorial code and its contracted rate. The dock that triggers the charge holds neither document. Each function assumes the drift would surface somewhere else, and because the check requires both documents at once, it surfaces nowhere. Three-way matching checks the invoice against the purchase order and the receipt. It confirms a shipment happened and a quantity was received. It does not test whether a liftgate fee matches the rate the contract set for a liftgate fee, because that rate lives in a separate document the matching system was never given. Procurement's incentive runs the other direction from AP's. Procurement is measured on the rate it negotiates at signing, not on whether that rate holds through the next twelve months of invoices. Once the contract is signed, the schedule is filed, not monitored. AP's incentive is throughput: invoices approved and paid on time, not invoices matched line by line against a contract most AP clerks have never read. The accessorial line is usually a small dollar amount next to the freight base rate, so it clears review that is scaled to catch large discrepancies, not small recurring ones.

## 2. What does accessorial charge creep actually look like on an invoice?

Accessorial charge creep looks like an ordinary line item that happens to reference the wrong number. A detention fee billed at a carrier's published rate instead of the negotiated contract rate. A liftgate charge applied to a delivery that did not require one. A reweigh fee stacked on top of a dimensional charge the contract already treats as inclusive. None of these look unusual to a reviewer scanning invoice totals, because each one is a legitimate accessorial code, just priced. The invoice format does not distinguish a correctly priced accessorial from a drifted one. Both show the same code, a plausible dollar figure, and a shipment reference that ties back to a real delivery. The only way to tell them apart is to hold the contract's accessorial rate table next to the invoice line and compare the two numbers directly. Whether a higher fee reflects [real drift or a legitimate change](/guides/margin-drift-vs-legitimate-price-increases-how-to-tell-them) the carrier is entitled to make is a separate question, and one worth checking before disputing a line.

## 3. Is accessorial creep the same problem as a rate card violation?

No. A rate card violation misprices the base line-haul or service rate itself. Accessorial charge creep misprices, or misapplies, the secondary fees attached around that base rate: detention, liftgate, redelivery, residential, reweigh. The two often travel together on the same invoice, priced against the same stale reference table, but they are separate checks because a contract can hold its base rate correctly while its accessorial schedule has drifted, or the reverse. Treating them as one check misses cases where only one half has drifted. A carrier can honor the negotiated line-haul rate exactly, invoice after invoice, while defaulting every accessorial to its own published tariff instead of the schedule negotiated alongside that rate. The two checks use the same source document, the contract, but two different reference tables inside it. A control built to catch one will not automatically catch the other unless it is built to check both tables independently.

## 4. Which teams should be involved in catching it, and what does each check?

Three functions each hold one piece of what a working check needs: procurement holds the current contract schedule, AP holds the invoice stream, and the operations team at the dock or plant holds the trigger event. A working control assigns one of them to own the match and requires the other two to feed it current data, rather than leaving the comparison to whichever one happens to notice. A control with no named owner degrades within a few renewal cycles, because each function reasonably assumes another has it covered. Naming the owner explicitly, and giving that owner the other two data feeds, is what makes the check durable rather than a one-time exercise. - Procurement or contracts: Maintains the current accessorial rate schedule as a structured reference, updated at every renewal, not just filed at signing. - Accounts payable: Matches each invoiced accessorial code and rate against that current schedule before the invoice is approved, not just against the PO total. - Operations or receiving: Records what actually triggered an accessorial, a late pickup, a liftgate request, so a disputed charge can be verified against the event, not just the invoice.

## 5. Can AP automation software close this gap on its own?

AP automation software validates an invoice against a purchase order and a receipt at the point the invoice arrives. It cannot, on its own, interpret an accessorial rate schedule that lives as contract language in a PDF outside the ERP, because that schedule was never entered as structured reference data for the tool to match against. The software prevents new errors of the kind it was configured to catch. It does not surface creep in charges it was never told. This is a configuration gap, not a software failure. The automation tool will match perfectly against whatever reference table it is given. If the accessorial schedule was never loaded, or was loaded once and never updated at renewal, the tool has nothing current to check against and approves the invoice on PO and receipt alone. Building that reference table, in a form the automation tool can use, is itself the work of interpreting an unstructured contract into structured rules. That interpretation step sits upstream of the software and has to happen before the software can help.

## 6. How do you actually catch accessorial creep once it has accumulated?

Catching accumulated accessorial creep means pulling every accessorial line from a period of invoices, rebuilding the contracted rate schedule that should apply to each one, and comparing the two directly, line by line. This is retrospective work: it looks backward across months of billing rather than forward at the next invoice, and it requires someone to hold both documents at once, which is exactly the step that let the drift accumulate in the first place. The arithmetic is straightforward once both documents are in hand. Take the invoiced accessorial amount, subtract the amount the current contract schedule would have produced for that same code and quantity, and the difference is the drift on that line. Summed across every accessorial line in the period, that is the recoverable finding. The harder part is not the arithmetic. It is assembling the current, correct rate schedule in the first place, since the version on file may itself be out of date relative to the last renewal. A [freight and 3PL audit](/glossary/freight-and-3pl-audit) does this reconstruction as a matter of course, because rates on freight contracts change with enough regularity that the filed copy cannot be trusted without checking.

## 7. What stops accessorial creep from coming back after it is corrected?

A one-time correction fixes the invoices already billed. It does not stop the next rate renewal from drifting the same way, because the underlying cause, no standing owner for the match, is unchanged. Preventing recurrence means someone continues to hold the current schedule and the invoice stream against each other on an ongoing basis, not just once after the finding is quantified. The standing version of this check is a continuous one: every new invoice matched against the current accessorial schedule at the time it is approved, with the schedule itself updated the moment a contract renews, not months later. Building that ongoing match is a different kind of work from the retrospective audit that found the drift. The retrospective work quantifies what already happened; the standing control is what keeps it from happening again. Both matter, and neither substitutes for the other. For the wider pattern this sits inside, start with the [margin drift](/insights/margin-drift-spend-leakage-guide) guide.

## Common questions

### Is accessorial charge creep the same thing as a duplicate payment?

No. A duplicate payment is the same invoice, or the same charge, paid twice. Accessorial charge creep is a single invoice pricing a legitimate fee against the wrong reference rate. They are found the same way, by matching invoices against source documents, but they are different drift types with different causes.

### Who at a manufacturer should own the accessorial rate schedule?

Whoever negotiates the freight or service contract, usually procurement or a logistics manager, should own the schedule as a maintained document. But ownership of the document is not the same as ownership of the match against invoices; that check needs an explicit owner too, whether inside AP or a periodic audit.

### Does three-way matching catch accessorial rate errors?

Three-way matching checks the invoice against the purchase order and the receipt. It confirms quantity and that a shipment occurred. It does not test the invoiced accessorial rate against the contracted accessorial schedule, because that schedule is not one of the three documents the match compares.

### How often do accessorial rate schedules actually change?

They change at every contract renewal or rate amendment. There is no dataset here on how frequently that happens across companies, so no frequency claim can be made. What matters operationally is that the schedule on file needs to be checked against the current signed terms, not assumed current.

### Can a spend analysis tool find accessorial creep?

A spend analysis tool shows spend by vendor and category, which can flag that accessorial spend rose. It does not test whether each line matches the contract rate, which is what margin drift detection does. The two answer different questions.

---

ValueXPA runs a fixed-scope Margin Drift Diagnostic that validates every service vendor invoice against contract terms, for $100M+ US industrial manufacturers and distributors. Two to four weeks. The client retains 100% of recoveries. https://valuexpa.com/contact-us
