Vrocure Blog · Logistics
The Three-Way Match: How to Stop Overpaying Supplier Invoices
By The Vrocure Team · 2026-05-28 · 6 min read
The three-way match is one of the oldest controls in procurement, and it is boring in exactly the way good controls should be. It compares three documents before a penny leaves your account — and it catches the quiet, everyday errors that add up to real money over a year.
The three documents
- The purchase order — what you agreed to buy, at what price, in what quantity
- The goods received note — what actually turned up and was accepted
- The invoice — what the supplier is asking you to pay
When all three agree, the invoice is cleared to pay. When they do not, it is held for someone to investigate. That is the whole mechanism — and its power is in what "do not agree" surfaces.
What the match catches
- Price creep — the invoice bills a higher unit price than the PO agreed
- Quantity drift — you are billed for 100 but 92 were delivered
- Duplicate invoices — the same invoice submitted twice, a genuinely common accounts-payable leak
- Phantom deliveries — an invoice for goods that never arrived
- Unauthorised extras — line items or charges that were never on the PO
None of these need to be malicious. A supplier’s system re-sends an invoice; a short shipment is billed in full by mistake; a price rise is applied early. Without a match, they are simply paid.
The tax trap
One subtlety trips up automated matching: tax. An invoice gross of £672,000 against a PO of £560,000 looks like a 20% overbill — until you notice it is exactly UK VAT on the net. A match has to compare like for like: net invoice against net PO, with tax handled separately. Compare gross-to-net and every VAT-registered invoice fails for the wrong reason.
Why it usually does not happen
The reason teams skip the three-way match is not that they doubt it — it is that the three documents live in three places. The PO is in one system, the delivery note is a slip in a folder, the invoice is a PDF in an inbox. Matching them by hand for every order is tedious, so it gets done on the big invoices and skipped on the rest, which is exactly where the leaks accumulate.
Automate the boring control
When the PO, the delivery status, and the invoice already live against the same order, the match is automatic — the system compares net-to-net within tolerance and flags only the ones that disagree. That is how Vrocure handles it: submitted invoices are matched to their PO and receipt, held if they break the match, and reconciled into committed-versus-billed spend so you can see the gap at a glance. The control finally runs on every invoice, not just the large ones.