A contractor invoice control process is four documents read in order: the quote, the purchase order, the packing slip, and the invoice. Each one is created by a different party at a different moment, and the money leaks at the handoffs between them, not inside any single document. Control the four handoffs and you have the whole system. Most shops handle these four documents in four disconnected places: the quote in email, the PO in somebody’s head, the packing slip under a truck seat, and the invoice in the bookkeeper’s stack.
That is the entire problem. Nobody is missing a document. They are missing the thread that ties the four together, which is usually a single reference number that never got written down.
This post assembles the four into one process, names what fails at each handoff, and gives you a version small enough to actually run. If you want the deep version of the middle three documents specifically, that is three-way match for contractors. This post is wider and includes the two documents that matching leaves out: the quote at the front and the credit memo at the back.
The four documents and what each one proves
The chain works because no two of these are written by the same person on the same day. That is the source of its power and also the source of every gap in it.
| Document | Who writes it, and when | What it is evidence of | What it cannot tell you |
|---|---|---|---|
| Quote | Supplier, before you buy | The price you were promised, on named quantities, for a named job | Whether the quote covers everything the job needs |
| Purchase order | You, before material moves | What you authorized, at what price, on which job | Whether the price was a good price |
| Packing slip or receiving ticket | Supplier, as material leaves the counter or truck | What physically arrived, and how much | What any of it was supposed to cost |
| Invoice | Supplier’s billing system, days or weeks later | What you are being asked to pay | That any of it was ordered, quoted, or delivered |
Read the last column down. The invoice is the only document in the chain with no independent evidence behind it. It is a claim. The other three are what turn it into something you can verify or dispute. That is not a knock on your supplier: their billing system is doing exactly what it was designed to do, which is bill from whatever was in the order record. If the order record fell off contract pricing or picked up a substituted part number, the invoice faithfully reports the wrong thing.
There is a fifth document that only exists when something went wrong: the credit memo. Treat it as part of the chain rather than as an afterthought, because a credit that is promised and never posted is money you already earned and never collected. That is its own discipline, covered in tracking a supplier credit that was never issued.
The quote is the leg that AP controls leave out
Standard three-way matching cross-checks invoice, purchase order, and delivery receipt. Notice what is not in that list. The quote never enters the match, because in a corporate AP department the quote was consumed during purchasing and is somebody else’s problem by the time an invoice arrives.
For a contractor that is backwards. The quote is the document you bid the job on. Every dollar of material margin on that job is measured against it. And it is the document most likely to be quietly incomplete.
Contractors have described this on the trade forums for years. One electrical contractor’s description of how bid-day numbers travel is worth quoting in full, typo included, because it is the shape of the problem: “They may quote the stuff on bid day at say $87,000 but when you add all the total invoices up at the completion of the project they can be from $87,000 to $100,000 or more.” The same poster gives the control in one sentence: “keep a running tally on what has been invoiced and when it hits the quote amount flag it.”
That is the single highest-value habit in this entire post, and it costs one spreadsheet column.
Two mechanisms drive the gap. The first is quote completeness. The same thread describes a gear quote arriving without the accessories the job needs: “One trick they play is to " forget" to put fuses in disconnects, include lamps and other things. This way they look lower at first but when you build the job when you add in the fuses or lamps they are higher.” Whether that is deliberate at any given branch or just the natural result of quoting exactly what the plans list, the effect on your job cost is identical. Read a gear quote for what is missing before you read it for price.
The second is scope expiry. A job quote covers named quantities for a named period. Buy past them and the extra material reprices to stock pricing with no phone call, which is the most common version of a quote versus invoice mismatch.
The four handoffs, and what fails at each one
Handoff 1: quote to purchase order
What fails. The PO gets written from a phone call rather than the quote, so the quote number never makes it onto the order. Nothing downstream can find the quote again.
The control. Put the quote number in the PO reference field, always. If your PO is a text message to the office, the text message contains the quote number. One field, and it makes the rest of the chain possible.
Handoff 2: purchase order to counter or delivery
What fails. This is where your price changes without anyone deciding to change it. The order gets entered on a cash ticket instead of your account, at a branch that does not have your agreement loaded, or against a substituted part number that your negotiated rate does not cover. The mechanics are all in contract price versus counter price.
The control. Named buyers only, and a job number plus quote number on every ticket at the counter, in the moment. Your branch already has those fields on the will-call screen.
Handoff 3: delivery to invoice
What fails. Quantity. The invoice bills twelve, the truck dropped ten, and nobody counted because the material landed in a driveway. Quantity mismatch is one of the named failure modes in AP practice alongside price over tolerance, missing receiving documentation, wrong vendor, and misaligned line-item descriptions, and it is the one that pays fastest for a contractor because it needs no software and no price history. The full method is in auditing invoice quantity against the packing slip.
The control. Photograph the ticket before the truck moves. A crumpled photo taken in a parking lot is a receiving document. A pristine ticket that never leaves the cab is not.
Handoff 4: invoice to payment
What fails. Everything that survived the first three handoffs gets paid. Also duplicates: the same invoice re-sent with a new date after payment, which no amount of matching reliably catches because a duplicate is internally consistent. That check is separate, and it runs on invoice number, amount, and date.
The control. A weekly review before the check run, not a review after it. Recent errors get corrected at the counter as a matter of routine. Old ones get an explanation instead of a credit.
What the chain cannot catch
Be honest about the limits or you will trust the system further than it deserves.
It cannot catch a bad price that was bad from the start. If your PO says $17.80 for a bag of ten 3/4 inch copper 90 elbows because that is what the counter quoted this morning, and the invoice says $17.80, every document agrees. Perfectly. On a price that was $14.20 in March. Document matching validates internal consistency, never market reasonableness. Only a unit price history across months answers that question, which is why material price creep survives inside shops that already run POs.
It cannot catch a bad return. Restocking terms are contractual, not matched, and a fee lands as a reduced credit rather than as an invoice line, where no matching routine will ever look at it.
It cannot tell you what other contractors pay. Discounts off list vary enormously between customers for the same item. One contractor on the same thread reported seeing “them charge everything from 15% of list all the way up to list price for the same item to different customers.” Your paperwork tells you what you paid. It does not tell you where you sit in the column structure, which is a separate conversation about column and multiplier structure.
Running it in a shop with no AP department
The corporate version assumes a buyer, a receiving dock, and an AP clerk. You have a foreman who grabbed 200 feet of MC on the way to a job. Here is the version that survives that.
One reference number ties all four documents. Pick the job number. It goes on the PO, on the counter ticket, and it gets asked for on the invoice. Suppliers will put it in the reference field if you ask, because their system has the field. Without it, no filing scheme works and every reconciliation is a memory exercise.
A quote log, one row per quote. Quote number, supplier, job, quoted total, and a running invoiced-to-date column. That last column is the running tally. When invoiced-to-date approaches the quoted total and the job is not close to done, you have found the problem months earlier than the final job cost report would have.
A minimum viable PO. Job, supplier and branch, what is being bought in plain words, the expected unit price or a not-to-exceed, who authorized it, and the quote number if one exists. That fits in a text or a spreadsheet row. A real PO number from your accounting system is better because it lets you track committed cost and remaining committed cost at the job or cost code level, but the control starts working the moment the record exists.
A weekly batch, not per-invoice review. Tickets out of the trucks, sorted by supplier, run against the week’s invoices. Quantity first because it is fastest and highest yield, then unit price against the PO or against last month’s price.
Tolerances so this does not eat a whole day. Nobody chases $3.10. AP practice sets tolerances by value threshold, discrepancy percentage, or vendor quality rating, and commonly lets invoices within 2% to 3% of the PO pass automatically, or applies full matching only above a dollar cutoff. Published institutional policy has the same shape: the University of Georgia uses two-way match for goods POs at or below $2,499.99 and three-way match at or above $2,500. Set your own numbers and stick to them. One exception: quantity gets no tolerance, because a short shipment is not a rounding difference.
A standing response when a line fails. The textbook answer is to withhold payment and request a corrected invoice or a credit note. In practice, hold the disputed line and pay the rest, then send one email per supplier per week using a credit request email template. Six separate emails read as harassment. One weekly summary reads as a customer with their paperwork in order.
Where this pays, and where it does not
The overhead is real: somebody creates records before material moves and collects tickets that do not want to be collected. Be clear-eyed about whether it clears the bar.
The trade’s own rule of thumb sets the ceiling for doing it by hand. One contractor put the threshold plainly: “If you purchase over $300,000 a year in electrical materials from supply houses it is almost worth the expense to have a person go over the invoices and quotes to see where you were overhcarged. At least a part time person for sure.” The typo is his, and it is the kind of detail that tells you a real contractor wrote it at the end of a real day.
Below that spend, run the light version: a job number on every ticket, a running tally against every job quote, and a weekly quantity check. Those three habits catch most of the dollars for a fraction of the effort. Above it, the full four-document chain with tolerances and a hold list earns its keep, and it also gives you something to bring to an annual pricing conversation, which matters more than any single credit ever will.
One more reason to bother. AGC’s reading of the producer price index for May 2026 had inputs to new nonresidential construction up 8.4% year over year, the largest annual jump since the pandemic, while contractors’ bid prices rose only 3.5%. When input costs move at more than twice the rate of what you can charge, the gap between the price you bid and the price you paid stops being a rounding item.
The checklist
- Every job quote goes in a log with a running invoiced-to-date column. Flag it when the tally approaches the quoted total.
- Read every gear and lighting quote for what is missing before you read it for price. Fuses, lamps, accessories.
- Quote number on the PO. Job number on the PO, on the ticket, and requested on the invoice.
- Named buyers only, in writing, told to the branch.
- Photograph the packing slip before the truck moves.
- Weekly batch: quantity first, then unit price against the PO or last month.
- Written tolerances, applied without agonizing. No tolerance on quantity.
- Hold the disputed line, pay the rest, one credit email per supplier per week.
- Log every promised credit and confirm it posted. A promised credit is not a received credit.
- Once a month, look at unit prices across months rather than within one invoice. That is the only check that finds creep.
Sources
- Stampli, 3-way invoice matching: definition and tolerance rules
- Tipalti, 3-way match: tolerance practice and named failure modes
- Bill.com, 3-way matching and the standard response to a mismatch
- University of Georgia, published two-way and three-way match thresholds
- Foundation Software, job costs and purchase orders: committed cost
- Mike Holt forum thread: quotes, invoices and the running tally against a quote
- AGC of America, May 2026 producer price index release