2026-02-09

3-way matching with OCR line items: how AP teams automate PO matching

A practical guide to 3-way matching (PO, receipt, invoice) using OCR-extracted line items, including tolerances, common mismatches, and how to reduce exceptions.

What is 3-way matching?

3-way matching is an Accounts Payable control that compares:

  • Purchase Order (PO)
  • Goods Receipt / Receiving Report (GRN)
  • Supplier Invoice

An invoice is approved when these agree on key fields like item, quantity, and price.

Why OCR line items matter

Header-level OCR (vendor, invoice number, total) helps with bookkeeping.

But 3-way matching requires line-level structure:

  • item description / SKU
  • quantity
  • unit price
  • line total
  • tax / shipping lines (depending on policy)

If line items aren’t extracted reliably, matching becomes manual.

If you’re evaluating line item quality, start here: Invoice OCR line item extraction: what to look for.

The matching levels

1) Header-level matching (fast, but weak)

Matches invoice to PO/receipt using:

  • PO number
  • vendor
  • totals

This catches obvious mismatches but misses line-level problems.

2) Line-level matching (the real control)

Matches each invoice line to a PO line.

This is where OCR + table extraction must be strong.

Tolerances: the key to fewer false exceptions

Without tolerances you’ll drown in exceptions.

Common tolerances:

  • quantity tolerance (e.g. ±1 unit or ±2%)
  • price tolerance (e.g. ±0.5–2%)
  • total tolerance for rounding (e.g. ±0.01–0.10)

Policy varies by company and vendor type.

Common mismatches (and how to reduce them)

Wrapped descriptions

Long descriptions wrap onto multiple lines and shift columns. Your extractor should merge wrapped lines into the same cell.

Unit price vs line total

Some invoices omit unit price, only line total. Matching should derive missing values when possible:

  • unit_price ≈ line_total / qty

Shipping and fees

Shipping may not exist in the PO but appears on the invoice.

Decide whether:

  • shipping is allowed up to a threshold
  • or must match a PO “freight” line

Tax handling

Tax may be per-line or summary-only. If you need strict matching, store tax separately and compare with expected rates.

Recommended automation workflow

  1. Extract invoice header + line items
  2. Validate and reconcile totals
  3. Normalize items (SKU mapping, vendor-specific synonyms)
  4. Match invoice lines to PO lines
  5. Apply tolerances
  6. Route exceptions to review

To try extraction + review, start in the app: Sign in.

FAQ

Do we need perfect OCR for 3-way matching?

No. You need accurate enough extraction to match most invoices automatically, and a fast exception workflow for the rest.

What’s the biggest win?

Reliable line item extraction + tolerances. Without those, matching will always feel “broken”.