On this page
Ask an accountant from outside construction how to approve a vendor invoice and you’ll hear “three-way match.” Check the invoice against the purchase order, check both against what was received, pay if they agree. It’s one of the oldest controls in accounts payable, and it works beautifully for buying 400 boxes of drywall screws.
Construction AP spends most of its money on things that don’t arrive in boxes. A subcontractor bills 35% of a scope that’s half underground. A supplier ships part of an order to the site and part to a laydown yard. The invoice is a G702 with a continuation sheet, less retainage, with a lien waiver that may or may not be attached. The match still matters. It just needs a construction version.
The textbook version
The classic three-way match compares three documents:
- The purchase order: what you agreed to buy, at what price.
- The receiving record: what actually showed up, and in what condition.
- The invoice: what the vendor wants to be paid.
If quantities and prices agree within tolerance, the invoice is approved. If not, it’s held until someone explains the difference. A two-way match skips the receiving step and only compares the PO to the invoice, which is faster and weaker.
The construction version
For material purchases, the textbook version mostly holds. The receiving record is a signed delivery ticket or a super’s confirmation in the daily log.
For subcontracts, the three legs change shape:
| Leg | Materials (PO) | Subcontract |
|---|---|---|
| What was agreed | PO lines, quantity × unit price | Subcontract value, its schedule of values, approved change orders |
| What was received | Delivery ticket, receiving report | PM’s verification of progress by SOV line |
| What’s billed | Vendor invoice | Sub’s pay application, less retainage |
The “receiving” leg for a sub is a judgment call: does the PM agree the work is 35% complete on that line? That’s why sub pay apps go to the PM before AP, and why they often get adjusted. The PM isn’t checking a box count. They’re agreeing with a progress claim.
The fourth leg: compliance
Construction adds a gate the textbook doesn’t have. Even when the amounts match, you usually shouldn’t release payment until compliance is in order:
- Lien waivers. Typically a conditional waiver for the current payment and an unconditional waiver for the previous one. Missing waivers are a lien risk and often a contract violation with the owner.
- Insurance. A current certificate of insurance meeting the subcontract’s requirements.
- Certified payroll, on prevailing wage jobs.
- Contract paperwork: signed subcontract, W-9, any required bonds.
On our sample job, Apex Steel and CoreDry are missing lien waivers. Their invoices may match perfectly on amount and still shouldn’t be paid until the waivers are in.
Where the match breaks
Here are the failure modes we hear about most, using the Riverside Medical sample data.
The invoice exceeds the remaining commitment. INV-4471 is $6,150 over what’s left on PO-118. The two-way match catches it. But the reason is the interesting part: maybe Volt did extra work under an approved owner change order whose matching commitment change never got issued. Maybe it’s a pricing error. Maybe it’s scope creep nobody approved. The match tells you there’s a gap. It doesn’t tell you which one.
Progress is billed ahead of the work. The sub bills 60% on a line the super would put at 40%. Without a field record of what’s installed, the PM is approving from memory, or not at all.
Retainage math drifts. The subcontract says 10% retainage, reducing to 5% at 50% complete. The sub’s pay app reduces it a month early. Nobody notices until the final payment doesn’t reconcile.
Partial deliveries. A supplier bills the full PO, but only half the material arrived. The delivery ticket is in the super’s truck.
Coding. The invoice matches but gets coded to the wrong cost code. The match passes, and the job cost report is wrong for months.
What a good construction match checks
A practical checklist for every sub or supplier invoice:
- Commitment exists and is current, including approved commitment change orders.
- Invoice to date doesn’t exceed the commitment (or the overage has a reason and an approver).
- Progress by line is verified by someone who has seen the work, ideally with a field record behind it.
- Retainage matches the subcontract terms for this point in the job.
- Compliance documents are on file for this payment.
- Cost coding matches the commitment’s cost codes.
- Previous payments reconcile: what they say you paid is what you paid.
Why it’s slow
Each leg lives somewhere different. The commitment and its change orders are in accounting or the PM platform, often both, not always in sync. Progress lives with the PM and the super. Compliance documents live in email and a shared drive. The invoice arrives as a PDF. AP spends the week assembling the four legs before anyone can make a decision.
That’s the part software can fix. The judgment calls (is this work really 60% done, should we pay ahead of a pending CO) belong with people.
What we’re building
In os.construction, commitments and their change orders are project records. The company Accounting AP implementation can match a bill to a commitment and its approved changes, and compare purchase-order lines with receipts. A match supports review; it does not establish that field progress or compliance documents have been independently verified.
The AP agent remains planned. Availability and coverage of accounting workflows should be confirmed for your company. See how Project Financials and company Accounting meet and subcontracts and commitment changes.
Share this article