In production

Vendor overpayment audit

Commercial landscape services platform. SiteOne, Aspire ERP.

Situation

The company buys tens of millions of dollars a year of material against pre-negotiated vendor pricing. The should-pay numbers already lived in the estimating system, but nobody checked invoices against them line by line, because at branch-level volume it is not work a person can do. The negotiated pricing was assumed to be the pricing received.

What we built

An agent takes the monthly vendor invoice batches, reconciles every line to the cent, joins each line to the negotiated price book, and reports what was overcharged. Results are split into confirmed overpayment and lines that need a human look, never netted together into one flattering savings number. It also rolls up rebate-eligible spend by brand and flags fuel-surcharge and finance-charge inconsistencies along the way.

How it works

  • Extraction runs as the knowledge base's structured schema rather than a coordinate parser, so a new vendor's invoice layout generalizes instead of breaking.

  • Every rollup and variance calculation is deterministic Python in a sandbox. Never semantic search, never model arithmetic, which is why the totals are trustworthy enough to feed a rebate claim.

  • A reconcile gate is the trust rubric. Each invoice's lines must sum to its printed subtotal to the cent or it is quarantined and never enters a total.

  • Variance is two-sided by construction. A line counts as overpayment only when invoice and catalog units match; mismatches route to review rather than into the total.

Impact

$95K

of overpayment identified against the negotiated price book across the three main suppliers, with the first supplier's refunds already back.

3,336

invoices on the first supplier alone, covering $1.77M of trailing-twelve-month spend, every one reconciled to the cent with zero quarantined.

The first supplier surfaced ~$45K on its own. The audit also found rebate-eligible spend by brand and a fuel-surcharge inconsistency the team did not know it was paying.

Have a function like this one?

Tell us where you would start and we will tell you what it would take.

patrick@boguelabs.ai