A shop buying $40,000 a month in material, whose prices drift up 6% over a year, pays about $15,600 more in that year than it would have at January prices, and exits the year on a run rate roughly $28,800 above where it started. That is the material cost increase impact on contractor profit in dollars: not a percentage that sounds survivable, but a number that in many shops is a quarter to a third of the year’s net.
The arithmetic is not complicated. What makes it invisible is that the drift arrives in half-percent monthly increments spread across hundreds of line items, and the profit damage arrives all at once in March when the accountant closes the year.
Below is the full calculation, why the pass-through you assume you get is smaller than you think, and what the number looks like once you decide to do something about it. The dollar figures are illustrative arithmetic on stated assumptions, not survey data, and your own spend and margin will move them.
The base case, stated plainly
Assumptions, all illustrative:
- Material spend: $40,000 a month, $480,000 a year, at January prices.
- Drift: 6% over twelve months, arriving evenly at roughly 0.5% a month.
- The drift is unannounced, so nothing gets re-estimated mid-year.
Why 6% is a reasonable case rather than a pessimistic one: AGC reported that the producer price index for inputs to new nonresidential construction rose 8.4% year over year in May 2026, the largest annual jump since the pandemic, and 6.6% year over year in April 2026. For the full year 2025 the same measure of materials and services used in nonresidential construction was up 3.3% December to December. Six percent sits in the middle of that range. Individual categories ran far hotter: aluminum mill shapes up 48.8% and copper and brass mill shapes up 26.8% year over year in the May 2026 reading.
What 6% drift actually costs, month by month
| Month | Price level vs January | Monthly spend | Extra vs January prices |
|---|---|---|---|
| 1 | +0.5% | $40,200 | $200 |
| 2 | +1.0% | $40,400 | $400 |
| 3 | +1.5% | $40,600 | $600 |
| 4 | +2.0% | $40,800 | $800 |
| 5 | +2.5% | $41,000 | $1,000 |
| 6 | +3.0% | $41,200 | $1,200 |
| 7 | +3.5% | $41,400 | $1,400 |
| 8 | +4.0% | $41,600 | $1,600 |
| 9 | +4.5% | $41,800 | $1,800 |
| 10 | +5.0% | $42,000 | $2,000 |
| 11 | +5.5% | $42,200 | $2,200 |
| 12 | +6.0% | $42,400 | $2,400 |
| Year 1 total | $495,600 | $15,600 |
Two numbers matter in that table and they are not the same number.
$15,600 is the year-one cash cost. It is the sum of twelve partial months of drift. It is what left the bank account that you did not plan for.
$28,800 is the run rate you are carrying into year two. At month twelve you are paying 6% more than January on every purchase. Annualized, 6% of $480,000 is $28,800. If year two drifts another 6% and nothing gets re-estimated, year two costs you the $28,800 you inherited plus roughly $16,500 of fresh drift on the higher base.
That gap between the cash cost and the run rate is why this problem feels manageable the first year and unmanageable the third.
Why you do not simply pass it through
The standard reassurance is that material costs get billed to the customer. Sometimes. The published data says the pass-through is real but incomplete, and the gap is the whole problem.
In the May 2026 AGC release, input prices rose 8.4% year over year while contractors’ bid prices rose only 3.5%. In April the same comparison ran 6.6% against 3.6%. AGC’s own economists have named that spread as a risk to project delivery rather than a comfortable margin. Whatever portion of the increase does not clear the bid price is absorbed somewhere, and on a fixed-price job it is absorbed by you.
Structurally, your exposure depends on the contract:
- Time and material or cost plus. Material moves pass through at cost or cost plus markup. Your exposure is close to zero on price, though a rising material base still consumes your working capital and your bonding capacity.
- Fixed price, short duration. Modest exposure. The bid and the buyout happen close enough together that drift has little room to run.
- Fixed price, long duration, no escalation clause. Full exposure. This is where a 6% drift lands entirely on your net.
- Fixed price with an escalation clause. Partial recovery, depending on the trigger. ConsensusDocs 200.1 is marketed as the standard material price escalation amendment, listing the specific impacted materials on a project and adjusting the contract price against an agreed objective market index in both directions. Escalation clauses commonly pair a minimum trigger threshold with a cap, with a sample 3% trigger cited in that discussion. Note what a trigger means for our base case: with a 3% trigger, the first half of the year’s drift is yours regardless.
Two practical cautions on escalation clauses. Under ConsensusDocs 200.1 the contractor gets no overhead and profit on the equitable adjustment, and both parties carry a duty to mitigate. And any index-based or cost-based adjustment requires that you kept the paper: initial quotes, bid proposals, purchase orders and invoices are what supports the claim. A clause without a document trail behind it recovers nothing.
Translating the cost into profit, and into revenue
Now the part that lands. Take the same shop and add two more illustrative assumptions: material runs about 30% of revenue, and the shop nets 5% before owner distributions. On $480,000 of material that implies roughly $1.6 million of revenue and roughly $80,000 of net profit.
| Illustrative measure | Amount |
|---|---|
| Revenue | $1,600,000 |
| Material at January prices | $480,000 |
| Year-one drift cost, unrecovered | $15,600 |
| Net profit before the drift | $80,000 |
| Net profit after the drift | $64,400 |
| Share of net profit consumed | 19.5% |
| Year-two run rate cost | $28,800 |
| Share of net profit at run rate | 36% |
And the number that tends to stop the conversation: at a 5% net margin, replacing $15,600 of lost profit requires $312,000 of additional revenue. That is a job, or several. Nobody would run a $312,000 job for free, but a great many shops absorb the equivalent through unnoticed line-item drift and never see it as the same transaction.
Change the margins and the ratios move but the conclusion does not. At an 8% net the drift consumes 12% of profit in year one. At a 3% net it consumes 65%. Thin-margin shops are not slightly more exposed to price drift. They are catastrophically more exposed, because material is a larger share of a smaller cushion.
The part you can actually recover
Not all 6% is recoverable, and a post that claims otherwise is selling something. Break the drift into three parts:
Genuine commodity movement. Copper moved. Steel moved. The BLS index for copper and brass mill shapes ran 645.990 in January 2025 and 803.275 in June 2026 (preliminary); steel mill products went from 315.369 in January 2026 to 361.439 in June 2026 (preliminary). Your distributor paid that too. This part comes back only through your estimating and your contract terms, never from your supplier.
Unannounced margin drift and lookup failures. Prices that moved for reasons unrelated to any index: an agreement that lapsed, a branch that never had your rate loaded, a substituted part number that carried no special pricing behind it, a job quote that ran out. This part is recoverable, and it is recoverable as a credit on fresh invoices once you know what to do about a price that moved without notice.
Straight billing errors. Duplicates, quantity mismatches, quoted-versus-invoiced gaps. Also recoverable, and the fastest of the three.
The separation is arithmetic, not judgment. Standard variance accounting gives you the tool: materials price variance equals (actual price minus standard price) times actual quantity. Set your standard price at what you estimated, compute the variance per SKU, then check each large variance against the relevant published index. Whatever the index does not explain is your recoverable bucket. Our post on separating real commodity moves from creep walks that comparison in detail.
What to actually do, in order
- Establish the baseline. Pull twelve months of invoices for your top twenty SKUs by annual spend, not by unit price. Build a unit-price trail for each, normalized to a consistent unit of measure.
- Compute your own drift rate. Weight each SKU’s percentage move by its share of your spend. That single number is the input to every decision below, and almost no shop has it.
- Split it three ways. Index-explained, unexplained, and outright error. Compare against the BLS series relevant to your trade.
- Send the errors and the unexplained lines while they are fresh. Recent lines get credited; old ones get an explanation. The credit request email template keeps it short and unemotional.
- Re-estimate against current prices, not last year’s. Your bid database is the largest source of loss here, because a stale unit price loses the money before you ever buy anything.
- Get an escalation clause into fixed-price work of meaningful duration, with a trigger you can actually reach and an index you can actually pull.
- Match invoices to POs and receipts. The three-way match catches the quantity and duplicate errors that variance analysis alone will miss.
- Take the documented trail into your next rate conversation. A price history is the one thing you can bring to that meeting that the other side cannot dispute. Negotiating with your supply house covers what to ask for once you have it.
The short version
- A 6% drift on $40,000 a month in material costs about $15,600 in year one and leaves you carrying a $28,800 annual run rate into year two.
- Bid prices have not kept pace with input prices in the published data, so assume partial pass-through, not full.
- On illustrative 5% net margins, that year-one figure is roughly a fifth of annual profit and would take $312,000 of extra revenue to replace.
- Some of the drift is real commodity movement and is not recoverable from your supplier. Say so out loud, and go after the rest.
- The recoverable part gets recovered on fresh invoices, with a unit-price trail attached. Not at year end, and not from memory.
Your supply house is not the adversary in this arithmetic. Distributors are absorbing the same input moves, fronting cash on rebate claims, and passing through costs they did not choose either. What is missing is a record, on your side, of what you used to pay.
Sources
- Prices for construction materials climb at highest rate since pandemic, AGC of America
- Surging materials and energy costs drive construction input prices sharply higher in April, AGC of America
- Double-digit increases in aluminum, steel and copper costs, AGC of America
- Inputs to nonresidential construction, goods PPI (WPUIP2312001), BLS
- Copper and brass mill shapes PPI (WPU102502), BLS
- Steel mill products PPI (WPU1017), BLS
- ConsensusDocs 200.1, Time and Price Impacted Materials
- De-escalating the impact of price escalation, ConsensusDocs
- ConsensusDocs 200.1: an amendment to adjust for time and price impacted materials, Kegler Brown
- Escalation clause, Procore
- Materials price variance, AccountingTools