The TradesSeptember 4, 2026 · 9-minute read

Construction Invoice Errors: The Ones You Make, and the Ones You're Charged

Construction invoice errors come in two directions, and they are different problems. Outbound errors — the ones on invoices a contractor sends — are paperwork mistakes like a missing job number, a vague line description, retainage figured at the wrong rate, or a signed change order left off the pay application, and they delay payment. Inbound errors — the ones on supplier and subcontractor invoices a contractor receives — are pricing mistakes like a unit price that drifted off the quote, a quantity that doesn't match the delivery ticket, a unit-of-measure switch, or a fee that was never quoted, and they cost margin. Industry data puts at least one error on 39% of construction invoices with average overbilling at 2.5% of invoice value, and the inbound kind is the harder half to catch, because a wrongly priced invoice still codes correctly and clears a normal approval.

"Construction invoice errors" is two different problems

The phrase covers two completely different jobs, and almost everything written about it addresses only one. The first direction is outbound: mistakes on the invoices you send to a general contractor or an owner — a missing job number, a vague line description, retainage figured wrong. Those errors delay your money. The second direction is inbound: mistakes on the invoices you receive from supply houses, material vendors, and subs — a unit price that drifted off the quote, a quantity nobody signed for, a fee that was never quoted. Those errors take your money.

Both are real, and they fail in opposite ways. Outbound errors announce themselves: the invoice gets kicked back, payment sits, somebody in the GC's office calls. You find out, you fix it, you get paid late. Inbound errors do the reverse — they clear. A supplier invoice with a wrong unit price looks exactly like a supplier invoice with a right unit price. It arrives on the right letterhead, gets coded to the right job, gets approved by the right person, and gets paid inside terms. Nothing about it looks like a mistake, because nothing in a normal payables process is examining the number itself.

That asymmetry is why the inbound half deserves most of the attention and gets almost none of it. Industry data puts at least one error on 39% of construction invoices, with average overbilling running 2.5% of invoice value. Read as an outbound problem, that's a cash-flow issue you eventually hear about. Read as an inbound problem, it's a margin issue you may never hear about at all.

Errors on the invoices you send

This is the shorter list and the fixes are mechanical, so clear it first. Five things account for most invoices that get bounced or quietly parked:

  • Missing PO or job number. An invoice a GC's accounting group can't tie to a commitment doesn't get rejected so much as set aside. Put the PO number, the job number, and the cost code they issued you on the face of the invoice, in the format they asked for.
  • Descriptions written for you, not for them. "Rough-in, second floor" is clear on your end and unverifiable on theirs. Bill against the schedule of values line, in the schedule of values language, so the person approving it can find the line without calling you.
  • Retainage handled wrong. Withheld at the wrong percentage, applied to the wrong base, or applied to stored material when the contract exempts it. The contract sets the rule, and it changes between contracts — the invoice has to follow this job's terms, not the last job's habit.
  • Change orders billed before they were signed, or omitted after. Work billed against an unexecuted change order gets stripped out of the pay application. Signed change order work left off the invoice never gets paid at all, because nobody downstream is tracking your extras for you.
  • Wrong cost code. A miscoded line often survives the GC's review entirely and wrecks your own job costing instead. That's how a job reads profitable for four months and doesn't at closeout.

Notice what these have in common: every one is a paperwork error on a number you chose. You set the price, you know the scope, you control the format. That makes outbound error genuinely fixable with a template, a checklist, and one person who owns the pay application. It also means the whole problem lives inside your own shop — which is exactly what makes the other direction harder.

Errors you get charged, part one: the price is wrong

Now the direction nobody writes guides about. Inbound errors cluster into two families, and the first family is price.

Unit price off the quote. The most common, most expensive, and least visible inbound error. A supply house quotes a package in March. The order gets pulled in September against that quote, and some of the lines come back at September prices. No note, no revised quote, no phone call — just a different number in the unit price column. Unless somebody has the March quote open beside the September invoice at the line level, there is nothing to notice. A total looks like a total.

Substitutions priced above the quoted item. The quoted item is out of stock the morning the order gets pulled, so the counter ships the nearest equivalent. That's usually the right call for the schedule, and you'd probably approve it. The problem is the price: the substitute is billed at the substitute's price, not at the quoted item's price, and the invoice line rarely says "substitution" anywhere. It reads as a similar description carrying a different number, which is functionally invisible on a ninety-line invoice.

Fees and surcharges nobody quoted. Fuel surcharges, delivery charges, small-order fees, restocking fees, hot-shot or after-hours delivery premiums, core and environmental charges. Most of these are legitimate supplier policy rather than error, and that's the trap, because "legitimate" and "in your bid" are two different things. Anything you didn't price into the job reduces margin whether or not the supplier is entitled to it. The useful move isn't disputing all of them. It's knowing the annual total, so it lands in your next bid instead of coming out of this job.

Errors you get charged, part two: the count is wrong

The second family never touches the unit price. Every price can be exactly right and the invoice still wrong, because the quantities or the math don't hold.

Billed quantity vs. the delivery ticket. Three numbers exist for every material on a job: what was quoted, what the field actually signed for, and what got billed. They're supposed to be one number. In practice a partial delivery gets signed in full because nobody is going to hold the truck, a short shipment gets promised on the next run and billed on this one, or a return gets picked up and never credited. The delivery ticket is the only document that records what actually landed on the site, which makes a tailgate signature the most under-used control in the trades.

Unit-of-measure switches. The quote prices per foot; the invoice bills per stick. The quote prices each; the invoice bills per case or per pallet. Neither document is lying, and neither number is wrong on its own basis — the comparison is simply impossible until somebody converts both sides to the same unit. This error survives every review that skips the conversion, and it's the one most likely to be defended in good faith by both sides, because each is reading its own paperwork correctly.

Duplicates across partial deliveries. One quote, one order, four trucks over three weeks, and a monthly statement covering all of it. Somewhere in that sequence a line gets billed on the delivery it shipped with and again on the statement that summarizes the month, or two partial shipments each get billed at the full ordered quantity. A duplicate on the same invoice is easy to catch. One split across two invoices two weeks apart is nearly impossible without a running per-item total.

Arithmetic and extension mistakes. Quantity times unit price doesn't equal the line total. Line totals don't sum to the subtotal. Tax gets applied to a non-taxable line, or to freight where it shouldn't be. These are boring and clerical, and they happen because a supply house processes thousands of line items a week and error at that volume is a statistical certainty, not a strategy. They also run both ways — plenty are in your favor, a fair reminder that checking invoices is about accuracy, not accusation.

Why the inbound errors survive your office

It's worth being precise about the mechanism here, because "we already check our invoices" is usually true and usually describes a different activity.

A normal payables process asks a specific set of questions. Is this invoice ours? Which job does it belong to? What cost code does it hit? Who approves it? Is it inside terms? Every one of those is a routing question — where the invoice goes and who signs it. A supplier invoice with a unit price that drifted off the March quote answers all of them perfectly. It's for the right company, on the right job, coded correctly, approved by the right person, paid on time. The coding is fine. It's the price that's wrong, and nothing in the routing questions ever asks about the price.

The second reason is arithmetic on the reviewer's side. Verifying one high line-count supply-house invoice against its quote — matching items, converting units, checking extensions, tracing quantities back to tickets — is an afternoon of work when it's done properly. Invoices don't arrive at a rate that leaves afternoons. So offices triage: check the biggest invoices, the unfamiliar vendors, the ones that feel off. That's a rational response to the hours available, and it's aimed at the wrong population, because inbound errors don't feel off. They're a drifted price on line 41 of 90, in a column of entirely plausible numbers. Triage systematically passes exactly the errors it exists to catch.

The third reason is that the evidence is split. The office holds the invoice and, if someone filed it, the quote. The field holds the delivery ticket and the memory of what came off the truck. Neither half can verify a quantity alone, and the two meet weeks later, if at all.

What to do about the direction that costs you money

Outbound errors get fixed with a template and an owner. Inbound errors need an actual check, run against every invoice instead of the suspicious ones. The check is the same whether you do it by hand or not:

  • Pull the quote before you open the invoice. The right revision, plus any signed change orders. Checking against memory isn't checking.
  • Match line to line, not total to total. Every invoice line needs a counterpart on the quote. A line with no counterpart is a substitution, an unquoted charge, or somebody else's material.
  • Convert units before comparing prices. Per foot vs. per stick, each vs. case or pallet. Do the conversion first or the comparison means nothing.
  • Trace quantities to signed tickets. And keep a running cumulative total per item against the quoted quantity, so partial deliveries can't quietly add up past what was ordered.
  • Check the extensions and the subtotal. Quantity times price, then the sum. A minute of work that catches clerical error in both directions.
  • List every fee separately. Decide which ones you accept, then total them for the year and put that number into your next bid.
  • Confirm promised credits landed. Returns and short shipments that were "taken care of" have a way of never appearing on any invoice.
  • Dispute in writing, with the documents attached. Quote line, invoice line, difference. Suppliers correct documented errors as routine; it's undocumented complaints that stall.
  • Push the verified number, not the invoiced number. If the corrected figure never reaches your books and your job cost report, the wrong number wins anyway.

The reason to run that list on everything rather than on a sample is the 2.5% figure: every $100,000 of unchecked material spend leaks roughly $2,500. Coverage is the whole game, and full coverage by hand is where most contractors run out of hours. That's the part CheckIT Invoice handles — drop in the invoice and the quote or contract, and it reads both line by line and flags the differences: unit prices off the quote, quantities that were never ordered, units that don't match, charges that were never quoted, with a dispute email drafted for each flag. It also connects with QuickBooks: push approved invoices into QuickBooks Online as cost-coded bills, so the checked number lands in your books. Contractors verifying this way report roughly 75% less manual review time than checking by hand, which is the point: it moves you from checking the invoices you had time for to checking all of them.

Whichever direction you start with, start with one job. Run every invoice on it against the documents that set the price. Outbound, you'll find out why payment is slow. Inbound, you'll find out what a normal-looking invoice has been costing you.

Questions, answered.

They split by direction. On invoices a contractor sends, the common errors are a missing PO or job number, line descriptions that don't match the schedule of values, retainage withheld at the wrong rate or on the wrong base, change orders billed before signature or omitted after it, and wrong cost codes. On invoices a contractor receives, the common errors are unit prices that drifted off the quote, substitutions billed above the quoted item's price, billed quantities that don't match the signed delivery ticket, unit-of-measure switches, unquoted fees and surcharges, duplicates split across partial deliveries, and arithmetic or extension mistakes.

Errors on invoices you send are paperwork problems on a price you chose, and they cost you time — the invoice gets rejected or parked and payment runs late, but somebody tells you about it. Errors on invoices you receive are pricing problems on a number somebody else chose, and they cost you margin — the invoice is coded correctly, approved normally, and paid on time, so nothing signals that anything was wrong. That is why the receiving side is the harder half to catch even though it is the half that takes money out of the job.

Because a normal payables process asks routing questions, not pricing questions: which job is this, what cost code, who approves it, is it within terms. An invoice with a unit price that drifted off the original quote answers every one of those correctly. The coding is fine; only the price is wrong, and no step in the routing process compares the price to the quote. Offices that do check invoices usually triage to the biggest or most unfamiliar ones, which misses the errors that look completely ordinary.

Pull the correct quote revision and any signed change orders before opening the invoice, then work line by line rather than total to total. Confirm every invoice line has a counterpart on the quote, convert both documents to the same unit of measure before comparing prices, trace each billed quantity to a signed delivery ticket, keep a cumulative per-item total so partial deliveries cannot exceed the quoted quantity, verify the extensions and the subtotal, and list every fee separately so you can decide what you accept. Dispute anything off in writing with the quote line, invoice line, and difference attached.

It happens when the quote and the invoice price the same material on different bases — the quote is per foot and the invoice bills per stick, or the quote is each and the invoice bills per case or per pallet. Neither document is wrong on its own terms, so the error survives any review that does not convert both sides to a common unit first. It is one of the most persistent inbound errors precisely because both the contractor and the supplier can read their own paperwork correctly and still disagree on the amount owed.

At an average of 2.5% overbilling on invoice value, every $100,000 of unchecked material spend leaks roughly $2,500 — and with at least one error on 39% of construction invoices, the leak is steady rather than occasional. It compounds because the errors that survive an office review are the plausible-looking ones: a unit price a little above the quote on line 41 of 90, not an obvious mistake.

The most useful thing to read is your own invoice, verified.

Send one job's invoices and the quote they should match — we'll report every difference inside 48 hours. Or run it yourself in the app in minutes.

Free audit: one job, 48 hours, no credit card. Plans from $455/mo.