Start free

Three-Way Match in Construction: How It Works and Where It Breaks

Accountant compares purchase, receipt, and invoice records

A three-way match in construction checks three records before you pay a bill: the purchase order (or subcontract) that authorized the spend, the proof that the material or work arrived, and the vendor’s invoice. If all three agree on quantity, price and total, the invoice is approved. If they do not, it stops for review. The idea is simple. The jobsite is what makes it hard: partial deliveries, tickets signed on a tailgate, progress billings and change orders all break the textbook version. The way to make it work is to run the match inside the same system that holds your commitments, cost codes and payables, which is how we built our construction ERP.

Designflow-build
Keep Project Costs Connected
DesignFlow Build brings project management, accounting, and field operations together to reduce manual work across construction projects.
Visit

TL;DR

Table of Contents

What a three-way match is in construction accounting

Three-way matching is an accounts payable control. GEP’s guide describes it as comparing the supplier invoice against the purchase order and the goods receipt, line by line, before payment is released. For a contractor, the three records look like this:

Record What it proves Typical construction form
Purchase order or subcontract The spend was authorized, at an agreed quantity and price PO against a job and cost code, signed subcontract, rental agreement
Receiving record The goods arrived or the work was done Delivery ticket, packing slip, equipment ticket, approved timesheet, field-verified percent complete
Vendor invoice What the vendor is asking you to pay Material invoice, rental invoice, subcontractor pay application

Two-way matching stops at the PO and invoice. It is faster, but it cannot tell you whether the concrete was actually poured or the pallets actually landed. That is why the third leg matters on jobs where material is delivered to a site and signed for by someone who is not in the office.

Why contractors care more than most businesses

A contractor’s margin lives in job cost. An overbilled invoice that slips through lands on a specific cost code of a specific job, and you often find it only when the work-in-progress report shifts. Paying for material that never arrived, or paying twice for the same delivery, comes straight out of the job’s profit. The match is the gate that keeps committed cost, received cost and billed cost aligned.

It is also an audit topic. The three-way match is a recognized control activity under COSO’s Internal Control framework and is commonly tested for public companies under SOX Section 404, according to this CPA-oriented glossary entry. Most contractors are not public, but lenders, sureties and owners all like to see that payments follow a documented approval path.

How the three-way match process works, step by step

The sequence below follows the standard AP process described in GEP’s three-way matching guide, with the construction version of each step added.

  1. Issue the PO or subcontract. The purchase requisition is approved and the PO records items, quantities, agreed unit prices, taxes, delivery and payment terms. In construction, tie it to a job and a cost code at this point. A PO with no cost code is the first place the match fails later.
  2. Record the receipt. When the supplier delivers, someone inspects the shipment against the packing slip and the PO, notes damage or shortfalls, and records a goods receipt. On site that is often the foreman or superintendent, which is why a phone-based receipt beats a paper ticket that reaches the office a week later.
  3. Capture the invoice. The supplier invoices with the PO number on it. Data entry here is where most errors and delays start, so the fewer times a number is typed, the better.
  4. Compare line by line. The system or the AP clerk checks supplier name, PO number, item descriptions, quantities, unit prices, taxes, freight and payment terms across all three records.
  5. Apply tolerance. Small variances are allowed within thresholds you define. Many organizations use a band of roughly 1% to 3% or a small dollar amount, per the same CPA glossary. Pick your own numbers and write them down.
  6. Route exceptions. If the match fails, the invoice is held and sent to the person who can resolve it: the project manager for quantity or scope, purchasing for price, the superintendent for receipt.
  7. Approve, pay and keep the file. Once the records reconcile, the invoice is approved and paid on terms, and the PO, receipt and invoice are kept together as the audit trail.

Our own guide to invoice approvals in construction covers the approval routing side of this in more depth.

Handling the jobsite realities

A warehouse-style match assumes one PO, one delivery, one invoice. Construction rarely cooperates. Four situations come up constantly.

Partial deliveries

A vendor ships 60% of a material order Monday and the rest next week, then bills once for the whole thing. Track received, accepted, damaged, returned, invoiced, approved and remaining quantities as separate numbers, as this construction matching workflow recommends. If you track only “received,” you cannot tell whether a short shipment, a rejection or a billing error is behind a mismatch.

Services, rentals and subcontract work

There is no goods receipt for a framing crew. For services, plant, rentals and subcontract work, use whatever your policy defines as proof: the approved contract, a service entry, a timesheet, a valuation, progress evidence or an acceptance record. Do not invent a goods receipt to satisfy the system. For subcontractor pay applications, the “receipt” is the approved percent complete against the schedule of values. Our glossary entry on AIA G702/G703 billing explains the document most subcontractor progress billings follow.

Change orders

An invoice that bills for extra work with no approved change order is an over-PO invoice by definition. The match should compare against the committed value including approved change orders, and nothing else. Unapproved changes belong in a pending state, not in the payable.

Freight, substitutions and price adjustments

Suppliers substitute products, add fuel surcharges and adjust prices mid-job. Legitimate variances exist, and a system that blocks everything forces people into workarounds that are harder to audit than the variance itself. For many contractors, the practical approach is advisory matching: flag the mismatch, show the reason and require the reviewer to record a decision, as this contractor-focused guide suggests.

Common discrepancies and how to resolve them

The most useful habit is to give every match a plain-language result. A simple set works well for contractors, based on the categories in the same contractor guide:

Result What it means Who usually resolves it Typical fix
Match clean Bill, PO and receipt agree closely enough Nobody, it proceeds Approve for payment
Over PO Vendor billed more than the commitment Project manager and purchasing Approve a change order, negotiate the bill, or reject the excess
Under PO Vendor billed less than the commitment Purchasing Confirm the balance is still open or close the PO
Not fully received Bill includes quantities that have not arrived Superintendent or foreman Confirm delivery, hold payment on the missing portion

Other mismatches you will see regularly:

Write the language so a project manager can act on it without translating accounting jargon. “Billed 120 sheets, received 80” gets a faster response than “quantity variance exception.”

Controls that keep the match accurate and auditable

A match is only as good as the rules around it. Put these in writing:

The cleanest way to enforce all of this is to have it in the system, not in a memo. A rule that lives only in someone’s head disappears when that person goes on vacation.

Where automation helps and where people still decide

Manual matching in spreadsheets works at ten invoices a month. It collapses at a few hundred. A construction accounting automation guide from an accounting firm describes AI handling extraction, matching and coding of subcontractor invoices, material bills and equipment rental charges, with exceptions routed to a human reviewer. For firms processing 200 or more subcontractor invoices per month, it describes the recaptured staff time as substantial.

A sound automated flow looks like this:

  1. All invoices enter through one intake point, not scattered inboxes.
  2. Software reads the supplier, job, invoice type and PO reference.
  3. It pulls the commitment balance, approved change orders and prior payments from your ERP.
  4. Clean invoices with a valid PO and receipt move forward on their own.
  5. Exceptions land in a role-based queue with the reason attached.
  6. Every decision, comment and override is logged.

That shape follows the target-state workflow described by SysGenPro, which also notes that disputed quantities, unsupported change orders and compliance gaps still need a person.

The point is not removing people. It is making sure they spend time on the five invoices that need judgment instead of the ninety-five that do not. Judgment calls such as cost-to-complete estimates stay with your team, and AI-assisted extraction and coding is a good example of where machines take over the repetitive part of a job while crews and managers keep the decisions that need field knowledge.

For a closer look at which approvals to automate and which to keep manual, see our piece on automated approvals in construction.

Why the match works best inside one system

The most common reason a three-way match fails is not the invoice. It is that the three records live in different places. POs are in a spreadsheet, receipts are texts from the field, and payables are in an accounting package that knows nothing about the commitment. Someone has to reconcile them by hand, every time.

When commitments, cost codes, receipts and AP share one database, the comparison is a lookup instead of a project. Job costing by cost code stays current because the invoice posts to the same code the PO was written against. Field staff can confirm receipts from their phones instead of forwarding photos to the office. That is the design behind DesignFlow Build: project management, accounting and field operations in one platform, so you do not stitch together Excel and a separate accounting tool.

Why the match works best inside one system

What DesignFlow Build gives a contractor running this process

What DesignFlow Build gives a contractor running this process

Our platform combines project management, accounting (general ledger, AR/AP, certified payroll, job costing by cost code and WIP) and field operations in one system. Compliance automation covers certificates of insurance and lien waivers, which are the documents that most often hold up a subcontractor payment. The automation builder lets you set workflow rules, and the mobile field app with voice data entry puts field information into the system where the office can use it.

Pricing is published: Pro is $100 per month per office user and Field seats are $25 per month per user, with a free tier available. Details are on the pricing page.

Designflow-build

If you want to see your PO-to-payment flow in one place, you can start free and set it up yourself. Our implementation takes 2 to 4 weeks, with no army of consultants. Explore the Construction ERP or go straight to pricing.

Our perspective

We built DesignFlow Build because contractors were running purchasing in one tool, field receipts in another and accounting in a third, then paying someone to reconcile them.

Our view is that a three-way match should not be a monthly cleanup. It should be a by-product of how the job is run. When a PO is written against a cost code, a foreman confirms the delivery from the field and the invoice arrives into the same system, the match is nearly automatic, and the people in your office can focus on the exceptions.

We also think automation should be honest about its limits. AI should read, code, compare and route. Your project managers should decide disputed quantities and unsupported change orders. That combination is what we design for: fewer hours on manual data entry (we report a 70% reduction) and tighter control of job cost.

Keith

A practical rollout checklist

If you are starting from a spreadsheet and a shared inbox, do it in this order:

  1. Pick your tolerance. Choose a percentage and a dollar cap and write them down.
  2. Define “receipt” per vendor type. Material: delivery ticket. Rentals: equipment ticket. Subcontractors: approved pay application or percent complete. Services: signed timesheet.
  3. Require a PO or subcontract number on every invoice. Tell vendors in writing.
  4. Set up the four result categories. Clean, over PO, under PO, not fully received.
  5. Name the resolver for each category. A mismatch with no owner just ages.
  6. Add the compliance gate. Current lien waiver and insurance certificate before payment.
  7. Review monthly. Count exceptions by vendor and by cause. Repeat offenders usually point to a fixable process problem, such as a vendor who never puts the PO number on the invoice.

FAQ

What is a three-way match in accounting?

It is a payment control that compares the purchase order, the receiving record and the vendor invoice before an invoice is approved. All three must agree on quantities, prices and totals, within your tolerance. It prevents paying for goods or work that were not authorized, not delivered or billed at the wrong price.

Does the PO have to match the invoice exactly?

Not to the penny. Most organizations set a tolerance, often around 1% to 3% or a small dollar amount, and let variances inside it through. Anything outside the band goes to a named reviewer. Write the thresholds down so the rule is consistent across jobs.

How do you do a three-way match for subcontractor invoices?

There is no delivery ticket, so use the approved subcontract, the schedule of values and the approved percent complete as the receiving record. Compare the pay application against the committed amount including approved change orders. Hold payment if lien waivers or insurance certificates are missing.

Can three-way matching be fully automated in construction?

The routine parts can: reading invoices, pulling PO and receipt data, comparing fields and routing. Exceptions such as disputed quantities, unsupported change orders and compliance gaps should still go to a person, with the reason shown and every decision logged.

Sources