Why Three-Way Matching Doesn't Catch Contract Violations

Beyond Three-Way Matching: Detect AP Contract Violations Now

Published: September 03, 2026

An invoice can pass three-way matching without a single flag and still be wrong. The quantity on the purchase order matches the receiving report. The price on the invoice matches the purchase order. Accounts payable approves it in seconds and moves on. None of that confirms the invoice follows what both sides signed. A vendor can bill at a rate the contract no longer allows, skip a discount that should have kicked in months ago, or leave out a service credit it owes you, and the invoice will still clear every check the matching software runs. This is a structural gap in how invoice processing and document automation work, not a rare exception, and it shows up most often in the contracts companies rely on for years at a time: staffing agreements, freight contracts, facilities services, multi-year licensing deals.

How Three-Way Matching Works, and Why the Contract Isn't Part of It

Three-way matching compares three internal records:

  • The purchase order
  • The receiving report
  • The invoice

If the quantities line up and the invoice price matches the PO price, the system treats the invoice as clean. That check answers only one question: does this invoice agree with the other paperwork already in the system? It never asks whether the PO itself still reflects the deal.

Take Invoice Validation Beyond Basic Three-Way Matching - Artsyl

Take Invoice Validation Beyond Basic Three-Way Matching

An invoice can match the PO and receipt while still containing pricing or other discrepancies that require attention. InvoiceAction combines AI-powered invoice processing with automated validation and exception workflows.
Strengthen AP controls while reducing the manual effort required to process and review invoices.

Why the PO falls out of date

The PO is a snapshot. It is created once, usually at order time, carrying whatever price and terms were in effect that day. A contract's more complex provisions rarely get rebuilt into every new PO as conditions change: an escalation clause tied to an index, a discount that activates after a volume threshold, a spend cap for the quarter.

Most process automation and RPA tools within the AP stack were built for exactly this kind of check: structured numbers pulled at data entry and compared against each other. They were never built to read contract prose and judge whether it still applies. The contract that governs the relationship sits elsewhere: in a signed file that the procurement or legal team filed away after execution.

Why nobody can check it anyway

That file is usually a scanned or exported PDF that nobody made searchable. Document capture and data capture systems are built to pull structured fields off invoices, receipts, and purchase orders: line items, totals, dates. Contracts rarely run through that same pipeline. They get signed, scanned, and archived as a flat image instead.

So if someone in AP wanted to double-check an invoice against the contract language, they'd have to open that image and read it end to end. They can't search it the way they'd search a normal file. Before contract terms can be checked against anything, the contract has to exist as text a person can query.

If your signed agreements are sitting around as scans nobody can search, the first fix is boring but necessary: fix a PDF that doesn't work with Ctrl+F before you try to reconcile it against anything else.

Recommended reading: How to Make Scanned PDFs Searchable with OCR Software

Four Contract Terms That Slip Past Invoice Matching

Some contract provisions are almost guaranteed to fall outside what a PO snapshot carries forward. These four show up constantly in vendor and services contracts, and none of them will ever trigger a three-way match exception on their own.

Volume discounts that never trigger

Many supply and services contracts drop the unit price once cumulative purchases cross a set threshold, for example a 5% cut once the buyer hits $500,000 in orders for the year, though the exact numbers vary by deal. Each PO is created at the base rate, and each invoice cleanly matches its own PO. Nothing in that process tracks running volume against the contract's tier schedule. A company can cross the threshold in month six and keep paying full price through month twelve, because the discount only applies if someone manually compares cumulative spend against the clause. Each invoice matches on its own terms; the running total across all of them doesn't.

Escalation formulas that outrun their cap

Multi-year service and staffing contracts often tie annual rate increases to an index, capped at a ceiling such as 3% per year. Vendors sometimes apply the wrong base year, compound an increase that should be simple, or round in their own favor. A facilities contract billed at $95 an hour, even though the signed rate schedule says $85, will still match perfectly against a PO that was never updated to catch the drift. The same problem shows up in freight contracts, where the billed rate quietly deviates from the tariff on file, or the fuel surcharge formula is applied incorrectly.

Spend caps that only exist on paper

Consulting and staffing agreements frequently include a not-to-exceed limit: a hard cap on total spend per project, per vendor, or per quarter. Matching software checks each invoice against its own PO, not the running total against the master contract's ceiling. A vendor can submit 14 separate invoices over a quarter, each individually clean, that together cumulatively blow past a cap nobody was watching. The overage only becomes visible when someone sums the invoices by hand and compares the total to the contract, which almost never happens until a budget review forces the question.

Service credits nobody applies

Contracts with performance guarantees, uptime commitments in an IT services agreement, response-time standards in a facilities contract, usually specify a credit owed to the buyer when the vendor misses the target. That credit is a liability the vendor owes, not a line item on their invoice. Matching software has no visibility into whether an SLA was breached last month, so unless someone on the buyer's side is tracking performance data separately and filing a deduction, the credit never gets applied. The business ends up paying in full for a service for which it was contractually owed a credit.

Build Smarter Processes From the Data Inside Your Documents - Artsyl

Build Smarter Processes From the Data Inside Your Documents

Automation cannot validate information it cannot access. docAlpha intelligently captures, classifies, and structures data from business documents for downstream processing.
Create a stronger data foundation for AI automation, analytics, validation, and exception management.

What the Gap Costs

None of these misses is individually large enough to draw attention. That's why the total adds up. Research from World Commerce & Contracting puts the average value a business loses on a contract after signing it at 9.2%. The report doesn't break that figure down by cause, but billing and payment drift sits squarely inside what it's measuring: discounts that never trigger, rates that outrun their cap, credits nobody claims.

The reason this persists is that catching it after the fact is expensive, and most companies never set up a way to catch it before. Even organizations that have invested in intelligent automation and data analytics on the invoice side rarely extend the same discipline to the contract side, because the two live in different systems and get reviewed by different teams. An entire recovery-audit industry exists because manually comparing years of invoices against the fine print of a signed contract is slow enough that most companies only do it when a budget shortfall forces the question, or when they hire a firm on contingency to find the money. By the time that happens, a company has usually been overpaying or under-collecting for a year or more on a single contract, multiplied across however many vendor relationships share the same terms.

Recommended reading: Learn How Invoice Reconciliation Helps Detect Billing Errors and Overpayments

Closing the Gap Without Rebuilding Your AP Stack

Fixing this doesn't require a new digital platform bolted onto AP or a rebuild of the invoice automation you already run. Most contracts are flat-fee with no variable terms to track, and reviewing them adds no value. The risk concentrates in a specific, identifiable slice of your vendor base.

  1. Flag which contract types carry variable terms. Multi-year staffing agreements, freight and logistics contracts, facilities services, anything with a true-up clause or an index-linked rate. Flat one-time purchases don't need this scrutiny.
  2. Pull the numbers that matter into a short reference at signing. Discount tiers, escalation formula and cap, spend ceiling, SLA credit terms. That reference gives AP something concrete to check an invoice against without rereading forty pages of contract language every time a bill comes in. At the same time, legal still reviews the contract itself.
  3. Route flagged vendors for a second look at the moments that matter most. Renewal dates, the month a volume threshold is likely to hit, the anniversary when an escalation clause resets. That's a far smaller lift than manually rechecking every invoice against every contract.
  4. Keep the underlying contracts stored as searchable text. A reference sheet still eventually points back to the original language, and if that original is a flat scan, someone ends up back at square one, rereading a document they can't search.
Build Better Financial Controls From the Order Forward - Artsyl

Build Better Financial Controls From the Order Forward

Invoice accuracy often depends on the quality of the transaction created earlier in the process. OrderAction automates customer PO processing and validates critical order data before it enters downstream systems.
Reduce errors at their source and create a more reliable order-to-cash workflow.

None of this replaces three-way matching, and it isn't meant to. Matching does what it was built to do: confirm that internal paperwork agrees with itself. Whether that paperwork matches what you signed is a separate question, and for most companies, nobody's asking.

Recommended reading: Discover How Three-Way Matching Works in Invoice Processing

Looking for
Document Capture demo?
Request Demo