The quote said $4.85 a foot. The invoice, three deliveries later, says $5.35. Nobody flagged it, because nobody was checking foot by foot.
Material overcharges rarely look like fraud. They look like small, plausible-sounding drift between what a supplier quoted and what actually got billed, spread across dozens of line items on dozens of invoices. Individually each one is a rounding error. Across a year of purchasing, they add up to real margin loss that most subs never catch, because catching it requires comparing quote to invoice to delivery ticket, line by line, and almost nobody has time to do that manually. Here are five specific ways it happens.
1. Quoted price vs. invoiced price drift
A supplier quotes a unit price at bid time, but by the time material actually ships weeks or months later, the invoice reflects a higher "current" price, sometimes with a note about material cost increases, sometimes with no explanation at all. Without a system comparing the original quote to the invoiced price line by line, this drift gets paid as-is, because it doesn't look wrong on its own. It only looks wrong next to the number you were originally quoted.
2. Quantity billed vs. quantity delivered mismatches
Delivery tickets and invoices don't always agree, and when a job has multiple partial deliveries of the same material, it's easy for an invoice to bill for a quantity that's slightly higher than what a delivery ticket, or a site count, actually shows arrived. This isn't always intentional; it's often a supplier's system rounding up or billing from an order quantity instead of an actual delivered quantity. It only gets caught if someone is reconciling delivery tickets against invoices, which on a busy job, often doesn't happen.
3. Duplicate line items across split deliveries
Large material orders frequently ship in multiple partial deliveries, each with its own packing slip and sometimes its own invoice. When a supplier's billing system doesn't cleanly track what's already been invoiced against a single purchase order, the same line item can get billed twice across two different delivery invoices, especially on longer jobs with several reorders of the same material. This one is genuinely easy to miss, because each individual invoice looks correct in isolation.
4. Escalation clauses applied incorrectly
Many material contracts, especially for steel, copper, and lumber, include price escalation clauses tied to a published index. The math on these is supposed to be mechanical, index moves X%, price moves X%, applied only to the unbilled remainder of the order. In practice, escalation sometimes gets applied to the full order rather than just what's left to be delivered, or applied using a stale index reading instead of the one specified in the contract. Both errors overcharge you, and both require someone who actually knows the escalation formula to catch.
5. Unit-price rounding that compounds at volume
A unit price rounded up by a few cents looks like nothing on a single item. Multiplied across a large order, thousands of linear feet of wire, thousands of square feet of board, a few cents of rounding becomes a real dollar figure, and because it's technically "rounding" rather than a clear error, it rarely gets questioned even when someone does review the invoice.
What actually catches these
Line-by-line comparison, not invoice-total comparison. Most manual review checks whether an invoice total looks roughly right against the PO total. Catching the five patterns above requires comparing individual line items, price, quantity, and any escalation math, against the original quote or contract, which is exactly the kind of repetitive, detail-heavy task that's easy to skip when someone's reviewing dozens of invoices a week.
Delivery ticket reconciliation as a standard step, not an exception. Treating delivery ticket matching as routine, rather than something that only happens when a number looks obviously wrong, is what catches quantity mismatches before they're paid.
What this doesn't fix
None of this replaces a real relationship with your suppliers or the leverage that comes from volume and payment history, if a supplier is systematically overcharging, the fix is a conversation and, if it keeps happening, a different supplier. Automated matching finds the discrepancy; it doesn't negotiate the resolution or rebuild trust with a vendor. It also can't catch an error in the original quote itself, if the quote was wrong, matching the invoice to it just confirms a wrong number consistently.
Where this fits next to what's already out there
General AP automation tools can flag that an invoice doesn't match a PO total, which catches some of the more obvious errors. They're generally not built to check unit-price-level detail against a construction-specific quote, or to apply escalation clause logic correctly. Cru's materials tools are built specifically to compare quoted, contracted, and invoiced pricing line by line and flag the kind of drift described above before the invoice gets paid.
TL;DR
- Material overcharges usually aren't fraud, they're small, plausible-looking drift between quote and invoice that compounds at volume.
- The five most common patterns: price drift from quote to invoice, quantity billed vs. delivered mismatches, duplicate line items across split deliveries, incorrectly applied escalation clauses, and unit-price rounding.
- Catching any of these requires line-by-line comparison against the original quote or contract, not just an invoice-total sanity check.
- Delivery ticket reconciliation needs to be routine, not something that only happens when a number looks obviously off.
- Automated matching finds the discrepancy — it doesn't replace the supplier conversation needed to actually resolve it.
See how Cru's Materials Agent catches price and quantity drift before invoices get paid →
