Every contractor knows the moment: a truck shows up with half the ordered quantity, the rest "on the way." Three weeks later the supplier's invoice quotes a number that matches neither the order nor what actually arrived. Someone approves it anyway, because chasing the difference costs more than it's worth — until it happens fifty times a year and becomes a number worth noticing. Three-way matching is the mechanism that catches that gap at its cheapest point: before payment, not after.
Key takeaways
- A purchase order describes what should happen; only the delivery record and the invoice describe what actually did.
- Partial delivery is the default on a live site, not the exception — matching has to work cumulatively at the line level, not close on the first truck.
- Quantity variance and price variance are different problems with different owners; collapsing them into one "mismatch" flag loses the information that tells you who to chase.
- A delivery that isn't logged against a specific PO line breaks the reconciliation before it starts — the invoice arrives with nothing to compare it to.
- The match only means something when the three documents come from three different people — the same person ordering, receiving and invoicing their own paperwork isn't a control, it's a formality.
Why a purchase order alone isn't enough
A purchase order is a statement of intent: what was ordered, at what price, expected by when. That's all it tells you. It doesn't tell you how much actually arrived, in what condition, or what the supplier ultimately billed. Three separate documents describe three separate facts — and when they're managed as if they were one, the gap between them disappears into the monthly numbers.
| Document | Who issues it | The question it answers |
|---|---|---|
| Purchase order | Procurement | What did we order, at what agreed price? |
| Delivery record | Site / stores | What actually arrived, and in what condition? |
| Supplier invoice | Supplier, booked by finance | What is the supplier billing us for? |
Three-way matching is simply comparing those three numbers at the line level before any amount is paid. When they agree, payment is routine. When they don't, the disagreement itself is the useful information — not the number that eventually gets paid.
The procurement cycle: from request to purchase order
A purchase order is rarely the starting point. On a disciplined site, a request passes through four steps before it becomes a financial commitment.
Raise a material request
Field staff or the storekeeper raises a request with quantity, location and the date it's needed — a description of need, not authority to spend.
Approve the request
An approver — the project manager, site manager or procurement — signs off before the request becomes a commitment to a supplier.
Send the RFQ
Procurement sends a request for quotation to more than one supplier, comparing price and lead time side by side rather than accepting one quote on trust.
Issue the purchase order
Once a quote is awarded, the PO is issued with the agreed supplier, quantity and price — the point where the request becomes a recorded financial commitment.
Partial delivery is the rule
A purchase order for a hundred tonnes of rebar rarely arrives in one load. It arrives in batches — twenty tonnes Monday, fifteen Thursday, the rest two weeks later. The PO doesn't close on the first truck; it stays open until the received quantity accumulates to the ordered quantity, line by line.
That means every delivery has to be logged against that same PO line, not as a standalone stock movement. A delivery that isn't linked to a purchase order looks, to the system, like an unordered purchase — and disappears from any report comparing what was ordered to what arrived.
At the line level, three numbers accumulate in parallel: the ordered quantity (fixed once the PO is issued), the received quantity (growing with each shipment), and the invoiced quantity (arriving later, and not guaranteed to equal either of the other two).
How the match actually runs
The match compares the same three numbers at the line level: the quantity and price agreed on the purchase order, the quantity actually received, and the quantity and price on the invoice. The outcome is one of three states.
| Scenario | Purchase order | Received | Invoiced | Decision |
|---|---|---|---|---|
| Clean match | 500 m × SAR 12 | 500 m | 500 m × SAR 12 | Approve payment directly |
| Quantity variance | 500 m × SAR 12 | 460 m | 500 m × SAR 12 | Pay for the 460 m received; chase the difference with the supplier |
| Price variance | 500 m × SAR 12 | 500 m | 500 m × SAR 13.5 | Pay at the agreed PO price, not the invoiced price |
Quantity variance and price variance are not the same problem. A quantity variance is a question for site or stores — did less actually arrive than claimed? A price variance is a question for procurement — did the supplier change the agreed number without a documented price-change instruction? A system that reports both under one "mismatch" flag loses exactly the information that tells you who should answer for it.
Common mistakes that break the match
Three-way matching is simple as a concept and fails in practice for reasons that are entirely predictable.
| Mistake | Effect | Fix |
|---|---|---|
| Receipt logged with no PO link | The invoice arrives with nothing to compare it against | Make the PO-line link mandatory on every delivery record |
| Invoice booked with no PO reference | Payment runs on trust, not on a match | Refuse to book a material invoice with no reference PO once one is required |
| Approving out of habit: "we always order from this supplier" | Small, repeated variances accumulate unnoticed | Review variances cumulatively per supplier every month, not only line by line |
| POs left open for months | Partially received quantities sit unresolved and get forgotten | Review open purchase orders weekly and close what's actually fully received |
Three-way matching doesn't prevent the mistake — it prevents the mistake from passing through silently.
How procurement works in muqawil
The procurement cycle in muqawil follows the sequence described above closely: a material request raised by field staff or the storekeeper, approval from the project manager, site manager or procurement, an RFQ comparing more than one supplier side by side, and a purchase order that moves through draft, sent, confirmed and received.
- Every delivery is logged against a specific purchase-order line, so received quantity accumulates automatically and stays comparable to what was ordered at any point.
- Partial delivery is a first-class case: a PO stays open across multiple shipments until the quantity is complete or deliberately closed short.
- The supplier invoice links back to the same purchase order, so the three-way match — order, receipt, invoice — sits on the same line without manually assembling it from three screens.
- Each step is typically a different role's responsibility: field staff request, an approver signs off, procurement runs the quotes and the order, and stores or site logs the receipt — so the match compares three independent records, not one person confirming their own paperwork.
Frequently asked questions
What is a three-way match in construction procurement?
Comparing three documents at the line level before payment: the purchase order (what was ordered, at what price), the delivery record (what actually arrived), and the supplier invoice (what's being billed). When all three agree, payment is straightforward; when they don't, the difference determines who gets chased before any amount is transferred.
What happens when the invoiced quantity is higher than what was received?
Only the verified received quantity gets paid, and a follow-up item opens with the supplier for the difference. Paying the full invoice on trust turns a billing error into a permanent loss instead of an open question.
Does every purchase need a formal PO first?
In practice, yes for anything worth tracking. Small or urgent purchases can be reconciled after the fact, but they still need to be logged against a specific supplier and project, or the spend accumulates somewhere no report can see.
Who should log the delivery — site staff or the supplier?
Site or stores, always, from an independent count rather than what's written on the supplier's delivery note. Treating the supplier's own paperwork as the record of receipt removes the entire reason a separate delivery record exists.
How many partial deliveries can one PO line take?
As many as it takes. Received quantity accumulates with every shipment until it equals the ordered quantity, or the line is deliberately closed short by agreement.
What's the difference between an RFQ and a bid package?
An RFQ is for sourcing materials from suppliers. A bid package is a separate process for awarding a subcontract to a subcontractor. Both compare submitted prices, but they run through entirely different workflows.
Try the full procurement cycle
Raise a material request, turn it into an RFQ, issue the purchase order, and log the delivery — all in one place that stays matchable the moment the invoice arrives.