How to Document Code Upgrade Items for a Roof Supplement (So the Carrier Actually Pays)
On this page
You wrote the estimate, the adjuster approved the line items, and the check came back. Then your crew tears off the old roof and the inspector shows up, and now the carrier owes for things that were never on the original scope: drip edge that code requires but the old roof didn't have, ice-and-water shield two feet past the interior wall line, a ridge vent because the attic was never ventilated to code, and re-decking because the sheathing spacing fails the current fastener pull-out requirement. None of that was hail or wind damage. All of it is legally required to put the roof back in service. And almost none of it is on the original estimate, because the original estimate was written to match the damage, not the building code.
That gap is where supplements live. A code-upgrade supplement is the formal request to the carrier to pay for work that the local building code mandates as a condition of the repair, even though the upgrade itself was not caused by the loss. It is one of the most consistently underpaid, under-documented, and under-collected parts of a storm claim, and it is also one of the few areas where the documentation is almost entirely objective. Hail coverage is an argument. A code requirement is a citation. If you can show the adjuster the code section, the jurisdiction's adoption of it, and a photo of the existing non-compliant condition, you are no longer negotiating opinion against opinion. You are reading the law back to them.
The catch is that most contractors document code items the way they document everything else: badly, late, and without the paper trail that turns a request into an obligation. They write "drip edge per code" on a supplement line and wait for the desk adjuster to push back. Then they spend three weeks in email tag because they never attached the code section, never confirmed the jurisdiction adopted it, and never photographed the missing component before the tear-off buried the evidence. The work below is the system that closes that gap: how to identify every code-triggered item on a specific roof, how to build the evidence file that makes each one collectible, and how to present it so the carrier pays it without a fight you don't have time for.
What a code-upgrade item actually is, and why carriers owe for it
Start with the distinction that everything else hangs on, because contractors blur it constantly and adjusters exploit the blur.
There are three buckets of work on a roof claim. Damage repair is putting back what the storm broke: shingles, underlayment, flashing that the hail or wind destroyed. Code upgrade is work the current building code requires when you replace a roof component, regardless of whether the storm caused the deficiency. Betterment or maintenance is work that improves the roof beyond code or addresses pre-existing wear that has nothing to do with the loss or the code. Carriers owe for the first two under most policies. They do not owe for the third.
The reason code upgrades are owed at all is a policy provision called Ordinance or Law coverage (sometimes "Building Ordinance or Law," sometimes "Code Upgrade Coverage"). When a covered loss triggers a repair, and a law or ordinance in force at the time of the loss requires you to bring the repaired portion up to current code, the cost of that compliance is covered up to the Ordinance or Law limit on the policy. The component did not have to be damaged by the storm. It has to be required by code as a condition of legally completing the storm repair. That is the legal mechanism, and it is why a missing drip edge on an undamaged eave can still be a covered cost: you cannot legally re-roof without it, and the re-roof is a covered loss.
Three things have to all be true for a code item to be collectible:
- There is a covered loss that triggers the repair. No covered loss, no trigger. You cannot supplement code upgrades onto a roof the carrier denied. The roof replacement has to be owed first.
- A code in force in that jurisdiction requires the upgrade as a condition of the repair. Not a recommendation, not a manufacturer's best practice, not "the way it should be done." An adopted, enforceable code section.
- The policy carries Ordinance or Law coverage with available limit. Most homeowner policies include some O&L coverage, often 10 percent of the dwelling limit (Coverage A), sometimes as an endorsement that can be increased. If the policy has zero O&L coverage, the code upgrade is owed by the homeowner, not the carrier, and that is a conversation you have early, not after the supplement bounces.
The reason this matters operationally: when an adjuster pushes back on a code item, they are almost always attacking one of those three legs. "That's not storm damage" attacks leg one or confuses the buckets. "Show me where code requires that" attacks leg two. "The policy doesn't cover that" attacks leg three. Your documentation has to pre-answer all three, because you do not get to be in the room when the desk adjuster reads your file.
The buckets, side by side
| Work type | Caused by the loss? | Required by code? | Carrier owes? | Example |
|---|---|---|---|---|
| Damage repair | Yes | N/A | Yes (under dwelling) | Replacing hail-bruised field shingles |
| Code upgrade | No | Yes | Yes (under Ordinance or Law) | Adding drip edge code now requires |
| Betterment | No | No | No | Upgrading 3-tab to architectural by choice |
| Maintenance | No | No | No | Replacing rotted fascia from old leaks |
The line between code upgrade and maintenance is the one that costs contractors money. Decking replacement is the classic trap. If the deck is rotted from a chronic leak, that is maintenance and the carrier will (correctly) decline it. If the deck has to come off because the existing board spacing or thickness cannot hold the fasteners that current code requires for the new roof's wind rating, that is a code upgrade and it is owed. Same plywood, completely different claim outcome, and the difference is entirely in how you documented why it had to be replaced.
The code-trigger inventory: every item to check on a roof
Before you can document code items, you have to know which ones exist on the specific roof in front of you. The mistake is treating this as a memory exercise. Do it as a checklist, the same checklist, every roof, because the items that get missed are the ones that aren't on the part of the roof you happened to be standing on.
The governing references for steep-slope residential roofing in most of the country are the International Residential Code (IRC), Chapter 9 (Roof Assemblies, sections R901–R908), and for low-slope and commercial, the International Building Code (IBC), Chapter 15. Most jurisdictions adopt some edition of the IRC with state and local amendments. The edition matters: the 2009 IRC, 2015 IRC, and 2021 IRC differ on several roofing provisions, and the version your jurisdiction adopted is the version that governs. More on pinning that down below.
Here is the trigger inventory, organized by where it lives on the roof.
Eaves and rakes
- Drip edge. The IRC has required drip edge at eaves and rake edges since the 2012 edition (IRC R905.2.8.5 in current editions). Older roofs frequently have no drip edge at all, or have it only at the eave and not the rake. If the existing roof lacks code-compliant drip edge, installing it is a code upgrade. Document the absence before tear-off; once the new metal is on, you cannot prove the old roof didn't have it.
- Ice barrier (ice-and-water shield). In regions with a history of ice damming, the IRC (R905.1.2) requires an ice barrier from the eave edge to a point at least 24 inches inside the exterior wall line. On low-pitch or long-eave roofs this can be two or three courses of membrane. Many older roofs have none, or have a single course that doesn't reach the wall line. The jurisdiction's adoption of the ice-barrier provision is climate-dependent, so confirm it locally.
- Starter strip. Where code or the manufacturer's listed installation requires a manufactured starter course (which the code incorporates by reference when it requires installation per manufacturer instructions), a hand-cut starter from field shingles may not comply.
Field and fasteners
- Underlayment. Code specifies underlayment type and, on steeper or high-wind roofs, double-layer or specific attachment. A roof being brought to current code may require an underlayment the old roof never had.
- Fastening / nailing pattern. Wind-region code requires a minimum number of fasteners per shingle (commonly six in higher wind zones versus four). This drives the decking question, because the fasteners have to bite into adequate sheathing.
- Decking (re-decking). This is the high-dollar code item. Code requires the roof deck to be capable of holding the specified fastener withdrawal load. If existing decking is undersized board sheathing with gaps wider than code allows, delaminated, or too thin for the required fastener penetration, it must be replaced or overlaid to comply. This is a code upgrade, not damage, and it is owed when documented as a code requirement rather than as rot.
Penetrations and transitions
- Flashing. Code requires corrosion-resistant flashing at walls, chimneys, and penetrations, and prohibits reuse of certain flashings. Reused or non-compliant flashing is a code item.
- Valley construction. Code specifies valley metal or membrane. Older woven or non-compliant valleys can trigger an upgrade.
- Pipe boots / vent flashing. Code-compliant boots at plumbing vents; cracked or non-compliant existing boots that code requires be replaced.
Ventilation
- Attic / roof ventilation. The IRC (R806) requires a minimum net free ventilation area, typically 1/150 of the attic floor area, or 1/300 where a balanced ridge-and-soffit system meets the code's conditions. A roof that was never ventilated to code triggers added intake and exhaust (soffit vents, ridge vent, or equivalent) as a code upgrade when re-roofed. This is one of the most frequently missed code items because it is invisible from the ground and the homeowner never knew it was deficient.
Structural and miscellaneous
- Number of layers / tear-off. Code limits the number of roof covering layers (generally a maximum of two for asphalt shingles, and full tear-off is required in several conditions including water-soaked existing roofing or where the existing roof is in a condition that won't support a new layer). A "recover" estimate that code prohibits means a full tear-off is the code-required scope.
- Sheathing fastening to framing. In some high-wind jurisdictions, re-roofing triggers re-nailing the existing deck to the rafters/trusses to current uplift standards.
If you build one artifact from this section, build a standing code-trigger checklist your inspectors carry on every roof. Each line gets one of three marks: present and compliant, absent, or non-compliant. The "absent" and "non-compliant" marks become your supplement line items, each with the photo and code citation attached.
A code item reference you can keep at the truck
Inspectors do better work when the lookup is in their hand instead of in their head. The table below pairs the common code items with the governing reference, the evidence the line needs, and the framing that keeps it out of the "maintenance" pile. Editions and amendments vary by jurisdiction, so the section numbers are the common current locations, not a substitute for confirming local adoption.
| Code item | Common governing reference | Evidence to capture | Framing that gets it paid |
|---|---|---|---|
| Drip edge (eave + rake) | IRC R905.2.8.5 | Photo down eave and rake showing bare edge under old shingles | Code requires drip edge; existing roof has none |
| Ice barrier | IRC R905.1.2 | Photo + tape from eave to interior wall line | Required from eave to 24 in. inside wall line in cold regions |
| Underlayment type/layers | IRC R905.1.1 | Photo of existing underlayment, slope reading | Current code specifies type/attachment old roof lacks |
| Fastening (6-nail) | IRC R905.2.6 / wind tables | Note wind zone, count existing fasteners | High-wind zone requires more fasteners per shingle |
| Re-decking / substrate | IRC R905.2.6 + sheathing tables | Tape across board gaps, board thickness, plywood span | Substrate must hold required fastener withdrawal load |
| Valley metal/membrane | IRC R905.2.8.2 | Photo of existing valley construction | Code-compliant valley required; existing non-compliant |
| Flashing (wall/chimney) | IRC R903.2 | Photo of reused or corroded flashing | Corrosion-resistant flashing required; reuse not permitted |
| Pipe boot / vent flashing | IRC R903.2.1 | Photo of cracked/non-compliant boot | Code-compliant boots required at penetrations |
| Attic/roof ventilation | IRC R806 | Attic photo, soffit intake, calc of net free area | 1/150 (or 1/300 balanced) net free area required |
| Layer count / tear-off | IRC R908.3 | Edge shot showing existing layers | Recover prohibited; full tear-off is code scope |
Print it laminated, one per inspector. The point is consistency: when every inspector marks the same ten items the same way, your supplements stop varying house to house and your approval rate climbs because the carrier sees the same clean format every time.
A worked supplement, dollars and all
Numbers make the case concrete. Take the 1978 ranch from earlier, 22 squares, approved hail loss, board sheathing, no drip edge, no ice barrier, no code-compliant ventilation. The original estimate covered the damage repair (tear-off and re-shingle) but carried none of the code items. Here is what a fully-documented code block adds, using illustrative regional figures (your actual price list governs):
| Code line | Quantity | Basis | Illustrative amount |
|---|---|---|---|
| Drip edge, eave + rake | ~220 LF | Measured perimeter | $360 |
| Ice barrier | ~3 squares | Eave-to-wall coverage, measured | $520 |
| Re-deck (board to plywood) | 22 SQ | Gaps to 1 in., fastener requirement | $3,300 |
| Ridge vent + soffit intake | ~45 LF ridge | Net free area deficit calculated | $640 |
| Code-compliant pipe boots | 3 ea | Penetration count | $180 |
That is roughly $5,000 in legitimately owed Ordinance or Law work that the original estimate ignored, on a single average roof. Re-decking carries most of it, which is exactly why the decking line has to be bulletproof: it is the highest-dollar code item and the one most often denied as maintenance. Note what is not on the list: nothing framed as storm damage, nothing framed as rot, nothing that improves the roof beyond code. Every line is a code requirement with a measurement behind it. Multiply that across a storm's worth of older roofs and the difference between a crew that documents code items and one that doesn't is not marginal; it is a different business.
Build the evidence file before the tear-off, not after
The single most expensive mistake in code-item supplementing is timing. The evidence for most code items is the existing non-compliant condition, and the existing condition stops existing the moment your crew starts the tear-off. A missing drip edge cannot be photographed once the new drip edge is on. Inadequate decking spacing cannot be measured once the deck is sheathed over. Reused flashing cannot be proven once it is in the dumpster.
So the evidence file is a pre-tear-off discipline, and it has to happen on the same trip as the inspection or, at the latest, the morning the crew arrives, before the first shingle comes off.
The four pieces every code line needs
For each code item, your file needs four things. Miss any one and the line is contestable.
- A photograph of the existing condition that shows the deficiency, with enough context to prove it is this roof. Wide shot for location, tight shot for the detail. A missing drip edge needs a shot down the rake showing bare sheathing edge under the old shingles.
- A measurement where the deficiency is dimensional. Ice barrier coverage, decking board gaps, ventilation net free area, fastener count. Put a tape measure in the photo. "Gaps exceed 1/8 inch" is an opinion; a tape showing a 3/4-inch gap is a fact.
- The code citation, by section number and adopted edition, for the jurisdiction. R905.1.2, 2021 IRC, as adopted by [jurisdiction]. Not "per code." The section.
- Proof of adoption, meaning evidence the jurisdiction enforces that edition. This is the leg adjusters attack most because contractors skip it. A building department web page, the permit requirements page, or a printout of the state's adopted code is enough.
A pre-tear-off photo protocol that actually holds up
Shoot in this order, every roof, so nothing is forgotten under time pressure:
- Address verification: the house number or a street-level shot tying the photos to the property and date.
- Eave run, both directions: drip edge present/absent, ice barrier line.
- Rake run, both directions: drip edge present/absent.
- Each penetration: boots, vent flashing, condition and type.
- Each wall/chimney transition: flashing type, reuse evidence.
- Each valley: construction type.
- Deck, from the attic if accessible, and from the roof at any open or soft area: board vs. plywood, spacing, thickness, with tape.
- Ventilation: ridge condition, soffit intake (or absence), any gable vents, and the attic interior showing the venting situation.
- A layer-count shot at any roof edge or where you can see the rake stack, to establish one vs. two existing layers.
Timestamp everything. Most phones embed EXIF date data; do not strip it. If your documentation software lets you stamp the date and address onto the image, do that too, because adjusters and reinspectors trust an overlaid, embedded date more than a claimed one.
Worked example: the decking line that gets paid
Decking is where the four-part discipline earns its keep, so walk a real one.
The roof is a 1978 ranch, 22 squares, board-sheathed (1x6 planks), being replaced after an approved hail loss. The original estimate has no decking. Your inspector, from the attic, sees plank gaps and a couple of soft boards near a vent. Here is the difference between a paid line and a denied one:
- Denied version: "Replace decking, 22 SQ — deck is bad." No measurement, no code, reads as rot/maintenance. Adjuster declines: "decking is maintenance, not storm."
- Paid version: Photo from the attic, tape measure across a plank gap reading 1 inch. Photo of the same area from the roof. Note: "Existing 1x6 board sheathing has gaps up to 1 inch, exceeding the maximum gap that will support the fastener withdrawal resistance required for the specified Class [X] wind rating under IRC R905.2.6 / manufacturer's listed installation as adopted under [edition]. Solid sheathing or overlay required to legally fasten the new roof covering. Code upgrade under Ordinance or Law." Photo of the building department page showing the adopted edition.
Same boards. The second one is a citation; the first one is a complaint. Note also what the paid version does not claim: it does not call the boards storm-damaged. Trying to get decking paid as hail damage is how contractors get caught and lose credibility on the whole file. Get it paid as what it is: a code requirement.
Pin the jurisdiction and the adopted edition (the step everyone skips)
A code citation is worthless if the jurisdiction didn't adopt that code, or adopted a different edition with an amendment that changes the rule. This is the most-skipped step and the easiest one to get right, and getting it right is what turns "I think code requires this" into a closed line.
Codes are adopted at the state or local level, and the edition lags the national release by years. A jurisdiction might be on the 2018 IRC in 2026. States amend freely: some delete the ice-barrier requirement, some raise the wind fastening, some add their own provisions. So "the IRC requires drip edge" is true nationally and irrelevant locally until you confirm the local adoption.
How to pin it, fastest path first:
- Check the building department's website for the property's jurisdiction. Most list the adopted codes and editions on a "codes" or "permits" page. Screenshot it.
- Check the state's building code agency. Many states adopt a statewide code with a published effective date and amendment document. The ICC also publishes a state-by-state adoption map.
- Call the building department if the web isn't clear. Ask: "What edition of the IRC is currently adopted and enforced for residential re-roofing permits, and are there state or local amendments to Chapter 9?" Write down who you spoke to and when.
- Pull the permit requirements. When you pull the re-roof permit, the requirements often spell out the exact code items the inspector will check: drip edge, ice barrier, ventilation, decking, nailing. A permit that requires drip edge inspection is the cleanest possible proof that drip edge is code-required there.
Keep a jurisdiction code sheet per municipality you work in: adopted edition, key amendments to roofing provisions, a link and screenshot, and the date you verified it. Update it annually or when the jurisdiction adopts a new edition. This turns a per-claim research task into a lookup, and it makes your supplements consistent across a whole storm-affected area instead of re-litigating the same code section on every house.
The permit itself does double duty. A pulled permit that lists code-required inspections is often the single most persuasive document in the file, because it proves the local authority will not pass the roof without those items. An adjuster can argue with your reading of R905; they cannot argue with the city refusing to close the permit.
Knowing which roofs justify this work before you knock
Everything to this point is what you do once a roof is in claim. The economics of code-item supplementing also depend on a question you face earlier: which roofs are worth putting a crew and an inspector on in the first place. Code upgrades are most valuable, and most numerous, on older roofs in jurisdictions that have adopted newer codes, because the gap between when the roof was built and what code now requires is exactly where the upgrade items pile up. A 1978 board-sheathed roof in a county that just moved to the 2021 IRC is a code-supplement-rich target: no drip edge, no ice barrier, board decking, no code-compliant ventilation. A 2016 roof built to a recent code has almost no upgrade gap.
That is also a storm-and-route question. After a hail or wind event, you want crews on the roofs that both took the storm and carry the largest legitimate code gap, because those are the claims where the supplement work pays for the labor of doing it right. This is where address-level roof data changes the order of operations. RoofPredict scores roofs house-by-house from aerial imagery, giving a roof-age range per address rather than a single date, and models storm exposure per roof from the physics of the event rather than a county-wide hail polygon. Used the way it is meant to be used, it tells you which roofs in a hit neighborhood are old enough that the code-upgrade gap is real, and which were re-roofed recently enough that the storm claim, if any, will be thin and the code items minimal.
Be honest about what that does and does not give you. The age output is a range, not a permit date, so it tells you a roof is likely 18 to 25 years old, not that it was installed in 2003; you still verify the actual condition and the actual code gap on the roof. The storm model gives you odds that a given roof was in the damaging core, not proof that it was; the inspection still has to find and document the damage, and the code items still have to be cited and photographed exactly as described above. What it changes is the sequencing: instead of knocking a whole subdivision and discovering after the fact that half the roofs are too new to carry meaningful claims or code gaps, you put your inspectors first on the addresses where both the storm exposure and the age-driven code gap are highest. The documentation discipline doesn't change. The targeting in front of it gets sharper, which means more of your inspection hours land on roofs where the supplement is worth writing.
The measurements that turn opinions into facts
Several code items are dimensional, which is a gift, because a number with a tape measure in the photo is not an opinion an adjuster can wave off. The contractors who lose dimensional lines are the ones who describe them in words ("gaps are too big," "not enough ventilation") instead of measuring them. Three calculations come up constantly; run them right and the line defends itself.
Ventilation: the net free area calculation
Attic ventilation is the most-skipped legitimate code item because it is invisible from the ground, and it is also the easiest to nail down with arithmetic. The IRC requires a minimum net free ventilation area of 1/150 of the vented attic floor area, reducible to 1/300 when a balanced intake-and-exhaust system meets the code's conditions and the intake is positioned per the provision.
Worked example: a 1,600-square-foot attic footprint. At 1/150 that is 1,600 / 150 = 10.67 square feet of net free area required, or 1,536 square inches. At the reduced 1/300 with a balanced system, that is 5.33 square feet, or 768 square inches, split roughly half intake (low, at the soffits) and half exhaust (high, at the ridge). Now you photograph what exists: if the attic has two small gable vents totaling 120 square inches of net free area and no soffit intake, the deficit is plain, and the ridge-vent-plus-soffit-intake line is a documented code requirement, not a sales upsell. Put the footprint dimensions, the requirement, the existing net free area, and the deficit in the line note. The adjuster cannot argue with the subtraction.
A trap to avoid: net free area is not the same as the physical size of the vent. A vent's net free area is the open airflow area after the screen and louvers, and the manufacturer publishes it. Use the published net free area, not the vent's outer dimensions, or your calculation overstates what exists.
Ice barrier: measuring the coverage line
The ice-barrier requirement is dimensional in a way that catches contractors who eyeball it: the membrane must extend from the eave edge to a point at least 24 inches inside the exterior wall line, measured along the roof slope, not the horizontal. On a low-slope roof with a wide overhang, that horizontal-plus-24-inches translates to a longer run up the slope, which can push the coverage to a third course of membrane. Measure the overhang, find the wall line, add 24 inches horizontally, then convert to slope length using the pitch. Photograph the tape on the existing roof showing how far the old membrane reached (often not at all, or only a single course at the edge). The deficit between required slope coverage and existing coverage is your quantity.
Decking: the gap and span numbers that matter
For board sheathing, code and the shingle manufacturer's listed installation set a maximum gap because the fastener has to land in wood, and a fastener that bridges a wide gap has no withdrawal resistance. Measure the widest gaps with a tape in frame. For plywood or OSB, the issue is thickness and span rating: a deck too thin for the rafter spacing won't hold fasteners to the code-required withdrawal load. Note the rafter spacing (typically 16 or 24 inches on center) and the existing panel thickness. A 3/8-inch panel on 24-inch centers is a documented substrate deficiency; a 3/4-inch panel on 16-inch centers is fine. The measurement decides it, and the measurement is what you photograph.
When you write any dimensional line, the format is the same: the requirement (the code number), the measured existing condition (with the tape in the photo), and the deficit (the gap between them). Requirement minus existing equals owed. That subtraction, shown on paper, is what converts a contestable judgment call into a line the carrier pays.
What pros get wrong about reinspections and disputes
Even a clean file sometimes draws a reinspection, a second carrier representative sent to verify the supplement. Contractors treat this as an adversarial event and panic. Done right, a reinspection is where good documentation wins decisively, because the reinspector is comparing your evidence to the roof, and if the roof is already torn off, your pre-tear-off file is the only record of the existing condition that exists. Be present for the reinspection, bring the full evidence file printed, and walk each code line in the same closed-argument order: here is the existing condition photo, here is the measurement, here is the code section, here is the jurisdiction's adoption, here is the permit requiring it. A reinspector who arrives expecting to trim your supplement and instead finds every line pre-answered usually leaves it intact, because overturning a fully-cited code line means writing a denial that contradicts the building department.
Where contractors lose reinspections is the opposite case: they documented after tear-off, or not at all, and now they are asking the reinspector to take their word that the old roof lacked drip edge. The reinspector cannot verify a condition that no longer exists and has no photo, so they decline it, and they are right to. The reinspection did not cost you the line; the missing pre-tear-off photo did, weeks earlier.
A second thing pros get wrong: arguing the wrong leg. When a code line is disputed, identify which of the three legs the adjuster is attacking before you respond. If they say "not storm damage," do not pile on more damage photos; that is answering a question they did not ask. They are conceding the code item is undamaged, which is the whole point of Ordinance or Law. Re-state the coverage mechanism. If they say "show me the code," do not argue the roof took hail; cite the section. Matching your response to the actual objection saves the weeks that contractors burn answering objections the adjuster never raised.
Finally, a quiet one: contractors leave the permit out of the file because pulling it costs a little money and time, and the permit is frequently the strongest single document they could attach. A re-roof permit that lists drip edge, ice barrier, ventilation, and decking among its required inspections is the jurisdiction telling the carrier, in its own words, that these items are mandatory to legally complete the roof. Pull the permit, attach the requirements, and several of your hardest code lines stop being arguments.
Writing the supplement so it gets paid the first time
Documentation gets the line owed. Presentation gets it paid without a month of back-and-forth. These are different skills and contractors who are strong at the first are often sloppy at the second.
Structure the supplement as a closed argument per line
Every code line in the supplement should be self-contained and answer the three legs before the adjuster can attack them. A line that reads "Drip edge - $X" invites a question. A line that reads like the following closes it:
Drip edge, eave and rake — [LF] @ [unit] = $[total]. Existing roof has no drip edge at eave or rake (see photos DE-1, DE-2, taken [date] pre-tear-off). IRC R905.2.8.5 requires drip edge at eaves and rake edges. [Jurisdiction] enforces the [edition] IRC (see adoption screenshot, permit #[number] requires drip-edge inspection). Code upgrade required to complete the covered roof replacement; covered under Ordinance or Law coverage.
That single paragraph answers: there is a covered loss (the roof replacement), code requires it (R905.2.8.5), the jurisdiction adopted it (screenshot + permit), and the coverage mechanism is named (Ordinance or Law). The desk adjuster has nothing left to ask. They either pay it or they have to put a denial in writing that contradicts the city's own permit, which they will not do.
Match the carrier's price list and line-item format
Most carriers estimate in Xactimate or a comparable platform. Write your supplement to the same line items and the carrier's regional price list, so the comparison is apples-to-apples. If you supplement in your own format with your own pricing, you hand the adjuster a reason to spend three weeks "reconciling" it. Use the carrier's line codes (for example, the specific drip edge, ice-and-water, and re-decking codes), the prevailing price list for the ZIP, and quantities tied to your measurements. Where a code item has no clean Xactimate code, document the cost basis (labor + material with quantities) so it can be added cleanly.
Order of operations on the file
- Inspect and build the pre-tear-off evidence file (photos, measurements, code-trigger checklist filled).
- Pin the jurisdiction and edition; attach adoption proof; pull the permit.
- Map each code item to a line code and the carrier's price list.
- Write each line as a closed argument with photo references, citation, adoption, and coverage mechanism.
- Submit as a supplement to the original estimate, clearly flagged as code/Ordinance-or-Law items, separate from any storm-damage supplements so the adjuster can approve the code block on its own merits.
- Confirm the policy's O&L limit and flag early if items will exceed it, so the homeowner isn't surprised by a shortfall.
- Track and follow up on a fixed cadence (below).
Supplement line checklist
Before any code line goes out, confirm:
- Pre-tear-off photo(s) referenced by ID and attached
- Measurement attached where the item is dimensional
- Code section cited by number and adopted edition
- Adoption proof (department page / permit / state code) attached
- Coverage mechanism (Ordinance or Law) named
- Line code and price-list pricing match the carrier's platform
- Quantity tied to a measurement, not estimated
- Item is framed as code requirement, not as storm damage or rot
Handling the four pushbacks you will actually get
You will get the same handful of objections on code items across carriers and adjusters. Each has a clean answer if your file is built right, and a weak answer if it isn't.
"That's not storm damage." Correct, and you never claimed it was. Code upgrades are owed under Ordinance or Law coverage because the covered loss triggers a code-compliant repair, not because the upgraded component was damaged. Re-state the mechanism and point to the O&L provision. If the adjuster's denial conflates the buckets, that is a documentation win for you, because their reasoning is wrong on its face.
"Show me where code requires that." This is the easy one if you did the work: section number, adopted edition, adoption proof, and ideally the permit requiring the inspection. If you find yourself unable to answer it, the problem is your file, not the adjuster. Never bluff a code citation. A wrong section number burns your credibility on every line in the file.
"The policy doesn't cover code upgrades." Check the declarations. Most policies carry some O&L coverage; many are 10 percent of Coverage A by default. If it genuinely has none, the item is owed by the homeowner and you have that conversation honestly and early. If it does carry O&L and the adjuster says otherwise, ask them to identify the policy language excluding it, in writing.
"Decking is maintenance." The most common and most defeatable when documented right. If you wrote the decking line as rot, you will lose. If you wrote it as a code-driven fastener-substrate requirement with a measured gap or thickness and the citation, you point to that and the adjuster is now arguing against the building department's fastener requirement, not against you. The framing you chose at documentation time decides this objection.
A note on professional boundaries that keeps you out of trouble: your job on a code supplement is to document conditions, cite the code, and price the work. The carrier decides coverage and the homeowner owns the claim. You are not adjusting the loss, not promising a specific approval, and not guaranteeing the deductible outcome. Stay in the documentation-and-estimating lane and your supplements are clean. Step into promising coverage results and you've created a liability that no supplement is worth.
Tracking, follow-up, and the metrics that tell you it's working
A supplement that sits in an adjuster's queue earns nothing. The contractors who collect code items reliably treat the post-submission phase as a tracked process, not a hope.
A simple follow-up cadence
- Day 0: Submit the supplement, log the date, amount, and adjuster contact.
- Day 3: Confirm receipt. A short message: "Confirming you received the code supplement submitted [date], reference [#]. Happy to walk through any line." This also surfaces a misrouted file before it costs two weeks.
- Day 7–10: If no response, follow up referencing the specific lines and the attached documentation.
- Day 14: If still open, escalate per the carrier's process or request a reinspection with your documentation in hand.
Keep every touch in writing. A documented follow-up trail is also what supports escalation if a carrier sits on a clearly-owed, fully-documented code item.
Metrics worth tracking
If you supplement at any volume, track these by month and by carrier:
| Metric | What it tells you |
|---|---|
| Code items identified per roof | Whether your inspectors are running the full trigger checklist |
| Code supplement $ per job | The size of the gap you're recovering |
| Approval rate on code lines | Documentation quality; low rate means weak files, not stingy carriers |
| Days to approval | Whether your follow-up cadence is working |
| Denials by reason | Which leg (loss / code / coverage) you're losing on, so you fix the pattern |
The denials-by-reason number is the most useful. If you are losing on "show me the code," your inspectors aren't citing sections. If you're losing on "not covered," you're not checking O&L limits before you submit. If you're losing on "maintenance," your decking lines are written as rot. Each failure mode points at a specific fix in the workflow above.
Common mistakes that leave code money on the table
- Documenting after tear-off. The evidence is the existing condition; it's gone once the crew starts. This is the number-one cause of denied code lines.
- "Per code" with no section. A citation without a section number is not a citation. It reads as a guess and gets treated as one.
- Skipping adoption proof. Citing a national code without confirming local adoption lets the adjuster say "not here." The screenshot or permit closes it.
- Writing decking as damage. Get it paid as a code substrate requirement, not as hail or rot. The framing decides the outcome.
- Mixing code items into the damage supplement. Keep the Ordinance-or-Law block separate so it can be approved on its own clean merits.
- Not checking the O&L limit. Submitting code items on a policy with no O&L coverage wastes everyone's time and surprises the homeowner. Check the declarations early.
- Missing ventilation. It's invisible from the ground and the homeowner never knew it was deficient, so it's the most-skipped legitimate code item. Run the attic check every time.
- Inconsistent jurisdiction research. Re-litigating the same code section house by house in the same storm area. Build the per-jurisdiction code sheet once and reuse it.
- Promising the homeowner an outcome. You document and cite; the carrier decides coverage. Stay in your lane.
A repeatable system, start to finish
Put the pieces in order and the whole thing becomes a procedure your team runs the same way every time:
- Target sharper. Use roof-age range and storm-exposure modeling to put inspectors first on roofs old enough to carry a real code gap and exposed enough to carry a real claim. Older roof in a recently-updated jurisdiction equals the richest code-supplement opportunity.
- Inspect with the trigger checklist. Every roof, every line: present, absent, or non-compliant.
- Build the pre-tear-off evidence file. Photos, measurements, timestamps, in the standard shooting order, before the first shingle comes off.
- Pin the jurisdiction and edition. Adopted edition, amendments, adoption proof, permit pulled, all on the per-jurisdiction code sheet.
- Write each code line as a closed argument. Photo, measurement, section, adoption, coverage mechanism, carrier price list.
- Submit the code block separately from damage items, flag the O&L mechanism, confirm the limit.
- Track and follow up on a fixed cadence; log everything in writing.
- Measure denials by reason and fix the workflow step each denial points to.
The contractors who collect code upgrades reliably are not better negotiators. They are better documenters. A code requirement is one of the few things on a roof claim that is objectively true, written down in a published code, enforced by a building department that will not close the permit without it. Your only job is to read it back to the carrier with a photo, a measurement, a section number, and proof the jurisdiction adopted it. Do that consistently and the code block on your supplements stops being a fight and starts being a line the carrier pays because there is nothing left to argue about.
FAQ
What is a code-upgrade item on a roof supplement?
It is work the current building code requires when you replace a roof component, even though the storm did not cause that component's deficiency. Examples include adding drip edge, extending ice-and-water shield to the code-required line, replacing inadequate decking so it holds code-required fasteners, or adding ventilation to meet the minimum net free area. It is paid under Ordinance or Law coverage because a covered loss triggered a repair that code requires be completed to current standards.
Why do carriers owe for code upgrades if the storm didn't cause them?
Because of a policy provision called Ordinance or Law (or Building Ordinance or Law) coverage. When a covered loss triggers a repair and a law or ordinance in force requires the repaired portion be brought to current code, the cost of compliance is covered up to the policy's O&L limit. The component does not have to be storm-damaged; it has to be legally required to complete the covered repair.
What evidence does each code line need to get approved?
Four things: a pre-tear-off photo of the existing non-compliant condition, a measurement where the item is dimensional (ice barrier coverage, decking gaps, ventilation area), the exact code section by number and adopted edition, and proof the jurisdiction adopted that edition (a building department page, the state code, or the permit requirements). Missing any one of the four makes the line contestable.
Why does the timing of documentation matter so much?
Because the evidence for most code items is the existing non-compliant condition, and that condition disappears the moment the tear-off starts. A missing drip edge can't be photographed once the new metal is on; inadequate decking can't be measured once it's sheathed over. The evidence file is a pre-tear-off task done on the inspection trip or the morning the crew arrives, before the first shingle comes off.
How do I get re-decking paid as a code item instead of having it denied as maintenance?
Document it as a code-driven substrate requirement, not as rot. Photograph the existing board spacing or thickness with a tape measure in frame, then cite the fastener-withdrawal requirement for the specified wind rating under the adopted IRC and note that solid sheathing or overlay is required to legally fasten the new roof. If you write the line as 'decking is bad,' it reads as maintenance and gets declined. If you write it as a measured code requirement with a citation, the adjuster is arguing against the building department, not against you.
How do I find out which code edition my jurisdiction enforces?
Check the local building department's website for adopted codes, check the state building code agency or the ICC's state adoption map, or call the department and ask which IRC edition is enforced for residential re-roofing and whether there are amendments to Chapter 9. Pulling the re-roof permit is the strongest proof of all, because the permit's required inspections often spell out the exact code items the inspector will check.
What if the policy has no Ordinance or Law coverage?
Then the code upgrades are owed by the homeowner, not the carrier, and you have that conversation early rather than after a supplement bounces. Many homeowner policies include some O&L coverage by default (often 10 percent of the dwelling limit), and it can sometimes be increased by endorsement. Always check the declarations and confirm the available limit before submitting code items, and flag early if the items will exceed the limit.
Should code items go on the same supplement as storm-damage items?
Submit the code/Ordinance-or-Law items as a separate block, clearly flagged, so the adjuster can approve them on their own merits. Mixing them into the damage supplement lets a dispute over one storm line stall the whole file, and it muddies the legal basis, since code items are owed under a different provision than damage repairs.
How do I respond when an adjuster says 'that's not storm damage'?
Agree, because you never claimed it was. Code upgrades are owed under Ordinance or Law coverage precisely because the covered loss triggers a code-compliant repair, not because the upgraded component was damaged. Re-state the mechanism and point to the O&L provision. If the adjuster's denial confuses code upgrades with storm damage, their reasoning is wrong on its face, which strengthens your position.
How can I tell which roofs are worth inspecting for code-upgrade supplements?
The richest opportunities are older roofs in jurisdictions that have adopted newer codes, because the gap between how the roof was built and what code now requires is where the upgrade items pile up. A recently re-roofed home has almost no gap. Address-level data like RoofPredict gives a roof-age range and models storm exposure per roof, so after a storm you can put inspectors first on roofs both old enough to carry a real code gap and exposed enough to carry a real claim. The age is a range and the storm model is odds, not proof, so you still verify the actual condition and document every code item on the roof.
The Roofline by RoofPredict
Stay Ahead of Roofing Market Changes
Join The Roofline by RoofPredict for weekly roofing intelligence: material price signals, storm demand, insurance and regulatory updates, sales tactics, and local contractor opportunities.
Sources
- International Residential Code (IRC) — Chapter 9, Roof Assemblies — codes.iccsafe.org
- International Building Code (IBC) — Chapter 15, Roof Assemblies and Rooftop Structures — codes.iccsafe.org
- ICC — Code Adoption by State (Adoption Maps) — iccsafe.org
- NRCA — National Roofing Contractors Association — nrca.net
- IBHS — FORTIFIED Roof and Roof Performance Standards — ibhs.org
- FEMA — Building Codes and Ordinance or Law / Code Enforcement — fema.gov
- Texas Department of Insurance (TDI) — Homeowners Insurance and Roof Claims — tdi.texas.gov
- NOAA / National Weather Service — Storm Events Database — ncdc.noaa.gov
- NOAA Storm Prediction Center (SPC) — Severe Weather Reports — spc.noaa.gov
- OSHA — Fall Protection in Residential Construction / Roofing — osha.gov
- U.S. Census Bureau — American Housing Survey (Age of Housing Stock) — census.gov
- FTC — Consumer Protection and Disaster-Related Repair Guidance — consumer.ftc.gov
- ICC — Building Safety and Permit/Inspection Process — iccsafe.org
- RoofPredict — roofpredict.com
Related Articles
What Is an ITEL Shingle Test, and When Do Roofers Actually Need One?
An ITEL test tells you the exact shingle on a roof and whether a current product still matches it. Used right, it's the cleanest piece of documentation you can hand a homeowner on a partial-loss roof.
Drip Edge as a Code Item: How to Document and Estimate It So It Stays on the Roof
Drip edge is the line item crews most often forget and adjusters most often cut. Here is how to prove it's code-required, document it on the roof, and price it right.
How to Measure a Roof Accurately for an Insurance Estimate
The exact measuring workflow restoration crews use to build an accurate, defensible roof estimate the carrier won't kick back.