Can three-way match catch accessorial charge creep?

Three-way matching checks a PO, receipt and invoice. It never opens a carrier tariff, so accessorial charge creep passes through it unseen. Read the full guide.

Twitter LinkedIn WhatsApp
Ask AI: ChatGPT Claude Gemini Grok
Can three-way match catch accessorial charge creep?

Margin drift is the gap between what a vendor contract says and what the invoice actually charges. Accessorial charge creep is one specific form of it: a liftgate, redelivery, or residential fee that appears on an invoice without a matching, currently valid clause in the freight contract behind it.

This page answers a narrow question directly: can the three-way match your AP team already runs catch that. The short answer is no, and the reason is worth understanding before you assume the control you have is doing a job it was never built to do.

Executive Summary

Three-way matching confirms that an invoice agrees with a purchase order and a receipt. It says nothing about whether the accessorial charges riding on that invoice, the liftgate fee, the residential surcharge, the redelivery charge, match a rate schedule anywhere. Accessorial charge creep lives in a document three-way match never opens: the carrier's accessorial tariff.

The mechanism is structural. A purchase order for a shipment authorizes a shipment. It does not enumerate which accessorials apply, at what rate, or under what condition. The receipt confirms goods arrived. Neither document carries the tariff table an invoice line should be checked against, so the control has nothing to compare the charge to and passes it through by default.

What changes this is checking the accessorial line against the contracted tariff itself, not against the PO or receipt. That is a different control, run against a different document, and it is the piece a diagnostic adds on top of whatever three-way matching already does.

1. What does three-way match actually check?

Three-way matching compares three documents: the purchase order, the goods receipt, and the invoice. It confirms that the item ordered, the quantity received, and the amount billed agree with each other. It is a control against overbilling on quantity and unit price for the core line item.

It was never designed to hold a second document, a carrier's accessorial tariff, and cannot flag a charge that has no corresponding line on the PO to begin with.

The control's whole logic depends on three documents describing the same transaction from three angles. Quantity ordered, quantity received, quantity billed. Price quoted, price billed. When all three agree, the invoice clears.

An accessorial charge does not have a corresponding entry on a freight purchase order in the way a unit price does. The PO authorizes moving a shipment from origin to destination. The accessorial, a liftgate at delivery, a redelivery attempt, a residential surcharge, is a condition of that specific delivery, not a line item anyone priced in advance.

So the match has nothing to test the accessorial against. It sees a charge, sees no PO line that contradicts it, and clears the invoice. The absence of a conflict is read as agreement, when it is really the absence of a check.

2. Why does accessorial charge creep slip past AP controls?

Accessorial charge creep slips past standard AP controls because those controls test the invoice against the PO and receipt, not against the carrier's tariff schedule that actually governs whether a fee applies. A liftgate fee billed on a dock delivery, or a residential surcharge billed on a commercial address, is wrong relative to the tariff and the delivery conditions, a comparison no three-way match performs.

An accessorial fee is either owed or not owed based on facts about the specific delivery: was the address residential, was a liftgate requested, did the driver attempt delivery twice. None of those facts live in the PO or the receipt. They live in the delivery record and the carrier's tariff.

A rate card or tariff schedule states the condition that triggers each fee and the amount it carries once triggered. Checking a charge against that document requires reading the tariff and the delivery record side by side, then comparing the result to the invoice line. That is a contract compliance check, not a matching check.

Because no standard AP workflow routes an invoice through that comparison, an accessorial fee that was never earned can sit on an invoice indefinitely with no control positioned to catch it.

3. What documents does catching this actually require?

Catching accessorial charge creep requires three things three-way match never touches: the carrier's current accessorial tariff, the delivery record showing what actually happened at the dock, and the invoice line itself, read together. The tariff states the trigger condition and the rate; the delivery record states whether the condition was met; the invoice states what was charged. Agreement across all three is what the PO and receipt comparison cannot substitute for.

The tariff is the anchor document. It names each accessorial, the condition that triggers it, such as a residential address or a delivery attempt beyond the first, and the dollar amount tied to that condition.

The delivery record, whether a bill of lading, a proof of delivery, or a dispatch note, states what actually happened. Was a liftgate used. Was the address commercial or residential. Was there a second attempt.

Only with both documents in hand does the invoice line become checkable. Without the tariff, there is no rate to compare against. Without the delivery record, there is no fact to test the tariff's condition against. A control missing either piece cannot resolve the charge, it can only note that the charge exists.

4. Can automation or OCR close this gap on its own?

Automation and OCR read what is printed on an invoice faster and more consistently than a person, but reading a charge is not the same as validating it. Neither technology supplies the missing input, the carrier's tariff and its trigger conditions, that the comparison actually needs. Automation without that reference data will process an unearned accessorial charge exactly as fast as it processes an earned one.

OCR extracts line items, amounts and codes from a scanned invoice into structured data. That is valuable for speed and for eliminating manual entry errors, and it is complementary to a validation control rather than a substitute for one.

What OCR does not do is know that a liftgate fee requires a liftgate request on file, or that a residential surcharge requires a residential delivery address. That knowledge sits in the tariff, and unless the tariff's rules are loaded into the system as a rule set the software checks against, the software has no basis to flag the charge.

So automation changes how fast an invoice moves through AP. It does not, by itself, change whether an unearned accessorial charge is caught, unless the tariff logic has been built in as a distinct rule layer.

5. Where should accessorial validation sit in the AP process?

Accessorial validation belongs as a distinct check that runs after three-way match clears an invoice, not instead of it. Three-way match still confirms quantity and core pricing agree with the PO and receipt. A separate rule set then reads each accessorial line against the current tariff and the delivery record before the invoice is approved for payment, catching what the first control was never built to see.

Sequencing the two controls matters more than choosing one over the other. Three-way match remains the right first pass: it is fast, automated in most ERPs, and correctly scoped to quantity and unit price.

Accessorial validation runs as a second, narrower pass focused only on the fee lines a freight or logistics invoice carries. It needs its own reference data, the current tariff, kept current as carrier contracts renew, because a stale tariff validates against rates that no longer apply.

Treating the two as one control, or assuming clearing the first means the second happened, is exactly how an unearned accessorial fee reaches payment without anyone testing it against the document that actually governs it.

6. How does this connect to other categories of margin drift?

Accessorial charge creep sits inside a family of drift types where the gap is between contract terms and invoice reality rather than between a PO and an invoice. Volume tier misapplication, index escalation misapplied, and not-to-exceed overrun all share the same structural cause: a control tuned to catch quantity and price errors, applied to a category where the real risk lives in a separate contract document the control never reads.

Each of these drift types requires reading a different reference document, a rate tier schedule, an index formula, an NTE cap, against the invoice, using the same logic as the accessorial case: find the governing clause, find the fact that triggers it, compare that to what was billed.

This is why a freight and 3PL audit treats accessorial charges as one checkpoint among several rather than the whole exercise. The tariff check catches accessorial creep specifically; it says nothing about whether the base linehaul rate still matches the rate card, which is a separate comparison against a separate clause.

A reader who wants the full method for any one of these categories should treat them as parallel checks, not variations on three-way match, each requiring its own reference document and its own comparison.

For the wider pattern this sits inside, start with the margin drift guide. See also the six categories drift hides in and what is margin erosion? causes and prevention for manufacturers.

7. Frequently Asked Questions (People Also Ask)

Does three-way matching prevent freight overbilling in general?

It prevents a narrower problem: billing a different quantity or unit price than the purchase order and receipt state. It does not test whether an accessorial fee was actually earned on a given delivery, because no accessorial rate lives on a typical freight PO for it to compare against.

What is the difference between three-way match and a tariff check?

Three-way match compares the PO, the receipt and the invoice for agreement on quantity and price. A tariff check compares an accessorial invoice line against the carrier's tariff and the delivery record to confirm the fee's trigger condition was actually met.

Can a good ERP system catch accessorial charge creep automatically?

An ERP can catch it only if the carrier's current tariff and trigger conditions are loaded as a rule set the system checks invoices against. Without that reference data built in, the ERP has nothing to compare the accessorial line to and will approve it.

Is accessorial charge creep the same as a duplicate payment?

No. A duplicate payment is the same invoice or charge paid twice, which three-way match can sometimes catch through document matching. Accessorial charge creep is a single charge that was never earned under contract, a different failure that matching does not test for.

What documents do I need on hand to check an accessorial charge myself?

You need the carrier's current accessorial tariff naming each fee and its trigger condition, and the delivery record, such as a proof of delivery or bill of lading, showing what actually happened at the dock. Compare both to the invoice line before approving it.

Why would a fee that was valid last year suddenly be wrong now?

Carrier tariffs update on their own schedule, often annually or at contract renewal. A rule set built against last year's tariff will validate charges against rates and conditions that no longer apply, so the tariff reference has to be refreshed each time the carrier updates it.

Does this apply to accessorials outside of freight, like utilities or facilities invoices?

The same structural problem shows up anywhere a service contract has clauses a purchase order does not capture. A utilities and energy audit or a facilities and janitorial audit checks invoice line items against the contract's own rate and condition language, not against a PO, for the same reason described here.

Should I stop relying on three-way match if it cannot catch this?

No. Three-way match still correctly catches quantity and core price errors and should stay in place. The fix is to add a separate, narrower check for accessorial lines against the tariff, not to remove or weaken the match you already have.

Who should own the accessorial tariff validation, AP or procurement?

Either can own it as long as the tariff stays current and someone is accountable for updating the reference data at contract renewal. What matters more than which team owns it is that the check exists as a distinct step, separate from the PO-and-receipt match.

Margin Drift Resources