What Is a Three-Way Match in Purchasing?

A three-way match is a control that compares three documents before a supplier invoice is approved for payment:

  1. The purchase order — what you agreed to buy, at what rate.
  2. The goods receipt note (GRN) — what actually arrived at the gate.
  3. The supplier invoice — what you are being asked to pay for.

If all three agree on quantity and rate, the invoice clears. If any one of them disagrees with the others, the invoice is held until someone resolves it.

That is the whole idea. The reason it matters is that each document is created by a different person at a different moment, and each one can be wrong in a way the others reveal.

What each mismatch actually tells you

MismatchWhat it usually means
Invoice quantity > GRN quantityYou are being billed for material that never arrived, or arrived short.
GRN quantity > PO quantityOver-delivery. Either accept and amend the PO, or return it — but decide deliberately.
Invoice rate > PO rateThe supplier revised the price after the order was placed and nobody approved it.
Invoice exists, no GRNEither the receipt was never recorded, or the material genuinely never came.
GRN exists, no POSomeone ordered material outside the purchasing process.

The last row is the one that quietly costs the most money in small factories. When a supervisor calls a supplier directly because production is stuck, there is no PO to match against, no agreed rate, and no record of who authorised the spend.

Two-way, three-way, four-way

  • Two-way match — PO against invoice only. Faster, but it cannot tell you whether the material arrived. Reasonable for services; poor for material.
  • Three-way match — PO, GRN and invoice. The standard for physical goods.
  • Four-way match — adds the quality inspection result, so material that arrived but failed inspection does not get paid for. Worth it where rejection rates are material, or where incoming inspection is a compliance requirement.

Tolerances: why a strict match fails in practice

A three-way match configured to demand exact agreement will hold almost every invoice you receive, and within a month someone will start approving the holds without reading them. That is worse than having no control at all.

Real implementations set tolerances:

  • Quantity tolerance — often ±2–5% for materials that are cut, weighed or measured, where a delivery is never exactly the ordered figure.
  • Rate tolerance — usually much tighter, often 0–1%, because rate variance is a commercial decision rather than a physical one.
  • Value floor — differences under a small absolute amount clear automatically, because chasing them costs more than they are worth.

Set the quantity tolerance from how the material is actually delivered. A tolerance copied from another plant is a tolerance nobody trusts.

Where it breaks in small factories

Three failure modes, in the order we see them:

The GRN is recorded days late. Material arrives, production consumes it, and the receipt is entered at month end from a stack of challans. By then nobody remembers whether the short delivery was short or whether someone took stock without recording it. The match still runs — it just matches against a fiction.

Receipt and purchase are the same person. In a plant with three people in the office, the person raising the PO is often the person recording the GRN. The control still catches supplier errors, which is most of what it catches anyway, but it stops being a segregation-of-duties control. Worth being honest about rather than claiming otherwise.

The PO is raised after the fact. The order goes out by phone, the material arrives, and a PO is back-dated so the invoice will clear. Every document matches perfectly and the control has told you nothing.

None of these are software problems, but software determines how much friction each one carries. If raising a PO takes four minutes, people raise POs. If it takes twenty, they phone the supplier.

This is also the point where accounting software stops being the answer. Tally will record the invoice and the payment faithfully, but it does not hold the goods receipt against the purchase order in the first place — the reason Tally and a manufacturing ERP end up doing different jobs.

How the match works when purchasing is connected to production

The match gets more useful when the purchase order was not typed from scratch.

In a connected order flow, a manufacturing order explodes its bill of materials, compares required components against available stock, and raises purchase orders for the shortfall. The PO therefore carries the reason it exists: this quantity, for this manufacturing order, for this customer's sales order.

When the invoice arrives and the three-way match runs, you are not only checking whether the numbers agree. You can also answer the question the numbers do not answer on their own — whether the material you are paying for was consumed by the job it was bought for, and what that job actually cost when it closed.

Most systems that do this well are built for it from the start. If you are weighing options, the trade-offs are laid out in Odoo alternatives for small manufacturers and ERPNext vs Heimdyn — the first is about scope, the second about who maintains the system once it is live.


Heimdyn is an ERP for small and mid-sized manufacturers that links quotation, sales, manufacturing, purchase and inventory into one connected system. Purchase orders carry three-way match against goods receipt and supplier invoice. See how the connected order flow works.

Product screenshots and figures on this site use seeded demonstration data.Blog