Treadstone Associates
Case File · Contract Changes & Claims

Roofer’s escalation clause survives a price spike

Anonymised, illustrative composite. A roofing subcontractor running two jobs at once, both priced on CCDC 2 stipulated-price subcontracts, watched a membrane and insulation material spike hit both sites in the same month. One job absorbed the loss in full. The other didn’t lose a dollar of it.

Treadstone Associates · Updated 2026

At a glance

  • • Roofing subcontractor running two concurrent jobs, both on CCDC 2 – 2020 stipulated-price subcontracts.
  • • A membrane and insulation material price spike of roughly 19% hit both projects in the same month.
  • • Job A’s subcontract carried a negotiated material-price escalation rider tied to a named index.
  • • Job B relied on CCDC 2’s default fixed-price structure alone, with no rider.
  • • Job A recovered its full increase; Job B absorbed roughly $46,000 with no adjustment mechanism available.

The situation

Both jobs had gone to tender within a few months of each other, priced by the same estimator, using the same supplier quotes for membrane and insulation. On paper the two subcontracts looked interchangeable: same trade, same systems, same rough square footage, same general region. The only meaningful difference was in the fine print each owner’s counsel had negotiated into the subcontract before signing.

The roofer had two projects running at once, both priced and contracted the same way — a CCDC 2 – 2020 subcontract for the roofing scope, each stipulated as a single fixed lump sum for the work. Neither subcontract was unusual by the trade’s standards; CCDC 2 is the industry-standard prime contract form and most subcontracts mirror its structure downward.

A supply shock hit the roofing membrane and insulation market that month, pushing material cost up roughly 19% on the systems both projects specified. Both jobs were mid-construction, both had firm material take-offs already priced into their stipulated sums, and both roofers on the crew were billing the same supplier at the new, higher price.

The problem

CCDC describes the CCDC 2 form itself as establishing “a single, pre-determined fixed price, or lump sum, for the project.” That description is not incidental — it is the whole structure of the contract. Nothing in the standard form adjusts the price for a material cost increase after signing. Any protection against exactly this kind of spike has to be drafted in as a separate, explicit rider; it is never assumed, and it never appears by default just because a spike feels unfair.

Job A had that rider: a material-price escalation clause tied to a named published price index for roofing membrane, triggering a price adjustment once the index moved more than a stated threshold above its value at bid date. Job B’s subcontract, negotiated a few months earlier for a different owner, had no such clause — just the CCDC 2 stipulated sum, unmodified.

The numbers

Roughly 19% material cost increase on the affected membrane and insulation systems, hitting both jobs in the same billing cycle. On Job A, the escalation rider recovered the incremental cost above its threshold in full — about $31,000. On Job B, the same percentage increase, applied to a larger material quantity, produced roughly $46,000 of cost the roofer had no contractual mechanism to recover and simply absorbed against its margin.

The kind of volatility that hit both jobs shows up in the published numbers, not just on this one crew’s supplier invoices: Statistics Canada’s Building Construction Price Index recorded non-residential building construction costs up 3.6% year over year in the first quarter of 2026, citing ongoing material sourcing constraints as a contributing factor — exactly the kind of published, third-party series an escalation rider is meant to be tied to, rather than a single supplier’s own price list.

The rule that decided it

This is the bind in its cleanest form: identical contract type, identical market event, opposite result, and the only variable between the two jobs was one negotiated paragraph. CCDC 2’s stipulated-price structure assumes the contractor has priced and absorbed its own risk within the lump sum — that is the trade-off for a fixed, predictable number the owner can budget against. A rider does not modify that assumption for the whole contract; it just carves out one specific, named risk and puts it back on whoever the rider says should bear it.

Had Job A’s rider not existed, its $31,000 would have gone the same way as Job B’s $46,000 — absorbed, with the CCDC 2 stipulated sum standing exactly as signed regardless of what happened to the roofer’s supplier pricing in between.

The outcome

The roofer now insists on the same escalation rider language, modelled on Job A’s clause, on every new stipulated-price subcontract it signs, and tracks the named material index monthly so a future threshold breach can be evidenced quickly rather than argued for after the fact. Job B’s owner was not asked to share the $46,000, and would not have had an obligation to even if asked — the CCDC 2 form gave the roofer no basis to reopen a stipulated sum it had agreed to without a rider protecting it.

For the underlying contract type this all sits on top of, see what a CCDC 2 stipulated-price contract actually fixes, and for how a different trade proved a cost claim of its own kind on the same kind of contract, see a steel erector proved an acceleration claim.

For how AI now helps keep a change-order paper trail current in real time, see AI-assisted change order management.

Takeaways

  • • CCDC 2 fixes a single lump-sum price by design — it does not adjust for a material cost spike unless a separate clause says it does.
  • • A material-price escalation clause has to be an explicit, negotiated rider tied to a named index and a stated threshold; it is never assumed.
  • • The same market event produced a fully recovered cost on one job and a fully absorbed loss on another, on the identical contract form.
  • • Negotiate the rider before signing, while it is still an abstract possibility, not after material prices have already moved.
  • • Track the specific index named in the rider on an ongoing basis, so the threshold is provable the moment it is crossed.

See where AI pays off first in your business.

A 30-minute call is enough to tell you whether AI pays for itself here.