
Every roofer has a version of this story. You tear off a 40-square reroof, find 18 sheets of rotten deck, replace them because the crew is standing there and the sky looks bad, and then spend three weeks trying to collect $2,400 from a homeowner who says nobody told them. Eventually you write it off to keep the review clean. That's not a paperwork problem. That's a system problem, and it started before you ever loaded the truck.
Change orders aren't a sign you estimated badly. On a reroof, you're bidding a structure you cannot fully see. The question isn't whether conditions will differ from the bid — it's whether your contract, your pricing, and your field process are set up to turn those differences into revenue instead of erosion.
It's almost never because the work wasn't legitimate. It's one of these four:
Fix those four and the "we ate it" line item on your P&L largely disappears.
This is the single highest-leverage change you can make, and it costs you nothing.
Every proposal should carry a short unit price schedule covering the conditions you can't see from the ground. These are pre-agreed rates, signed at contract execution, that apply if and only if the condition is found. Typical items:
Two rules on these numbers. First, unit prices should carry a higher margin than your base bid, and that's defensible — you're mobilizing a two-man crew for eight sheets of plywood, absorbing the schedule disruption, and eating the trip to the supply house. Base-bid efficiency doesn't apply. Second, cap your exposure honestly: if you write "$95 per sheet," that number needs to still work when it's 40 sheets on a steep 10:12 with two-story access, or you need tiered pricing by quantity.
A change order is only enforceable if the base scope has a clear boundary to change from. Ambiguity always resolves in the customer's favor — legally in many jurisdictions, and practically in every dispute.
Your scope needs explicit statements on:
This is also where consistency matters more than eloquence. If your scope language is retyped from scratch every bid, exclusions get dropped on the ones you're rushing — which are usually the jobs that go sideways. Standardizing your proposal output so that the scope, exclusions, and unit price schedule generate from your takeoff every time removes the human failure point. That's the point of building bids from a system rather than a blank document.
Discovery-to-approval should take under an hour, not until the end of the week. Train the crew on a fixed sequence:
The one exception is genuine emergency — active water intrusion or an unsafe condition where waiting creates damage. Do the minimum necessary to stabilize, document heavily, and notify in writing the same day describing what you did and why it couldn't wait. Your contract should have a clause authorizing exactly this.
On commercial and institutional work, the contract almost always contains a notice provision — often 7, 10, or 14 days from discovery — requiring written notice of any claim for additional compensation. Miss it and you've waived the claim, no matter how legitimate the work was.
Read that clause before you sign, and put the notice deadline in your project file. Then default to written notice for every condition, even ones you think might not turn into money. Notice costs you an email. Waiver costs you the whole change.
Also watch for these on commercial jobs:
The most common pricing error is treating a change order like an extension of the base bid. It isn't. Your base bid assumes a planned sequence, a full crew, one mobilization, and a single material delivery. A change breaks all of that.
When you price a change, include:
Run the math on that last point. If you're doing 20% net on a $30,000 job and you add $3,000 of change work at cost, your blended margin drops from 20% to about 18.2%. Do that four times a year on a two-crew operation and you've given away a truck.
The customer's frustration is almost never about the money — it's about the surprise. Two things dissolve most of it.
The first is priming during the sale. Walk them through the unit price schedule when they sign, not when you invoke it: "About one in three reroofs of this age turns up some deck rot. If we find it, here's exactly what it costs, and I'll show you photos before we touch anything." Now discovery confirms your expertise instead of contradicting your bid.
The second is presentation. A change order that arrives as a text saying "gonna be another $2,400" reads like a shakedown. The same change presented as a document — the condition, the photos, the pre-agreed rate, the quantity, the math, the signature line — reads like a professional executing a contract. Same money, completely different conversation, and dramatically different approval rates. If your proposal already looks sharp, your change order should look like it came from the same shop.
Log every change order against the original estimate: what was found, what it cost, and — most importantly — whether it was truly unforeseeable or something your takeoff should have flagged.
Patterns show up fast. If you're writing deck replacement changes on 70% of your 1970s-built jobs, that's not a change order pattern, that's a bidding error — build a realistic allowance into the base bid and win the job on accuracy. If you keep getting hit with code upgrades in one jurisdiction, your exclusion language needs a specific carve-out for that AHJ. If one salesperson generates triple the change orders, they're either underselling scope or underinspecting.
The goal isn't zero change orders. A shop with zero change orders is a shop absorbing conditions silently and calling it customer service. The goal is that every change is priced from a rate the customer already agreed to, documented before it's covered, approved in writing before it's built, and invoiced at full margin. Get there and the surprise on the roof stops being a surprise on your P&L.