Sample output from the Supplier Billing Reconciler prompt in the Sonar AI Prompt Library, run against a NetSuite test account. Every name and number here is test data. Back to the post · The library
TD3016323  ·  Commercial Analytics  ·  Vol. III

Supplier Billing Reconciliation
Every Bill Line vs. Agreed Price, History & Receipt

Three-way reconciliation of 7,517 vendor bill lines against purchase-order pricing, two years of billing history, freight/surcharge terms, and goods actually received — with variances aggregated into evidenced claims per supplier.
ANALYSIS WINDOW: SEP 2, 2024 – AUG 25, 2026  ·  PREPARED: AUG 26, 2026  ·  SOURCE: NETSUITE PRODUCTION (SUITEQL, LINE LEVEL)
$2.29M
Supplier item billing tested
719 bills · 20 vendors · 7,517 lines
8,609
Bill lines three-way matched to PO
rate variances: 0
$2,984.52
Evidenced overbilling claim
1 bill · 1 vendor · open & unpaid
$375.5K
Spend bypassing PO controls
16.4% of billing — the exposure

01Executive Summary

The reconciliation verdict is unusually clean — with one live exception that validates the whole exercise. Of 7,517 item lines billed by 20 suppliers over 24 months, every line that flowed through a purchase order matched its agreed PO rate exactly (8,609 matched line-pairs, zero rate variances). Historical pricing is frozen: every vendor-item pair billed at precisely one rate for two years, and where multiple vendors supply the same item, they bill identical rates. No billed quantity anywhere exceeds goods received. Surcharge abuse is structurally impossible here: exactly one freight line exists in the entire AP ledger ($120, correctly coded), and no fuel or handling surcharges have ever been billed.

The exception: bill VB397 from Generation N — an apparel supplier — billed $2,995.00 for one unit of INV_2-Layer Copper, a PCB fabrication material this company buys from Core4Solutions at $10.48. The bill has no purchase order, no receipt, sits open and unpaid, and its memo field contains a 16-digit number formatted like a payment-card number. That is a $2,984.52 overcharge against reference price (285× the agreed rate) — and every attribute of the bill says it should not be paid without investigation.

The structural finding behind it: $375,533 of billing (16.4% of supplier spend) bypassed purchase orders entirely — eight manually keyed bills (VB01–VB08) plus a handful of one-offs, nearly all from Generation N. Line-by-line, the VB01–VB08 rates match the vendor's standard prices exactly, so no additional claim arises from them — but they were never protected by the three-way match, and VB397 is what that unprotected channel eventually produced. The off-PO door, not the pricing, is the risk.

Finding A — The claim: VB397, Generation N
AttributeValueRed flag
Bill / date / statusVB397 · Aug 1, 2026 · Open, unpaid ($2,995.00)Payment can still be stopped
Line1 × INV_2-Layer Copper @ $2,995.00Item is outside this vendor's category (apparel/leather goods)
Reference price$10.48/unit — Core4Solutions PO rate, stable 24 months, most recent PO Aug 23, 2026285× the agreed market rate
PO / receiptNone / noneBypassed three-way match; nothing was received
Memo16-digit numeric string (4433 9115 9258 2809)Formatted like a card PAN — separate data-handling concern

Recommended action: place a payment hold on VB397 immediately; confirm with purchasing that no such order exists; dispute or void with documented reason; and redact the memo field regardless of outcome (card numbers do not belong in transaction memos). Claim value if the bill is genuine but mispriced: $2,984.52. If nothing was ordered or received: the full $2,995.00.

Contents
02 — Reconciliation Coverage & Method 03 — Test 1: Billed Rate vs. Agreed (PO) Rate 04 — Test 2: Billed Rate vs. Historical & Cross-Vendor Benchmarks 05 — Test 3: Freight, Fuel & Handling Surcharges 06 — Test 4: Billed Quantity vs. Goods Received 07 — Claims & Exposures by Supplier 08 — Recommendations 09 — Methodology, Assumptions & Data Quality 10 — Appendix: Source Queries

02Reconciliation Coverage & Method

Universe: all VendBill item lines (mainline='F', taxline='F', quantity ≠ 0) — 7,517 lines, $2,292,913, 719 bills, 20 suppliers, Sep 2024–Aug 2026. Bill lines link to their POs via transactionline.createdfrom; item receipts link to the same POs the same way, giving a three-way match: PO (agreed) ↔ receipt (goods) ↔ bill (charged).

ChannelLinesSpendProtection
PO-linked billing7,491 (99.6%)$1,917,380THREE-WAY MATCHED
Off-PO billing (VB01–VB08 + 5 one-offs + VB397)29 (0.4%)$375,533NO MATCH POSSIBLE
The 0.4% of lines that bypass POs carry 16.4% of the dollars — off-PO bills are large (avg $12,950/line vs $256 for PO-linked lines). Every reconciliation exception in this report lives in the unprotected channel.

03Test 1: Billed Rate vs. Agreed (PO) Rate

Every bill line joined to its originating PO line on the same item; billed rate compared to PO rate at 4-decimal tolerance.

ResultLine-pairsOverbilled vs. POUnderbilled vs. POVariance $Verdict
PO-linked bill lines8,60900$0.00PASS — EXACT
Not one supplier billed a penny above (or below) the PO rate on any matched line in two years. Billing against agreed pricing is system-enforced and airtight — consistent with the sales-side finding (Vol. I) that this account's transactional pricing discipline is exceptional.

04Test 2: Billed Rate vs. Historical & Cross-Vendor Benchmarks

Two benchmarks per vendor-item pair: (a) the pair's own 24-month billing history (creep detection); (b) rates other vendors bill for the identical item (market check).

TestPairs TestedExceptionsVerdict
Historical drift — distinct rates per vendor-item pair~240 pairs (≥3 lines)0 — every pair has exactly 1 rateNO CREEP
Cross-vendor — same item, different suppliers82 multi-sourced items1 — INV_2-Layer Copper1 EXCEPTION
The Exception in Context — INV_2-Layer Copper, price per unit billed
Core4Solutions — 6 bills, 490 units Generation N — VB397, 1 unit $10.48 — agreed PO rate, unchanged 24 months $2,995.00 — 285× reference $0 $3,000 (log-free scale; the bar is the finding)
Core4Solutions has billed 2-Layer Copper at exactly $10.48 across six bills and 490 units since Sep 2024, including a PO dated two days before this analysis. VB397's $2,995.00 for a single unit is not price drift — it is a wrong bill.
Why the rest is silent
Multi-sourced items (82 of them — apparel, beauty, furniture) bill at identical rates from every supplier: Black Leather Jacket $200 from Generation N, The Apparel Co, and Well; Ghost Whisperer jackets $65 from Hestra and The Apparel Co; Estes Park furniture at matching rates from Broyhill, Bedline, and Flexsteel. Cost parity across suppliers plus frozen 24-month rates leaves no gradual-creep claim to accumulate — small per-unit differences cannot compound here because there are none.

05Test 3: Freight, Fuel & Handling Surcharges

Surcharge classLines FoundValueAssessment
Freight (item LC_Freight)1$120.00Evolve Transport Services, Jun 2026, coded to Freight-out — legitimate carrier invoice, not a supplier surcharge
Fuel surcharges0$0.00Never billed by any supplier
Handling / other charges on product bills0$0.00No OthCharge/Service lines ride on any product bill
Expense lines mixed into product bills0$0.00Expense-account lines (utilities, advertising, IT) live on separate service bills only
Verdict: NO SURCHARGE EXPOSURE — suppliers here do not bill freight, fuel, or handling on product invoices at all, so "applied in error or above terms" is structurally impossible in the current data. This test matters as a standing control: the query in §10 will catch the first surcharge line that ever appears.

06Test 4: Billed Quantity vs. Goods Received

DirectionPO-item combosValue at PO rateMeaning
Billed > received (overbilling — claimable)0$0.00PASS — no supplier has billed for goods not received
Received > billed (GRNI — under-billed)208$32,988.47Goods received, invoice not yet arrived/processed
Received-Not-Billed (GRNI) by Supplier — accrual exposure, not a claim
Lotion CoThe Apparel Co Inc. Mac Oca & Co.Bedline Johnson SupplyGeneration N Betty Black, Inc.Core4Solutions China Manufacturer $10,575$8,175 $5,900$4,358 $3,160$300 $266$225$30 $0 Total: $32,988 at PO rates · 208 PO-item combos
GRNI runs in the company's favor cash-wise but distorts accrued liabilities and inventory if unbooked. Concentrated in the beauty/apparel suppliers with per-unit receipts of 1–15 units awaiting invoices. Includes Johnson Supply's CM_KBA001: 40 received vs. 20 billed on two POs — worth vendor follow-up in the month-end GRNI accrual.

07Claims & Exposures by Supplier

Variances aggregated per supplier across all four tests. A claim is money to recover or withhold, evidenced by transaction ids. An exposure is a control or accrual gap with no current dollar claim.

SupplierSpend (2yr)Rate Variance vs. POQty OverbillingSurcharge ClaimsCLAIMExposure Notes
Generation N$785,547$0$0$0$2,984.52VB397 (open — hold payment). Also sole conduit of $373K off-PO billing (VB01–VB08)
The Apparel Co Inc.~$310K$0$0$0$0.00GRNI $8,175 — accrue & chase invoices
Bedline~$500K$0$0$0$0.00GRNI $4,358
Broyhill~$420K$0$0$0$0.00Clean on every test
Lotion Co~$95K$0$0$0$0.00GRNI $10,575 — largest accrual gap
Mac Oca & Co.~$75K$0$0$0$0.00GRNI $5,900
Johnson Supply~$15K$0$0$0$0.00GRNI $3,160 incl. 2× "40 received / 20 billed" — verify counts
13 other suppliers~$92K$0$0$0$0.00GRNI $821 combined
Total$2,292,913$0.00$0.00$0.00$2,984.52+ $32,988 GRNI accrual · $375K off-PO exposure
Why no accumulation of small variances: the premise "small per-unit differences compound into large claims" was tested directly — per-unit rate variance is zero on all 8,609 matched lines and zero across all 240 vendor-item histories. There is nothing to accumulate. The entire recoverable amount sits in one bill, in the unprotected channel.

08Recommendations

  1. Hold and investigate VB397 today. $2,995 open bill, 285× reference price, off-category item, no PO, no receipt, card-like number in the memo. Do not pay pending purchasing confirmation. Recover/withhold $2,984.52 minimum; void in full if unordered. Redact the memo either way.
  2. Close the off-PO billing channel. $375K (16.4% of spend) bypassed the three-way match, concentrated in Generation N's VB01–VB08. Those bills happened to be priced correctly — VB397 is what the same channel produced next. Require PO reference on vendor bills above a threshold (e.g., $1,000), enforced at entry.
  3. Book the GRNI accrual. $32,988 of goods received but never billed across 208 PO-item combos, led by Lotion Co ($10.6K). Chase missing invoices, and verify the Johnson Supply double-receipt (40 in vs. 20 billed on two POs) is a real count, not a receiving error.
  4. Adopt the four queries in §10 as standing monthly controls. Rate-vs-PO, price-drift, surcharge-appearance, and billed-vs-received are each one query. This month they return one hit between them; the month a supplier starts drifting, they will return it on day one.
  5. Do not launch a broad supplier-recovery program. The evidence shows supplier billing conduct here is essentially perfect. Recovery-audit effort should point at the manual-entry door (and its one live exception), not at compliant suppliers.

09Methodology, Assumptions & Data Quality

Method

Four tests on the full VendBill item-line universe: (1) Agreed price — bill line rate vs. its PO line rate via createdfrom linkage, joined on item, ±$0.0001 tolerance. (2) Historical price — distinct billed rates per vendor-item pair over 24 months (creep detector), plus cross-vendor rate comparison on multi-sourced items. (3) Surcharge terms — enumeration of all OthCharge/Service/expense lines on or alongside product bills, classified against account coding. (4) Goods received — billed vs. received quantity per PO-item combo, both directions, valued at PO rates.

Assumptions

(1) PO rate = agreed price. No separate contract/price-list module is in use in this account; the PO is the commercial agreement of record. (2) Contracted freight/fuel/handling terms — no vendor contract documents exist in NetSuite; the test therefore verifies that no surcharge lines exist at all (which subsumes "above terms"). If offline contracts allow specific surcharges, the §10 surcharge query is the enforcement hook. (3) Cross-vendor rate parity treated as the market reference for off-PO lines. (4) GRNI valued at PO rates. (5) Bills LP-interco-alloc 1–3 (Flexsteel, no item lines) are intercompany allocations, out of scope. (6) Single currency (USD).

Data quality observations

(i) 99.6% PO-linkage coverage is exceptional and is what makes this reconciliation near-total. (ii) VB397's memo contains a 16-digit card-formatted number — a data-handling violation independent of the billing question. (iii) Off-PO bills VB01–VB08 are round-quantity, standard-rate bills keyed monthly Aug 2025–Apr 2026 — consistent with a bulk catch-up or import; worth confirming their receipts exist outside the PO chain. (iv) nexttransactionlink carries only bill→payment links in this account; PO↔bill↔receipt lineage lives entirely on transactionline.createdfrom.

10Appendix: Source Queries

Q1 — Three-way rate match: bill line vs. PO line (standing control #1)
-- Any row returned = a supplier billed off the agreed PO rate
SELECT b.tranid, v.companyname, i.itemid,
       ABS(btl.rate) AS billed_rate, ABS(ptl.rate) AS po_rate,
       ROUND((ABS(btl.rate) - ABS(ptl.rate)) * ABS(btl.quantity), 2) AS variance_value
FROM transaction b
JOIN transactionline btl ON btl.transaction = b.id
JOIN transaction po ON po.id = btl.createdfrom AND po.type = 'PurchOrd'
JOIN transactionline ptl ON ptl.transaction = po.id AND ptl.item = btl.item AND ptl.mainline = 'F'
JOIN vendor v ON v.id = b.entity
JOIN item i ON i.id = btl.item
WHERE b.type = 'VendBill' AND btl.mainline = 'F' AND btl.taxline = 'F'
  AND btl.item IS NOT NULL AND btl.quantity <> 0 AND ptl.rate IS NOT NULL
  AND ROUND(ABS(btl.rate),4) <> ROUND(ABS(ptl.rate),4)
-- Current result: 0 rows across 8,609 matched line-pairs.
Q2 — Historical price-drift detector per vendor-item pair (standing control #2)
SELECT v.companyname AS vendor, i.itemid AS sku,
       COUNT(DISTINCT ROUND(ABS(tl.rate),4)) AS distinct_rates,
       ROUND(MIN(ABS(tl.rate)),4) AS min_rate, ROUND(MAX(ABS(tl.rate)),4) AS max_rate,
       ROUND(SUM(tl.netamount),2) AS spend
FROM transaction t
JOIN transactionline tl ON tl.transaction = t.id
JOIN vendor v ON v.id = t.entity
JOIN item i ON i.id = tl.item
WHERE t.type = 'VendBill' AND tl.mainline = 'F' AND tl.taxline = 'F'
  AND tl.item IS NOT NULL AND tl.quantity <> 0
GROUP BY v.companyname, i.itemid
HAVING COUNT(DISTINCT ROUND(ABS(tl.rate),4)) > 1
-- Current result: 0 rows (every pair bills exactly one rate). Cross-vendor variant:
-- GROUP BY i.itemid across vendors; flag items whose min/max rates differ. 1 hit: VB397.
Q3 — Surcharge-appearance monitor (standing control #3)
-- Any OthCharge/Service item line or expense line landing on a bill that also carries product lines
SELECT t.tranid, v.companyname, COALESCE(i.itemid, a.fullname) AS charge_ref,
       ROUND(tl.netamount,2) AS amount
FROM transaction t
JOIN transactionline tl ON tl.transaction = t.id
JOIN vendor v ON v.id = t.entity
LEFT JOIN item i ON i.id = tl.item
LEFT JOIN account a ON a.id = tl.expenseaccount
WHERE t.type = 'VendBill' AND tl.mainline = 'F' AND tl.taxline = 'F'
  AND (i.itemtype IN ('OthCharge','Service','Markup')
       OR (tl.item IS NULL AND t.id IN (
            SELECT t3.id FROM transaction t3
            JOIN transactionline tl3 ON tl3.transaction = t3.id
            WHERE t3.type='VendBill' AND tl3.mainline='F'
              AND tl3.item IS NOT NULL AND tl3.quantity <> 0)))
ORDER BY t.trandate
Q4 — Billed vs. received per PO-item combo (standing control #4)
SELECT po.tranid AS po_num, v.companyname AS vendor, i.itemid AS sku,
  SUM(CASE WHEN b.type='VendBill' THEN ABS(tl.quantity) ELSE 0 END) AS qty_billed,
  SUM(CASE WHEN b.type='ItemRcpt' THEN ABS(tl.quantity) ELSE 0 END) AS qty_received
FROM transaction b
JOIN transactionline tl ON tl.transaction = b.id
JOIN transaction po ON po.id = tl.createdfrom AND po.type = 'PurchOrd'
JOIN vendor v ON v.id = po.entity
JOIN item i ON i.id = tl.item
WHERE b.type IN ('VendBill','ItemRcpt') AND tl.mainline = 'F' AND tl.taxline = 'F'
  AND tl.item IS NOT NULL
GROUP BY po.tranid, v.companyname, i.itemid
HAVING SUM(CASE WHEN b.type='VendBill' THEN ABS(tl.quantity) ELSE 0 END)
     <> SUM(CASE WHEN b.type='ItemRcpt' THEN ABS(tl.quantity) ELSE 0 END)
-- billed > received = claim; received > billed = GRNI accrual. Current: 0 claims, $32,988 GRNI.
Q5 — Off-PO billing enumerator (the exposure channel)
SELECT t.tranid, TO_CHAR(t.trandate,'YYYY-MM-DD') AS dt, v.companyname AS vendor,
       i.itemid, ROUND(tl.netamount,2) AS amt, tl.quantity
FROM transaction t
JOIN transactionline tl ON tl.transaction = t.id
JOIN vendor v ON v.id = t.entity
LEFT JOIN item i ON i.id = tl.item
WHERE t.type = 'VendBill' AND tl.mainline = 'F' AND tl.taxline = 'F'
  AND tl.item IS NOT NULL AND tl.createdfrom IS NULL
ORDER BY t.trandate
-- 29 lines, $375,533. VB397 surfaced here: rate 285x the cross-vendor reference.
DISCLAIMERS & LIMITATIONS. "Agreed pricing" is defined as the purchase-order rate — no separate contract or price-list module exists in this account; if offline contracts differ from PO rates, findings should be re-based against those documents. Freight/fuel/handling conclusions reflect the absence of surcharge lines in NetSuite; surcharges settled outside AP (e.g., netted by suppliers into unit rates) would not be visible, though the two-year single-rate history makes embedded escalation unlikely. GRNI valued at PO rates; receipts and bills matched at PO-item level, not lot level. Intercompany allocation bills excluded. VB397 conclusions are based on transaction-record evidence; final disposition requires purchasing/AP confirmation. Prepared by Sonar AI from NetSuite production data, account TD3016323, Aug 26, 2026. Figures rounded.
TD3016323 · COMMERCIAL ANALYTICS · SONAR AI