Matching what you ordered against what arrived against what you were billed is exactly the shape of work a model does well: high volume, well-defined, and verifiable line by line. The value is not the matching itself — it is that every mismatch gets seen instead of paid.
Key takeaways
In most small construction businesses, invoice approval works like this: the invoice arrives, someone who is busy glances at the total, decides it looks about right, and approves it. The purchase order is in a different system. The packing slip is in the truck, or on a nail in the site trailer, or gone.
Three-way matching is the discipline that closes that gap — comparing the purchase order (what you agreed to buy), the packing slip or delivery receipt (what actually arrived), and the invoice (what you are being asked to pay). Everyone knows it is the right way to run purchasing. Almost nobody does it manually at volume, because it is tedious. Which is the entire argument for automating it.
Document extraction converts each of the three documents into structured lines: item, description, quantity, unit, unit price, extended amount, plus header fields like the PO number, supplier, date and tax. Matching then aligns them — PO line to delivery line to invoice line — and reports what does not reconcile.
The categories of exception are worth knowing because they are the output you actually consume. Quantity variance, where less arrived than was billed, or more. Price variance, where the invoice rate differs from the ordered rate. Item substitution, where the yard sent an equivalent and it is not, quite. Unmatched invoice lines, including delivery, fuel and environmental charges that were never on the order. Duplicate invoices, which are far more common than most contractors believe. And missing documents — billed with no delivery evidence at all.
Set the tolerances deliberately
A match rule with no tolerance flags everything and gets ignored within a week. A rule with a wide tolerance passes real losses.
Set a small absolute and percentage tolerance for price variance, and treat any quantity shortfall as an exception regardless of size — a short delivery is a site problem before it is an accounting one.
Freight, fuel and environmental handling charges should be expected line types rather than perpetual exceptions, or the noise will bury the signal.
Review the exception rate monthly. A supplier whose invoices generate exceptions every month is telling you something about their process or yours.
There is a reason to capture specific fields rather than whichever ones happen to extract cleanly. To claim an input tax credit, a registrant must obtain prescribed information before filing the return, and the Input Tax Credit Information (GST/HST) Regulations set that information out by amount. Under $100 the supporting documentation needs the supplier’s or intermediary’s name, the date, and the total. From $100 to under $500 it must also carry the registration number assigned to that supplier or intermediary, together with the tax amount or the applicable statement about tax included. At $500 or more it must in addition show the recipient’s name, the terms of payment, and a description of each supply sufficient to identify it.
Notice how neatly that maps onto matching fields you are extracting anyway. The supplier registration number and the description-sufficient-to-identify requirement are the two most commonly missing, and both are catchable at the point the invoice is read rather than eleven months later.
Retention is the other half. Under the Income Tax Act, every person carrying on business must keep records and books of account, and must retain them together with every account and voucher necessary to verify the information in them — for records with no prescribed period, until six years from the end of the last taxation year to which they relate. The Act also requires that records kept electronically be retained in an electronically readable format. A matching system that stores the three source documents against each transaction is, incidentally, a compliant filing system.
One thing matching will surface that has nothing to do with arithmetic: whose terms the purchase is actually on. Your purchase order carries your terms; the supplier’s invoice and delivery docket carry theirs, and they conflict. Which set governs is a genuine legal question with a name — our sister firm sets it out in battle of the forms: purchase orders in Ontario.
The practical version: if your matching process keeps finding restocking charges, delivery minimums or price escalation clauses that nobody agreed to, the fix is upstream in the ordering terms, not downstream in the approval queue. Similarly, if you pay subtrades as well as suppliers, keeping the documentation clean is what supports the deduction — see whether subcontractor payments are deductible — and any holdback withheld from a subtrade invoice follows its own statutory rules, covered in holdback under the Construction Act.
A contractor running roughly 180 supplier invoices a month across four projects turns matching on. In the first month the system processes every invoice against its PO and available delivery documentation and raises 23 exceptions.
Fourteen are noise once tolerances are tuned — freight lines and rounding. Nine are not. Two are duplicate invoices for the same delivery, one of which had already been approved. Three are quantity shortfalls where the yard billed the full order and delivered part of it, with the balance never sent. Two are price variances where an account price had been superseded and nobody was told. One is a substituted product at a higher rate. And one invoice has no delivery documentation of any kind, which turns out to be material delivered to a different contractor’s site.
Not one of those nine required cleverness. Every one of them required somebody to compare three documents that were in three different places, which is the thing that never happens on a Thursday afternoon. The approval still goes to a person — the system’s job ends at "here are nine things that do not reconcile".
Yes, and that is often the real project. Matching against a PO that does not exist is not matching. If your ordering is currently done by text message, the first phase is issuing numbered orders at all — the extraction and matching are the easy half.
It can route them and pre-approve exact matches within a threshold you set, but the authorisation to pay should rest with a named person. The control that matters is that someone with authority looked, and no software provides that.
A photograph works. The extraction handles a photographed docket the same way it handles a PDF, which is usually what makes site delivery evidence available at all. Related back-office workflows are covered in the admin tasks eating your week.
A 30-minute call is enough to tell you whether AI pays for itself here.