Esc

↑↓ move↵ openIndex · Pagefind

The 3-way match, explained for construction AP

The textbook 3-way match is a purchase order, a receiving report and an invoice. Construction AP needs a version that works for subcontracts, progress billing, retainage and lien waivers. Here's what to match, and where it breaks.

Charley Forey5 min readAccountingAPCommitments
On this page
  1. The textbook version
  2. The construction version
  3. The fourth leg: compliance
  4. Where the match breaks
  5. What a good construction match checks
  6. Why it’s slow
  7. What we’re building

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:

  1. The purchase order: what you agreed to buy, at what price.
  2. The receiving record: what actually showed up, and in what condition.
  3. 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.

COMMITMENTSubcontract + COsPROGRESSPM-verified by lineINVOICEPay app less retainageMATCHWithin tolerance?COMPLYWaiver, COIPAY
The construction match: three legs plus a compliance gate before money moves.

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.

Sample dataRiverside Medical Center, Job #24-118. Volt Electric invoice INV-4471 for $48,200 against PO-118, which has $42,050 of commitment remaining. Fictional companies, realistic workflow.

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:

  1. Commitment exists and is current, including approved commitment change orders.
  2. Invoice to date doesn’t exceed the commitment (or the overage has a reason and an approver).
  3. Progress by line is verified by someone who has seen the work, ideally with a field record behind it.
  4. Retainage matches the subcontract terms for this point in the job.
  5. Compliance documents are on file for this payment.
  6. Cost coding matches the commitment’s cost codes.
  7. Previous payments reconcile: what they say you paid is what you paid.
Try thisPull the last month of held invoices. For each one, note which leg failed: commitment, progress, compliance or coding. If most fail on the commitment, your change order process is the AP problem, not AP.

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

Written by

Charley Forey

Founder of os.construction. We're building the operating system for construction. Project Financials follows job money, and company Accounting covers the books and controls. AI agents remain planned. We write about how money and data actually move on a job, and we build in public.

Apply to the founding program →Start a free trial →
Open file