To control material costs in 30 days: week one, pull twelve months of line-level purchase history from every supplier. Week two, build a unit-price trail on your top 20 items by spend and separate market moves from your own drift. Week three, put the controls in (a PO on every counter run, a matching rule, a named owner). Week four, take the receipts to your rep and fix what is fixable. That sequence is deliberate. Every step depends on the one before it, and the most common failure is starting at week four.
Thirty days is enough because none of this requires new software, a new hire, or the supplier’s cooperation. It requires your own invoices, which you already have, and about eight hours spread across a month.
The plan below is written for a shop buying from two or three houses. Scale the hours, not the sequence.
| Week | Goal | Hours | Output |
|---|---|---|---|
| 1 | Get the data | 2 to 3 | One spreadsheet, one row per invoice line, 12 months, all suppliers |
| 2 | Find the drift | 2 | A price trail on your top 20 items, split into market and non-market |
| 3 | Close the gates | 2 | PO rule, matching rule, receiving habit, one named owner |
| 4 | Use it | 1 to 2 | Credit requests sent, agreement confirmed in writing, review scheduled |
Week 1: get the data, not the opinions
You cannot control material costs from memory. Every shop has a felt sense that “prices are crazy,” and that sense is both true and useless, because it cannot tell you which of your prices moved for market reasons and which moved because a record in someone’s system changed.
Days 1 and 2. Export purchase history from every supplier portal you have a login for. You want line-level detail: invoice number, date, branch, catalog number, description, quantity, unit of measure, unit price, PO reference. Invoice totals are worthless for this. The full field list and the workarounds for portals that only produce PDFs are in getting purchase history out of your distributor’s portal.
Day 3. For any supplier whose portal cannot export, email the rep for a twelve-month item usage report from their system, as a CSV. Ask plainly and say why: you are building your own cost history for estimating. That is true and it is a request good customers make.
Days 4 and 5. Deal with the paper. Photograph the invoices in the truck and the folder in the office. Crumpled is fine, and a phone camera at the end of the day beats a scanner you never get to. If your paper backlog is enormous, do the last three months only. Three months of complete data beats twelve months of partial data.
Days 6 and 7. Clean it once. Normalize unit of measure to a price per each or per foot (this is the step everyone skips and it invalidates everything downstream). Tag and set aside freight, fuel surcharge, core charges and environmental fees. Leave credits in, marked as credits.
At the end of week one you have one file. That file is the entire asset. Everything else is reading it.
Week 2: separate the market from your own drift
Now sort by catalog number, then date, and look at the top 20 items by total spend. Not the top 20 by unit price. By spend, because that is where the money is.
For each one, write down the first price, the last price, and the percentage change. Most will be flat or close. A handful will not be, and those are your entire project.
The critical distinction. An increase is either the market or it is yours. The market you accept and re-estimate around. Yours you go and ask about. The difference is not a judgment call, because there is public data.
Materials genuinely moved hard this year. AGC reported that in May 2026 the producer price index for inputs to new nonresidential construction rose 1.8% for the month and 8.4% year over year, the largest annual jump since the pandemic, while contractors’ bid prices rose only 3.5%. That gap between input costs and what you can charge is the actual squeeze, and no amount of invoice auditing closes it. What auditing closes is the part of the increase that is not market.
Check your movers against the matching index:
- Copper fittings and wire: copper and brass mill shapes ran 645.990 in January 2025 and 803.275 preliminary in June 2026.
- PVC and CPVC: plastics pipe ran 171.280 in January 2026 and 182.609 preliminary in June 2026, and plastics pipe fittings and unions ran 334.420 and 354.724 preliminary over the same months. No BLS series splits PVC from CPVC from PEX, so pick the closer of these two and accept that.
- Conduit, strut, hangers and anything steel: steel mill products ran 315.369 in January 2026 and 361.439 preliminary in June 2026.
- HVAC equipment: unitary air-conditioners, except air source heat pumps ran 280.520 in January 2026 and 297.025 preliminary in May 2026, which is the newest reading because that series publishes about a month behind the others in this list. Heat pumps are a separate series and moved the other way, 146.923 in January 2026 to 141.564 preliminary in June. Match the series to what you install rather than blending them.
BLS marks 2026 months preliminary, so re-pull the current value before you quote a number at anyone.
If your copper fitting is up 20% and the copper index is up a similar order, that is the market and the conversation is about your escalation language, not your rep. If your fitting is up 25% while the relevant index barely moved, that increase belongs to your account specifically, and it has a name: material price creep.
Also check the four things that are not price at all. While you are in the file: the same invoice number appearing twice with different dates, quantities billed above what the packing slip says, math that does not re-add, and quote numbers on invoices that no longer match the quote you signed. Those are errors rather than pricing, they are usually credited without argument when they are fresh, and they are frequently the fastest money in the whole exercise.
Week 3: close the gates so month two is not a repeat
Auditing the past is worthless if the same holes stay open. Three controls, all cheap.
A PO number on every purchase, including counter runs. Even a handwritten number on the ticket. Without POs there is no committed cost, and contractors risk thinking a job is more profitable than it really is because the material still to come is invisible. This is the single highest-return habit in the plan and it is also the one the field will resist hardest. Make it fifteen seconds, not a form.
A matching rule, written down. Three-way matching cross-checks the invoice, the purchase order and the delivery receipt, and two-way matching applies when receiving documents are not available, which for a lot of counter-run trades is most of the time. Decide your tolerance on purpose. Common AP practice lets invoices within 2% to 3% of the PO pass automatically, or applies full matching only above a dollar cutoff. Understand what that buys and what it lets through: a 2% tolerance is a standing invitation to 2% increases. Set the threshold where it matches your volume, and add one rule tolerances do not cover, which is comparing this month’s unit price to last month’s regardless of PO agreement. Details in three-way matching for contractors.
Packing slips come back. Receiving is the only place a quantity error is catchable. Photograph the slip at the truck. If the field will do nothing else, get this one.
Name the owner. One person owns price history and the supplier conversation, with the authority to phone the rep. Not a committee. Who that should be at various shop sizes is worked through in who manages material costs in a contractor business.
Standard response to a mismatch. When invoice, PO and receipt disagree, the standard AP move is to withhold payment and request a corrected invoice or a credit note rather than to pay and chase. Paying first and chasing later is how a promised credit becomes a credit that never lands.
Week 4: use what you found
Now, and only now, you talk to the supplier. You are arriving with document numbers rather than a feeling, which is a completely different conversation.
Send the credit requests first, and send them fast. Recent lines get corrected. Old ones get explanations. For each item: invoice number, line number, part number, price charged, and the price and date from your last purchase of the same part. Two sentences. There is a copyable version of that email if you would rather not draft it.
Then ask for the agreement in writing. Effective dates, the categories it covers, the discount or multiplier on each, and which branches have it loaded. Ask specifically which categories are not covered, because that list is where the leaks are. Ask whether your regular parts sit on a special pricing agreement, and whether that agreement survives a substitution. It usually does not, because SPAs are negotiated per product and per customer rather than following an equivalent part.
Then, separately, have the pricing conversation. Not in the same email as the credit requests. The ground rules are in how to negotiate with your supply house, but the short version is that twelve months of your own unit prices changes what you are able to ask for.
Keep the tone right, because the relationship is worth more than the credits. One contractor on the Mike Holt forums put the register well: “We use several supply houses. I an friendly to all of them but not friends with any of them. All I want is good materials at a fair price.” That is the posture. Wary, specific, not hostile. Your distributor is fronting cash, filing rebate claims and holding stock for you, and none of the errors in your file required anyone to act in bad faith.
Set the recurring job. Same day every month. Re-export, sort, read the top 20, send anything fresh. The first month took eight hours because you were building the baseline. Month two takes one.
What this actually gets you
Be realistic about the shape of the return. Three buckets, in order of how quickly they pay.
Billing errors. Duplicates, quantity mismatches, arithmetic. Fast money, usually credited without friction, and finite. Once your controls are in, this bucket shrinks by design, which is the point.
Price fall-through. Lines that priced off the counter default instead of your agreement, because a branch was not loaded, an agreement lapsed, or a part was substituted. Recoverable when recent, preventable going forward.
Drift. The slow one. Parts that crept up 2% at a time under every tolerance rule you have. This bucket is usually a repricing conversation rather than a credit request, and it is the largest of the three over a year.
None of the three is the biggest lever in your business. Winning the right work at the right margin is. But this is the lever that takes eight hours and does not depend on the market cooperating.
The 30-day checklist
- Export twelve months of line-level history from every supplier portal
- Email reps for an item usage report where the portal cannot export
- Photograph the paper invoices
- Normalize unit of measure; separate freight, fuel, core and environmental lines
- Rank items by total spend and pull the top 20
- Chart first price to last price on each; flag anything above 10%
- Check each flagged item against the matching BLS series
- Scan for duplicate invoice numbers, quantity mismatches and re-add the math
- Institute a PO number on every purchase including counter runs
- Write down your matching rule and your tolerance, and say what it does not catch
- Get packing slips photographed at the truck
- Name one owner for price history, with authority to call the rep
- Send credit requests on the fresh errors, with document numbers
- Request the pricing agreement in writing: dates, categories, rates, branches
- Book the same hour next month
Sources
- Prices for Construction Materials Climb at Highest Rate Since the Pandemic, AGC of America
- Copper and brass mill shapes, PPI series WPU102502, BLS
- Plastics pipe, PPI series WPU07210603, BLS
- Plastics pipe fittings and unions, PPI series WPU07210604, BLS
- Steel mill products, PPI series WPU1017, BLS
- Unitary air-conditioners, except air source heat pumps, PPI series WPU114802, BLS
- Heat pumps, PPI series WPU11480734, BLS
- Job Costs and Purchase Orders, Foundation Software
- 3-Way Invoice Matching, Stampli
- 3-Way Match, Tipalti
- 3-Way Matching, BILL
- Understanding Special Pricing Agreements, Enable
- Ethics of sharing competing supply house prices, Mike Holt forums