Procure-to-pay automation case study

Three-Way-Match AP Automation Case Study

A $250M multi-location distribution company deployed three-way-match AP automation across $200M annual spend — moving from manual PO/receipt/invoice matching to automated tolerance-based matching with exception routing, early-pay discount capture, and audit-ready evidence.

Client profile: Composite case study based on a $250M revenue multi-location B2B distributor, NetSuite OneWorld with Advanced Inventory, 8 distribution centers, ~3,200 active vendors, ~$200M annual indirect + direct spend, 12-person AP team.
Case study breakdown

From manual PO matching to automated three-way reconciliation

Company context — and why three-way matching is the AP control that matters

The client distributes industrial supplies through 8 distribution centers serving ~12,000 active customer accounts. Annual spend breaks down roughly: ~$140M direct spend (inventory purchases) and ~$60M indirect spend (logistics, facilities, IT, professional services). The AP team — 12 people across HQ and centers — was processing ~9,500 invoices per month: ~6,500 PO-backed, ~3,000 non-PO. Match rate on PO-backed invoices was ~62% manual, with the remaining 38% routed to exception handling that consumed an estimated 40% of the team's time.

The audit committee asked two questions in the prior cycle that triggered the project. First: "How do you know the inventory you paid for actually arrived?" The answer required a multi-day reconciliation. Second: "How do you know you're capturing available payment-term discounts?" The team estimated $400K in missed discounts annually but couldn't show it precisely. Both questions had clean answers in a three-way-matched environment.

  • $250M revenue distributor with 8 distribution centers
  • ~3,200 active vendors
  • ~$200M annual spend (~$140M direct, ~$60M indirect)
  • ~9,500 invoices / month (~6,500 PO-backed, ~3,000 non-PO)
  • NetSuite OneWorld with Advanced Inventory Management
  • 12-person AP team across HQ and DCs
  • Audit committee questioning AP control posture

Before automation — manual matching, missed discounts, audit pressure

  • ~62% of PO-backed invoices matched manually; rest in exception queue
  • ~40% of AP team time consumed by exception handling
  • ~$400K estimated annual missed early-pay discounts
  • Three-way reconciliation (PO/receipt/invoice) done at month-end, not at invoice receipt
  • ~$2.4M average pending invoices at any time waiting for matching
  • Vendor disputes consumed 6 hours / week of senior AP time
  • Duplicate-payment risk addressed by manual reviewer scanning
  • Audit trail reconstructed from email + AP system + receiving — never single-source
  • 1099 prep took 2 days annually due to vendor master inconsistency

What Ledger Summit implemented

  • Three-way-match engine with configurable tolerances by vendor and PO type
  • OCR + AI invoice intake (Bill, with handoff to NetSuite for matching)
  • PO/receipt/invoice match logic with quantity, price, and timing tolerances
  • Exception queue with classified routing (price variance, quantity variance, missing receipt, etc.)
  • Early-pay discount capture with priority ordering by discount value
  • Vendor master deduplication, normalization, and ongoing change controls
  • 1099 mapping refreshed and validated against vendor W-9s
  • Duplicate-payment screening with three-criteria check (vendor + amount + invoice number, with fuzzy matching on amount and invoice number)
  • Approval routing tier by amount, account type, and vendor risk
  • Audit-ready evidence pack per invoice: PO, receipt, invoice, match outcome, reviewer log
  • Integration with Ramp for non-PO spend with policy-based routing

Three-way matching mechanics — what gets compared and how

Three-way matching compares three documents: the purchase order (commitment), the receiving report (what physically arrived), and the vendor invoice (what's being charged). When all three agree within tolerance, payment can be released. When they don't agree, the discrepancy is routed for resolution.

Match dimensionWhat's comparedDefault tolerance
Item / SKUPO line item = receiving line item = invoice line itemExact match required
QuantityPO qty ≥ received qty; received qty = invoice qty±2% or ±$50, whichever lower
Unit pricePO unit price = invoice unit price±3% or ±$0.50/unit, whichever lower
Extended priceQuantity × unit price = line subtotal±$1.00 rounding tolerance
Freight termsPO freight terms applied to invoice freightExact match on FOB; ±5% on freight charge
TaxAvalara-calculated tax = invoice tax±$5.00 absolute
TotalSum of lines + freight + tax = invoice total±$10.00 absolute
VendorPO vendor master = invoice vendor masterExact match required
CurrencyPO currency = invoice currencyExact; FX'd if cross-currency
Receipt timingReceipt date ≤ invoice date + 30 days30-day rolling window

Exception types — and how each is routed

The remaining ~12% that don't auto-match fall into recognizable categories. Each has a routing rule, an SLA, and an evidence requirement.

Exception typeFrequencyRoutingResolution SLA
Price variance > tolerance~3%Procurement (PO owner) for amendment or vendor follow-up2 business days
Quantity variance — over-ship~2%Receiving + procurement; possible PO amendment2 business days
Quantity variance — under-ship~2%Vendor follow-up; partial-payment authorization1 business day
Missing receipt~2%Receiving for receipt entry; AP for follow-up3 business days
No PO (PO required)~1%Procurement for retroactive PO or non-PO approval2 business days
Item / SKU mismatch~1%Receiving for verification; procurement if substitute item2 business days
Vendor mismatch (e.g., subcontractor invoicing under different name)~0.5%Vendor master review; consolidation if same legal entity3 business days
Duplicate invoice flagged~0.3%AP senior review; reject duplicate or release if false-positive1 business day
Tax variance~0.2%Tax team review; Avalara recalculation if applicable3 business days

Implementation timeline — 10 weeks from discovery to first production cycle

  • Weeks 1–2: Discovery. Vendor master audit, PO compliance assessment, exception type analysis, tolerance baselining, vendor segmentation by spend.
  • Weeks 3–5: Build. Match engine configuration, exception routing rules, OCR + AI intake, vendor master deduplication, duplicate-payment screening, discount-capture engine.
  • Weeks 6–7: Vendor master cleanup. Deduplicate ~3,200 vendor records, validate W-9s, refresh 1099 mappings, normalize bank/payment information.
  • Week 8: Parallel run. Engine ran shadow alongside manual matching for two weeks. Match rate validated; exception routing tested.
  • Week 9: Cutover. First production week with three-way-match active. Daily standups for first two weeks; hypercare on exceptions.
  • Week 10: Hypercare. Tolerance refinement, routing rule adjustments, training waves complete.

Measured results

MetricBeforeAfterDelta
Auto-match rate (PO-backed)~62%~88%+26 pp
AP team time on exceptions~40%~12%−28 pp
Average pending invoice balance$2.4M$0.6M−75%
Annual early-pay discount capture~$80K~$1.2M+$1.12M
Duplicate payment incidents~6 / year0 in first year post-cutover−100%
1099 prep time (annual)2 days4 hours−75%
Days Payable Outstanding (DPO)34 days32 days−2 days
Audit findings — AP control20−2
Audit fieldwork days (AP)3 days1.5 days−1.5 days
Vendor master records~4,100 (with dupes)~3,200 (clean)−22% records

Vendor master discipline — the foundation

Three-way matching only works if the vendor master is clean. ~22% of records turned out to be duplicates, name variants, or stale entries. Cleanup is its own workstream and a recurring discipline going forward.

  • Deduplication — fuzzy match on name + tax ID + address; merge with reviewer sign-off
  • W-9 validation — every active vendor has current W-9 on file; validation cycle annually
  • 1099 mapping — default 1099 reportable / non-reportable per vendor; reviewed by tax team
  • Banking validation — ACH details validated against W-9; change requires multi-factor confirmation
  • Vendor risk tier — strategic, preferred, standard, restricted; informs approval routing and tolerance
  • Diversity / minority-owned tracking — where required for spend reporting
  • Insurance and compliance docs — for vendors requiring proof of insurance, COIs tracked with expiration alerts
  • Inactive sweep — vendors with no activity in 24 months reviewed for inactivation

When this approach fits

  • $50M+ annual indirect or direct spend with PO discipline
  • NetSuite, Sage Intacct, Oracle, or SAP as the GL
  • Distribution, manufacturing, retail, or service companies with material PO-driven spend
  • Vendor count 1,000+ with material concentration in top 100
  • Audit committee or sponsor pressure on AP control
  • Active early-pay discount opportunity ($500K+ annually)
  • Existing AP automation (Bill, Tipalti, Ramp) without three-way matching

When it doesn't fit

  • Below ~$15M annual spend. Bill or Ramp's native matching often suffices at this scale.
  • Pure services business with no PO discipline. The control isn't applicable; non-PO approval routing is the right answer.
  • SaaS / subscription-only spend. Most SaaS spend is recurring and pre-approved; three-way isn't the right control shape.
  • Construction with progress-billing dominance. AIA-style billing with retainage doesn't fit three-way; a different control pattern applies.

Alternatives considered

OptionTime to live3-year costStrengthsWeaknesses
Coupa5–7 months$650K–$1.1MFull procure-to-pay platformHeavy implementation; license overhead
SAP Ariba6–9 months$850K–$1.4MEnterprise-grade; deep supplier networkWay over-scoped at $250M revenue
Tipalti3–4 months$280K–$420KStrong AP automation, payment globalThree-way match shallower than build
Bill (BILL.com) + custom NetSuite logic10 weeks$140K–$220KRight-sized; Bill ecosystem fitsCustom NetSuite logic needs maintenance
NetSuite native + Bill (selected)10 weeks$140K–$220KTight integration; full three-way; audit-friendlyMaintenance load on internal team

Frequently asked questions

Why not Coupa or Ariba for procure-to-pay?

Both are excellent for $1B+ enterprises with deep supplier-network needs. At $250M revenue with $200M spend, the implementation cost and ongoing license overhead aren't justified. The build-on-existing-stack approach delivered comparable three-way matching at materially lower cost.

What about non-PO spend?

Non-PO spend (~30% of invoice volume) is routed through approval matrices based on amount, account type, and approver authority. Ramp handles much of the corp-card non-PO spend with pre-approval; Bill handles the remaining vendor invoices.

How do you handle blanket POs?

Blanket POs are tracked with cumulative-release logic. Each release draws against the blanket; the engine matches against the release schedule. Blanket maturity and price changes trigger procurement review.

What about freight and tax discrepancies?

Freight has its own tolerance band (±5%); above tolerance routes to procurement. Tax variance routes to the tax team for Avalara reconciliation; below threshold (±$5) auto-resolves.

How do you handle vendor disputes?

Disputed invoices are flagged in the system and held from payment. AP and procurement coordinate on resolution; documented evidence trail preserved. Resolution timing tracked separately so AP team can prioritize.

Did you have to clean up vendor master before automation?

Yes — vendor master cleanup is its own 1–2 week workstream within the project. ~22% of records were duplicates, variants, or stale; cleanup is required before three-way matching produces clean output.

How does this interact with our procurement system?

Procurement (Coupa, Jaggaer, Procurify, or NetSuite native) issues POs that flow into the matching engine. The match engine doesn't replace procurement — it operates on the documents procurement produces.

What about supplier diversity reporting?

Vendor master tracks supplier-diversity attributes; spend is reported by diversity category through standard NetSuite reports. Supports diversity-spend reporting requirements where applicable.

Can this handle multi-entity?

Yes. Each entity has its own PO, receiving, and AP flow; matching happens at entity level; consolidated reporting available across entities.

What's the typical cost?

$140K–$220K all-in for $50–300M spend at this complexity, plus ongoing Bill license. Larger or more complex (multi-instance ERP, multi-currency, regulated industries) typically run higher.

How does this affect the audit?

Audit fieldwork on AP dropped 1.5 days. The evidence pack — PO, receipt, invoice, match outcome, reviewer log per invoice — is what auditors want to see. SOX-style control narratives map cleanly.

AP control and discount capture both leaking?

A 30-minute call walks your AP flow and tells you whether three-way-match automation is the right next step.

Book a free call