Every fixed-price contract contains an assumption nobody writes down: that material will cost roughly what it cost when the estimate was built. On a job starting in three weeks, that is harmless. On a job starting in four months, it is a bet — and the contractor is the only party who placed it.
In this article
- The gap between the bid and the buy
- The four tools, and when each one fits
- Writing a clause that survives a conversation
- Selling the clause without losing the job
- Getting price locks from suppliers
- Your subcontractors have the same problem
- Lead times are the other half of the exposure
- One job, three ways
- Five numbers to track
- Frequently asked questions
The gap between the bid and the buy
Every fixed-price contract contains an assumption almost nobody writes down: that the material will cost roughly what it cost when the estimate was built. On a job that starts three weeks after signing, that assumption is usually harmless. On a job that starts in four months, it is a bet — and the contractor is the only one taking it.
The exposure is larger than most builders think, because it compounds across three separate gaps:
- Bid to signature. Two to twelve weeks in residential work, longer in commercial. The estimate is already aging while the client decides.
- Signature to purchase. Design finalization, permitting and scheduling. This is the longest and most dangerous gap.
- Purchase to installation. Lead times, which for some categories now run months rather than weeks.
On a $340,000 remodel where material is 42% of cost, a 9% increase across the material package is $12,852 — which on a typical 16% net margin is more than a fifth of the entire profit on the job, lost to a number the contractor did not control and did not agree to absorb.
An escalation clause that nobody explained at signing is a clause you will not enforce, because using it in month three feels like a bait-and-switch to a client who never registered it. The protection comes from a clause that was discussed out loud, with a worked example, before the contract was signed. The paper is necessary and it is the smaller half.
The four tools, and when each one fits
1. The bid expiration date. The simplest and most underused. Every proposal carries a validity period — commonly 15 to 30 days — after which pricing is subject to review. It costs nothing, it is universally accepted in the industry, and it eliminates the worst exposure, which is a client signing a four-month-old number.
2. Allowances. For items the client has not yet selected, carry a stated dollar allowance rather than a guessed price. This is standard practice and it converts an unknown into a documented number that adjusts transparently at selection. It works best on finishes and fixtures and poorly on structural material, where the quantity is known and only the price is uncertain.
3. The escalation clause. A contract provision stating that if the cost of a named material category increases by more than a threshold percentage between contract date and purchase date, the increase above that threshold is passed through with documentation. Threshold and cap are negotiable; the documentation requirement is what makes it fair and enforceable.
4. Early purchase and storage. Buying the volatile material at contract signing and storing it. This eliminates price risk entirely at the cost of working capital, storage, and damage or theft exposure. For a category that represents a large share of a job and has been moving fast, it is frequently the best answer.
Most well-run companies use all four, applied selectively: expiration dates on every proposal, allowances on selections, escalation clauses on the two or three categories with real volatility, and early purchase where the exposure justifies tying up cash.
Keep reading — free
The rest of this article is worth the 20 seconds
Tell us where to send it and the full piece unlocks right here, along with everything else on this blog.
Rather just talk? Message us on WhatsApp.
Writing an escalation clause that survives a conversation
A clause that is vague enough to cover everything will be resisted by every client and every lender. A specific one gets signed. Six elements:
- Named categories. Not all materials — the specific ones with exposure, listed. Lumber, steel, copper, roofing, concrete, or whatever your job actually turns on.
- A reference price and date. The supplier quote, attached to the contract as an exhibit, dated.
- A threshold. Increases below a stated percentage, commonly 5% to 10%, are absorbed by the contractor. This is what makes the clause credible rather than a blank check.
- Documentation required. A written supplier quote or invoice showing the new price, provided to the client before the purchase.
- Symmetry. If the price falls below the reference by the same threshold, the client receives the benefit. This single addition removes most objections and costs almost nothing in practice.
- A cap or an off-ramp. A maximum aggregate adjustment, or the right for either party to terminate with defined compensation if the increase exceeds a stated figure. Clients accept exposure far more readily when it is bounded.
One note that matters commercially: a clause with symmetry and a cap closes deals. It reads as risk sharing rather than risk transfer, and it distinguishes you from competitors whose bids look lower because they contain the same risk unpriced and undisclosed.
Selling the clause without losing the job
The clause has to be explained in the meeting, not discovered in the contract. Four sentences do it:
"Your job starts in about four months. I can price the lumber today, but I cannot control what it costs in January."
"So here is how I handle it. If it moves less than 7%, that is mine — I absorb it. Above 7%, I show you the supplier invoice and we split the difference above that line, up to a cap of $9,000."
"And it works both ways. If it comes down more than 7%, you get the reduction, same documentation."
"The alternative is that I add a contingency to the price today to cover a risk that may not happen. I would rather you pay for what actually occurs."
That last sentence is the one that converts. Every client understands that the risk is being priced somewhere, and most prefer paying for reality over paying for a guess.
A contractor bidding the same job without any escalation provision has done one of two things: added a silent contingency to the price, or accepted a risk they have not thought about. Naming that difference — without naming the competitor — reframes a price comparison into a risk comparison, which is the only comparison where the higher bid can win.
Getting price locks from suppliers
The upstream half of the problem is negotiable and most builders never try. Suppliers deal with volatility constantly and have mechanisms for it.
- Quote validity extensions. A standard quote may hold for 15 days; ask for 60 or 90 on a specific job. Many suppliers will do it for a committed order.
- Deposit-backed price holds. A percentage down to lock pricing and reserve stock. This is common on windows, cabinetry and long-lead items and is frequently available for asking.
- Blanket orders. A committed annual volume at agreed pricing, released as needed. Available to builders with predictable throughput and worth pursuing well before you think you qualify.
- Purchase and store at the supplier. Buying now with delivery later, held at their warehouse. Removes your storage and damage risk while eliminating price risk.
One discipline makes all of these easier: give suppliers a forecast. A builder who tells a supplier in October what they expect to buy in February gets treated differently from one who calls the week material is needed — better pricing, better allocation during shortages, and more willingness to hold a number.
Your subcontractors have the same problem
A general contractor who protects the top of the contract and ignores the bottom has moved the risk rather than managed it. Every subcontractor quote carries the same aging problem, and when a sub's number expires the GC absorbs the difference or loses the sub mid-project — both of which are worse than having addressed it.
Three practices align the two ends of the contract:
Match the terms. If your contract with the owner has a 7% threshold on lumber, your agreement with the framer should reference the same mechanism. Mismatched terms mean you are exposed in the gap between them, which is exactly where money disappears on long jobs.
Ask for the sub's quote validity in writing, and treat a 15-day validity on a job starting in four months as an unpriced risk rather than a quote. Many subs will extend the date if asked, and the ones who will not have just told you something useful about the number.
Buy material yourself where it makes sense. On categories with real volatility, supplying material to the sub and paying labor only removes the sub's markup on the escalation and gives you direct control of the purchase timing. It adds coordination work and it is frequently worth it on the two or three largest material lines.
There is a relationship dimension too. A GC who lets subs eat every increase silently gets bid higher next time — the sub simply adds a private contingency that shows up as a worse number on your next job. Handling escalation openly with the trades you use repeatedly produces sharper pricing over years, because nobody has to hedge against you.
Lead times are the other half of the exposure
Price is only one of the two things that moves. Availability moves too, and a schedule built on assumed delivery dates fails in ways that cost more than the material ever did — crews standing down, sequence broken, and liquidated damages in commercial contracts.
Three habits keep this manageable. Track lead times as live data, not as memory: a simple list of the categories that matter with the current quoted lead time, refreshed monthly with a call to the supplier, is enough and almost nobody keeps one. Order the long-lead items first, before the items you will install first — windows, cabinetry, specialty equipment and anything custom get ordered at contract signing regardless of when they are installed. And put delivery dates in the schedule as tasks with owners, so a slipping order is visible weeks before it becomes a stopped crew.
It is also worth writing into the contract what happens when a specified product becomes unavailable. A substitution clause defining who proposes alternates, who approves, and how a price difference is handled prevents a two-week argument in the middle of a job over something neither party caused.
One job, three ways
A $340,000 whole-house remodel. Material package $142,800. Contract signed in September, major purchases in January. Assume material costs rise 11% in that window.
Scenario A — no protection. The increase is $15,708, absorbed entirely by the builder. Net margin on the job falls from a planned $54,400 to $38,692, a 29% reduction in profit.
Scenario B — contingency priced in. The builder adds 6% to the material package as a hedge, raising the bid by $8,568. If the increase happens, $7,140 is still absorbed and margin lands at $47,260. If it does not happen, the builder keeps the contingency — but the higher bid may have lost the job to a competitor who priced no hedge at all.
Scenario C — escalation clause with a 7% threshold and symmetry. The bid stays competitive at the original price. Material rises 11%; the first 7% ($9,996) is absorbed by the builder as agreed, and the remaining 4% ($5,712) is passed through with documentation. Margin lands at $44,404, and the client received an honest explanation with an invoice attached.
The comparison that matters is not C against B — it is C against A, which is a $5,712 difference on a single job, produced entirely by a paragraph and a five-minute conversation at signing. Across eight jobs a year, that is the cost of a truck.
Five numbers to track
- Days from bid to material purchase, by job — this is your actual exposure window and most builders have never measured it.
- Material cost variance against estimate, by category, on every completed job.
- Percentage of contracts containing an escalation provision, and how many were invoked.
- Supplier quote validity obtained, versus standard terms.
- Margin erosion attributed to material cost, tracked separately from labor and change orders.
Material volatility is not a temporary condition to wait out — it is a permanent feature of the business that most contracts still pretend does not exist. The builders who handle it well are not the ones who guess the market correctly. They are the ones who stopped carrying a risk they were never paid to carry, and said so out loud before anyone signed anything.
Measure your exposure window before the next bid
Send us your typical days from bid to material purchase and the share of cost that is material. We will show you what a normal price movement costs you on a single job, and which of the four protections fits the way you actually sell work.
Frequently asked questions
What should a material escalation clause contain?
Six elements, and specificity is what gets it signed. Named categories rather than all materials — list the specific ones your job turns on, such as lumber, steel, copper, roofing or concrete. A reference price and date, with the supplier quote attached to the contract as a dated exhibit. A threshold, commonly 5% to 10%, below which the contractor absorbs the increase, which is what makes the clause credible rather than a blank check. A documentation requirement, meaning a written supplier quote or invoice showing the new price is provided before purchase. Symmetry, so that a decrease below the reference by the same threshold benefits the client — this single addition removes most objections and costs little in practice. And a cap or termination off-ramp, because clients accept exposure far more readily when it is bounded.
How do you explain an escalation clause without losing the job?
By raising it in the meeting rather than letting it be discovered in the contract, in about four sentences. Say that the job starts in four months and that you can price the material today but cannot control what it costs then. Explain the mechanism concretely: below 7% you absorb it, above 7% you show the supplier invoice and pass through the difference up to a stated cap. Say that it works both ways, with the client receiving reductions on the same documentation. Then give the alternative honestly — the other option is adding a contingency to today's price to cover a risk that may not happen, and you would rather they pay for what actually occurs. That final sentence converts, because every client understands the risk is being priced somewhere and most prefer paying for reality.
How can contractors lock material prices with suppliers?
Four mechanisms, all commonly available and rarely requested. Quote validity extensions: a standard quote may hold 15 days, but many suppliers will extend to 60 or 90 on a committed order if asked. Deposit-backed price holds, where a percentage down locks pricing and reserves stock, which is routine on windows, cabinetry and long-lead items. Blanket orders, committing an annual volume at agreed pricing released as needed, available to builders with predictable throughput and worth pursuing earlier than most think they qualify. And purchase-and-store at the supplier, buying now with delivery later, which removes price risk without adding your own storage and damage exposure. One habit makes all four easier: giving suppliers a forecast, since a builder who signals in October what they will buy in February gets treated differently.
How does material escalation affect subcontractor agreements?
It moves rather than disappears if only the owner contract is protected. Every subcontractor quote ages the same way, and when a sub's number expires the general contractor either absorbs the difference or loses the sub mid-project. Three practices align both ends. Match the terms, so that a 7% lumber threshold with the owner is mirrored in the framer's agreement, because mismatched terms leave you exposed in the gap between them. Ask for each sub's quote validity in writing, and treat a 15-day validity on a job starting in four months as an unpriced risk rather than a quote. And consider buying volatile material yourself and paying labor only, which removes the sub's markup on any escalation and gives direct control of purchase timing on the two or three largest lines.
What should be in a contract about long lead times and unavailable products?
A substitution clause, and delivery dates treated as scheduled tasks. Price is only half the exposure — availability moves too, and a schedule built on assumed delivery dates fails in ways that cost more than the material, with crews standing down and sequence broken. Three habits help: track lead times as live data with a monthly supplier call rather than from memory; order long-lead items first, before the items installed first, so windows, cabinetry, specialty equipment and anything custom are ordered at contract signing; and put delivery dates in the schedule as tasks with owners so a slipping order is visible weeks early. The substitution clause should define who proposes alternates, who approves them and how a price difference is handled, which prevents a two-week argument neither party caused.