Address-Level Roof Condition Data for Sales: How to Knock the Right Doors First
On this page
Most roofing sales teams are flying blind down the street. A rep parks the truck, picks a block that "looks good," and starts knocking left to right. By lunch they've talked to nine people, two of whom have a roof old enough or beat-up enough to matter, and the other seven were a coin flip the rep had no way to call before the door opened. That's not a sales problem. It's a targeting problem, and it's the most expensive habit in the trade because every hour your best closer spends on a roof that's fine is an hour they're not standing in front of a roof that's done.
Address-level roof condition data is how you fix the targeting before anyone leaves the office. Instead of treating a neighborhood as one undifferentiated grid of doors, you treat it as what it actually is: a list of individual roofs, each with its own age, its own slope and material, its own exposure to the last few storms, and its own odds of being ready for a conversation. When you can rank those roofs before you build the route, the same crew knocking the same number of doors books more inspections, drives less, and burns out slower. Nothing about the pitch changes. The math of who hears it changes completely.
Below is the operational version of how this works: what the data actually is, where it comes from, how to score and route on it, how to wire it into a CRM and a daily standup, and the places it quietly breaks. The goal is that you finish able to run this Monday, instead of merely nodding along to a concept.
What "address-level roof condition data" actually means
The phrase gets used loosely, so pin it down. Address-level means the unit of analysis is a single parcel, a single rooftop, a single front door, not a ZIP code, a carrier route, or a "storm-affected area" polygon drawn loosely around a county. The difference matters because roofs on the same street can be twenty years apart in age and a full storm-grade apart in damage. A ZIP-level signal tells you the neighborhood got hit. An address-level signal tells you which of the 340 houses in that neighborhood are worth a knock and which are a waste of your rep's voice.
Condition data is a bundle, not one number. In practice it's some combination of:
- Roof age, expressed as a range. This is the single most useful field and the one people most often get wrong by demanding a precise install date. You're not going to reliably get "installed March 2009" for every house in a territory, and you should be suspicious of anyone who claims you can. What you can get, from aerial and satellite imagery compared across years plus permit and parcel records where they exist, is a defensible range: this roof was last replaced roughly 14 to 18 years ago. A range is enough to rank. You don't need the birthday, you need to know who's old.
- Material and roof geometry. Asphalt shingle versus metal versus tile versus flat membrane. Pitch, number of facets, presence of valleys, ridges, chimneys, skylights. This drives both the failure curve (a 3-tab asphalt roof and a standing-seam metal roof age nothing alike) and the eventual job size and complexity.
- Visible condition cues from imagery. Granule loss, streaking, patched sections, missing shingles, tarps, sagging lines, debris. These are imperfect from above and you treat them as hints, not verdicts, but a roof already wearing a blue tarp is not a cold knock.
- Storm exposure modeled per roof. This is where it gets interesting. Hail and wind don't fall evenly. A storm track, hail size, and wind field can be modeled down to the individual roof, so two houses a quarter mile apart can have meaningfully different exposure to the same event. Combined with the roof's age and material, that exposure turns into an odds estimate of whether this specific roof was worn out by this specific weather.
None of these is proof of anything. Age is a range, not a receipt. Modeled storm exposure is a probability, not an adjuster's report. The honest framing, and the one that keeps you out of trouble, is that this data tells you where to look, and the inspection on the ladder tells you what's there. Treat the data as a prioritized to-do list for your eyes, and you'll use it correctly. Treat it as a guarantee of damage, and you'll over-promise on doorsteps and get burned.
The two questions the data answers
Everything useful collapses into two questions a sales manager actually cares about:
- Which roofs are aging out? Independent of any storm, roofs reach the end of their service life and homeowners start thinking about replacement. A roof in the 18-to-25-year band on asphalt is a live conversation even on a calm sunny day. This is your steady, all-season pipeline.
- Which roofs did the last storm actually wear out? When hail or a wind event moves through, the question isn't "did the area get hit" but "which specific roofs, given their age and material and exposure, are now functionally compromised." This is your storm-restoration surge pipeline.
A roof that scores high on both, an older roof in the heart of a hail swath, is the door you knock first this week. A newer roof outside the swath is the door you skip, or at most drop a brand-touch on. The whole discipline is sorting a territory along those two axes and spending your finite knocking hours from the top down.
Why blind canvassing quietly bleeds money
Before the workflow, it's worth being concrete about what the old way costs, because the case for changing it lives in numbers your owner already half-knows.
Run the arithmetic on a single rep. Say a canvasser works a 6-hour knocking window and averages, on a decent day, roughly 40 to 60 doors attempted with maybe 12 to 18 actual conversations (the rest are no-answers). Pick the middle: 15 conversations. If the rep is walking a street blind, the share of those 15 homeowners who have a roof old enough or damaged enough to genuinely need a conversation is whatever the street happens to hold, often a small minority. Say 3 of the 15 are real. The rep just spent a full day to find 3 qualified conversations, and physically walked past dozens of doors they never knocked that might have been better than the ones they did.
Now hold everything constant except the order. Same rep, same 6 hours, same 15 conversations, but the doors are sorted so the rep starts with the roofs most likely to be old or storm-worn. The share of qualified conversations among the first 15 doors climbs because you front-loaded the good ones. You don't magically create demand that isn't there, but you stop spending your earliest, highest-energy hours on the bottom of the list. Reps close better in the first three hours than the last three; spending those hours on better doors is close to free yield.
The second cost is windshield time. A rep working a blind grid still drives the whole grid. A rep working a ranked list drives between clusters of high-priority roofs and skips the dead zones. On a spread-out suburban territory that's real fuel and real hours. The third cost is morale: nothing torches a new canvasser faster than a string of "my roof's only four years old, why are you here" rejections that better targeting would have prevented. Reps quit blind territories. They stay on territories where the doors make sense.
A quick worked comparison
| Metric | Blind grid canvassing | Ranked address-level canvassing |
|---|---|---|
| Doors attempted / 6-hr day | ~50 | ~50 |
| Conversations | ~15 | ~15 |
| Qualified conversations (old or storm-worn roof) | ~3 | ~6-8 |
| Inspections booked / day | ~1-2 | ~3-4 |
| Wasted knocks on newer/undamaged roofs | high | low |
| Driving between good doors | whole grid | clustered |
The numbers above are illustrative, not a promise, and they'll vary wildly by market, roof age mix, and how recently a storm rolled through. The point isn't the exact figures. It's the shape: same effort, more of it pointed at roofs that matter. Doubling qualified conversations per day without adding a single rep or a single hour is the entire pitch for address-level targeting, and it comes purely from changing the order of the list.
Where the data comes from, and how good each source is
You can't trust data you don't understand, so here's the honest provenance of each input and where it gets soft.
Aerial and satellite imagery
The backbone of roof condition data is overhead imagery, both high-resolution aerial (flown by plane, often a few times a year in populated areas) and satellite. Modern imagery is good enough to read roof outline, count facets, identify material in most cases, spot tarps and obvious missing sections, and estimate pitch. Comparing imagery across multiple years is how you detect a re-roof: a roof that visibly changed color, texture, or material between two flyovers got replaced in that window, which tightens your age range.
Where it's strong: geometry, material, footprint, obvious damage, change-over-time. Where it's soft: fine-grained condition (early granule loss is hard to see from above), anything under tree cover, and the exact install date for roofs that haven't visibly changed in the available imagery. Cloud cover, image age, and flight cadence vary by region, so a rural county might have stale imagery while a metro has fresh quarterly flights.
Permit and parcel records
Many jurisdictions require a permit to re-roof, and those permits are often public. A pulled re-roof permit dated 2016 is the closest thing to a roof birth certificate you'll get. The catch is coverage: permit data is patchy, inconsistently digitized, frequently missing for jobs done without permits, and formatted differently in every county. It's gold when present and absent for a huge share of houses. Parcel data (year built, square footage, owner-occupancy) helps you reason about likely original roof age on homes that have never been re-roofed and helps you skip rentals if owner-occupants convert better for you.
Storm data: hail, wind, and the storm track
For storm exposure you're combining several public and modeled sources. Radar-derived hail estimates, ground reports, and storm-track data describe where a storm went and how severe it was. The National Weather Service and the Storm Prediction Center publish storm reports and warnings; radar products give estimated hail size and swath. The modeling step takes that raw weather and resolves it to the parcel: given the storm's path and intensity and this roof's location, slope, and material, what's the modeled exposure.
The critical honesty here: modeled hail at an address is an estimate, not a measurement. Ground truth is the inspection. A modeled 1.5-inch hail exposure means the odds favor real impact damage on a vulnerable roof, but the only way to know is to get on the roof. Use the model to decide whose roof to climb, never to tell a homeowner their roof is definitely damaged before you've looked. That distinction is both an ethics line and a legal one.
Putting sources together
No single source is complete. Imagery gives you geometry and a rough age. Permits sharpen age where they exist. Parcel data fills the gaps and adds owner context. Storm modeling adds the per-roof exposure overlay. The value is in the fusion: a roof that's 16-to-20 years old on asphalt (imagery plus parcel), with no re-roof permit on file (so probably original), sitting under a modeled 1.75-inch hail swath from a storm nine days ago (modeling), is a five-alarm knock. You could never assemble that picture standing on the sidewalk.
The scoring model: turning fields into a knock order
Data you can't rank is just trivia. The job is to compress all those fields into a single sortable priority so a sales manager can hand a rep a list and say "start at the top." Here's a transparent scoring approach you can build in a spreadsheet before you ever buy software, which is also the best way to understand what any vendor's black box is doing.
Step 1: Score roof age (the aging-out axis)
Using the age range and material, assign a points band. Asphalt example:
| Estimated roof age (asphalt) | Age points |
|---|---|
| 0-7 years | 0 |
| 8-12 years | 10 |
| 13-17 years | 25 |
| 18-22 years | 40 |
| 23+ years | 50 |
Adjust the curve by material. A metal or tile roof shifts the bands out by years because those systems last longer; a low-end 3-tab shifts them in. The exact points are yours to tune, the principle is that older roofs earn more priority, weighted by how that material actually ages.
Step 2: Score storm exposure (the storm-worn axis)
For the most recent relevant storm, score modeled exposure:
| Modeled hail / wind exposure | Storm points |
|---|---|
| Outside swath / minimal | 0 |
| Marginal (sub-1-inch hail, moderate wind) | 15 |
| Significant (1-1.5-inch hail or high wind) | 30 |
| Severe (1.5-inch+ hail or damaging wind) | 45 |
Step 3: Combine, then apply multipliers
The naive move is to add the two. That's a fine start: a roof with 40 age points and 45 storm points lands at 85 and goes near the top. But the interaction matters more than the sum, because an old roof in a severe swath isn't just additive, it's the compounding case where damage is most likely and most arguable. Apply a multiplier when both axes are high:
- Both age and storm in the top band: multiply combined score by 1.3.
- Add small modifiers: owner-occupied +5, visible tarp/patch from imagery +20, no re-roof permit on record +5 (likely original roof).
- Subtract: roof under heavy tree cover -10 (imagery unreliable, verify in person), recently permitted re-roof -40 (someone already replaced it).
Step 4: Bucket into tiers
Don't make reps read raw scores. Bucket:
- Tier A (knock first): top decile of the territory. Old, storm-worn, or both. These get knocked this week, in person, by your better reps.
- Tier B (knock next): solid age or solid exposure but not both. Worked after Tier A is exhausted.
- Tier C (touch, don't chase): marginal. A door hanger or a mailer, not a live knock, unless a rep is already on the street with idle capacity.
- Skip: new roofs, recently permitted, clearly outside any storm. Don't spend voice on them.
The tiering is the deliverable. A rep should be able to look at a map with A's lit up and know exactly where to start. The scoring math lives in the office; the field gets a clean, color-coded route.
A Monday-morning workflow you can run
Here's the end-to-end loop, in order, the way a well-run storm-restoration or retail-replacement team actually executes it.
- Define the territory. Draw the boundary for the day or the week. For storm work, this is the swath plus a buffer. For steady retail, it's the next neighborhood in your rotation, ideally one with an older housing stock.
- Pull the address-level data for that boundary. Roof age ranges, materials, storm exposure overlay, permit flags. This is the step that used to be impossible and is now a query.
- Score and tier using your model. Output: every address tagged A/B/C/Skip.
- Cluster the A's geographically. A ranked list scattered across 12 miles is a routing disaster. Group A-tier roofs into tight pods of 15 to 30 doors a rep can walk on foot. This is where you reclaim the windshield hours.
- Assign pods to reps by skill. Your strongest closers get the densest, highest-score pods. New reps get cleaner, friendlier pods to build confidence (or shadow a vet on the hot ones).
- Brief at standup with the why. Reps perform better when they know the roof on the list is a 19-year-old asphalt roof under a hail swath versus a random door. The data gives them an honest, specific reason to knock, which makes the opening line natural instead of canned.
- Knock, log every outcome in the CRM against the address, including the disposition (booked, not home, not interested, already replaced, wrong data). The dispositions are gold for step 9.
- Inspect the bookings. The ladder is where modeled odds become documented fact. Photograph conditions, measure, write the estimate. The data got you to the roof; your inspection and documentation carry the rest.
- Feed outcomes back into scoring. If a whole pod came back "roof's only 5 years old," your age data for that subdivision is off (maybe a builder re-roofed a tract) and you recalibrate. Closed-loop targeting gets sharper every cycle.
The loop is the product. Any single pull of data is a snapshot; the teams that win run this weekly and let the field results tune the model.
Storm response on a clock
Storm work compresses this loop to hours, not weeks, because the first credible, professional contractor on a damaged street tends to book the inspection. After a hail event:
- Within a day, pull the storm overlay and intersect it with your existing roof-age data for the affected area.
- Tier hard: old roofs in the severe swath are Tier A, everything else waits.
- Deploy reps to the densest A-tier clusters first.
- Resist the urge to blanket the whole "storm area." The area got hit; specific roofs got worn out. Knocking the new roofs on the edge of the swath wastes the window when the old roofs in the core are the bookings.
Speed plus precision is the storm-restoration edge. Plenty of contractors get speed. The address-level data is what adds the precision so your speed isn't spent on the wrong doors.
Where RoofPredict fits
Everything above, the age ranges from imagery, the per-roof storm modeling, the scoring and tiering, can be assembled by hand if you have the patience, the data subscriptions, and a spreadsheet wizard. Most contractors don't, which is the gap RoofPredict was built to close. It does the assembly: it tells you which roofs in a territory are due, house by house, by combining a roof-age range per address derived from aerial imagery with storm physics modeled per individual roof, then ranks the doors so your crews knock the roofs the last storm actually wore out and the roofs that are simply aging out.
The honest framing of what it is and isn't matters, so here it is straight. RoofPredict is not a lead-buying service. You're not paying for a list of homeowners who raised their hand; you're getting a ranked, physics-aware view of real roofs so your own reps spend their hours on the right streets. The roof age it gives you is a range, not an install date, because a defensible range is what aerial imagery and records honestly support, and a range is all you need to rank. The storm modeling produces odds that a given roof was worn out, not a verdict that it was, because the verdict only exists once your inspector is on the ladder. Used the way it's meant to be used, it replaces the "this block looks good" guess with a sorted list, and it replaces the post-storm scramble across an entire county with a tight set of clusters where old roofs and real exposure overlap.
What it deliberately doesn't do is decide anything about an insurance claim. RoofPredict points your team at conditions worth documenting. From there the roofer documents what's actually on the roof and writes an estimate, the insurer decides coverage, and the homeowner owns the claim. The data is a targeting tool for your sales operation, full stop. Treat the modeled odds as a reason to go look, never as a promise to a homeowner that their roof is damaged or that anything is covered, and it does exactly the job it should: more of your knocking hours pointed at roofs that are genuinely due.
Wiring the data into your CRM and daily ops
Data that lives in a separate tab nobody opens is data that dies. To actually change rep behavior, the condition signal has to ride inside the tools they already use.
Fields to add at the address level
In whatever CRM or canvassing app your reps live in (the common ones all support custom fields and map pins), attach these to each address record:
- Roof age range (e.g., "16-20 yrs")
- Roof material
- Priority tier (A/B/C/Skip) as a color
- Storm exposure tag (e.g., "1.75in hail, May 14 event")
- Permit flag (re-roof permit on file: yes/no/unknown)
- Last disposition and date
The tier color drives the map. Reps should open the canvassing app and see A-tier pins glowing, B's secondary, Skips greyed or hidden. The cognitive load on the rep drops to near zero: walk to the bright pins, knock, log.
The disposition discipline
The single most common failure is reps not logging outcomes, which starves the feedback loop. Make disposition logging one tap and make it non-negotiable. The dispositions you care about: booked inspection, not home (re-knock candidate), not interested, already replaced (data correction), wrong age (data correction), no such structure (bad parcel). The "already replaced" and "wrong age" tags are what keep your scoring honest over time; without them your model slowly drifts.
A standup that uses the data
A 10-minute morning standup built around the data sounds like this: here's today's territory, here are your assigned A-tier pods, the average roof in your pod is 17-plus years old, this neighborhood took 1.5-inch hail eleven days ago, the goal is X booked inspections, log every door. That briefing does two things: it routes the rep, and it arms them with a specific, truthful reason this roof is worth a knock, which is the difference between a confident opener and a generic one.
The doorstep conversation, done right
Better targeting changes the doorstep even though it doesn't change your pitch, because you're now knocking roofs where there's a real, honest reason to be there. That lets reps open with specifics instead of a script, and specifics convert.
What changes:
- The opener can reference a true, general observation: the neighborhood's housing stock, the recent storm, the typical roof age on the street. Not a claim about this homeowner's roof that you haven't seen.
- The ask is a free inspection, framed as a look, because the entire model rests on the inspection being where truth gets established. You're offering eyes on the roof, not a diagnosis from the sidewalk.
- The honesty plays well: "Roofs in this neighborhood are around the age where they start showing wear, and you took some hail recently, so we're offering to get up there and check. If it's fine, I'll tell you it's fine." That last line closes more doors than any high-pressure line, and it's true.
What you must not do, and where contractors get themselves in legal and ethical trouble, is convert modeled odds into a doorstep guarantee. "Our data shows your roof is damaged" is a sentence you never say, because you haven't been on the roof and the data is odds, not proof. "Your roof is the right age and you're in the storm path, let's take a look" is honest and powerful. The first version over-promises and can drift into the kind of claims that draw scrutiny from state insurance regulators; the second is just a confident, well-targeted offer to inspect. Keep the data in the office as a targeting input and keep the doorstep about getting permission to look, and you stay clean.
A short script frame
- Identify and disarm: who you are, why you're on the street (the general, true reason).
- The look-don't-claim offer: a free, no-obligation inspection.
- The honesty hook: "If your roof's fine, I'll tell you, and you've lost nothing."
- The book: pin a specific time, not "sometime."
The data makes steps one and two land because they're rooted in something real about that street and that roof. The rest is your team's craft.
What pros get wrong
A decade of watching teams adopt targeting data surfaces the same handful of mistakes. Naming them saves you from them.
Demanding exact install dates. Owners reject good age data because it's a range. A range is the honest output and it's all ranking requires. Knowing a roof is "18 to 22 years old" sorts it correctly; insisting on "installed 6/14/2004" for every house is a fantasy that gets you nothing.
Treating modeled storm exposure as proof of damage. This is the dangerous one. Modeled hail at an address is a reason to inspect, not evidence to wave at a homeowner or anyone else. The roof tells the truth; the model just tells you which roof to climb.
Blanketing the whole "storm area." After a storm, reps want to knock everything inside the warning polygon. But the polygon is coarse and the new roofs inside it are still new roofs. Tier hard and spend the window on old roofs in the real swath.
Skipping the feedback loop. Teams pull data once, work it, and never feed field outcomes back. Roof data drifts (tracts get re-roofed, your age estimates have error), and only the dispositions correct it. The closed loop is what compounds.
Putting new reps on the hottest pods. The instinct is to give your best doors to everyone equally. But a green rep can fumble a Tier-A door that a vet would book. Match pod heat to rep skill.
Ignoring owner-occupancy and roof material. Knocking rentals where the owner's off-site, or scoring a 30-year metal roof like a 30-year-old asphalt roof, both waste hours. The condition data includes these signals; use them in the score.
Letting the data replace the inspection. The data gets you to the roof. It never substitutes for getting on the roof, documenting honestly, and writing an accurate estimate. Crews that start trusting the model over their own eyes make bad calls and burn trust.
Compliance, safety, and staying clean
Targeting data lives next to two areas you can't be sloppy about: how you talk about insurance, and how your crews physically operate.
On insurance: the bright line is that you document conditions and provide an estimate; you do not adjust, approve, or guarantee coverage, and you don't promise a homeowner that their claim will be paid or that their deductible will disappear. Several states' departments of insurance and consumer-protection laws restrict how contractors can solicit storm work and discuss claims, and the prohibited-practices acts that govern public adjusting set hard limits on who can do what. Modeled storm data is a targeting input that points you at roofs worth documenting; it is never a basis to tell a homeowner their roof is covered or damaged before an inspection. Keep your reps trained on this and keep the language clean, and the data stays an asset instead of a liability.
On safety: more booked inspections means more crews on more roofs, and roofing remains one of the most dangerous trades for falls. Fall-protection requirements, ladder safety, and heat illness prevention aren't optional, and a sales-targeting win that outruns your safety and crew capacity is a problem in disguise. Scale your inspection and production capacity alongside your booking rate, or you'll book jobs you can't safely or promptly fulfill, which damages the reputation the targeting was supposed to build.
A 30-day rollout plan
If you're starting cold, here's a realistic ramp that doesn't require betting the company on day one.
Week 1 — Pilot one territory. Pick a single neighborhood with older housing stock or recent storm exposure. Pull address-level data for just that area. Score and tier it by hand or with a tool. Run one experienced rep on the A-tier list and one on a blind grid in a comparable area as a control. Log everything.
Week 2 — Compare and tune. Look at qualified conversations and bookings per day, ranked versus blind. Almost always the ranked rep is meaningfully ahead. Use the disposition data (especially "already replaced" and "wrong age") to correct obvious data errors and re-tune your scoring bands.
Week 3 — Wire it into the CRM. Add the address-level fields, get the tier colors onto the canvassing map, and train reps on one-tap dispositions. Roll the workflow to two or three reps. Build the standup habit.
Week 4 — Standardize and scale. Lock in the scoring model, the pod-clustering routine, and the feedback loop. Now expand territory by territory. By the end of the month you have a repeatable system: pull, score, tier, cluster, brief, knock, log, feedback.
The whole thing is deliberately incremental. You prove it on one neighborhood with one rep, you let the field results convince the skeptics, and you scale a system that's already been validated on your own streets instead of trusting a vendor's brochure.
Reading the failure curves: not all 18-year-old roofs are equal
The scoring model above leans on roof age, but age alone is a blunt instrument unless you understand how different materials and exposures actually fail. Two roofs both 18 years old can be in completely different places on their service-life curve, and a sales team that knows the curves makes sharper calls about who's truly due.
Start with asphalt, because it's the bulk of most residential territories. A standard architectural (dimensional) asphalt shingle is typically engineered for a service life in the 20-to-30-year range under normal conditions, while older 3-tab shingles run shorter, often closer to 15 to 20 years of real-world performance. But the rated life and the actual life diverge based on factors imagery can partly see and partly can't:
- Slope and drainage. Low-slope roofs hold water and debris longer and age faster than steep roofs that shed quickly. Pitch is readable from imagery, so it belongs in your score.
- Sun exposure and orientation. South- and west-facing slopes in hot climates bake harder and lose granules sooner. A roof's facets don't all age at the same rate, which is why an inspection often finds one slope shot and another serviceable.
- Ventilation. Poorly ventilated attics cook shingles from below and shorten life dramatically. You can't see this from above, which is one more reason the model points you to a roof and the inspection settles the question.
- Original install quality. A roof nailed wrong or installed over an old layer fails early regardless of age. Multi-layer roofs are sometimes inferable from edge thickness in high-res imagery and almost always confirmable in person.
Metal and tile sit on entirely different curves. Standing-seam metal can run 40-plus years; the failure mode is usually fasteners, sealant, and coating rather than the panel itself, so a 25-year-old metal roof may be nowhere near replacement while a 25-year-old 3-tab asphalt roof is well past it. Tile lasts decades but the underlayment beneath it fails on a roughly 20-year cycle, so a tile roof can need a tear-and-reset long before the tile is spent. If your score treats all materials with the same age bands, you'll knock the wrong long-life roofs and skip the asphalt roofs that are actually done. Bake the material-specific curve into the bands and the priority list gets honest.
The practical takeaway for a sales operation is that material plus slope plus climate modifies age, and age modifies storm vulnerability. An old, sun-baked, low-slope asphalt roof that took hail is the compounding worst case, and it's exactly the door your model should float to the very top.
Sizing a territory before you commit reps to it
Before you assign a neighborhood, the same address-level data lets you answer a question most teams never ask: is this territory even worth working right now? A neighborhood of fifteen-year-old roofs with no recent storm is a different investment than a tract of twenty-two-year-old roofs in a fresh hail swath, and you can quantify the difference up front.
Run a quick territory profile from the data:
- Pull the roof-age distribution. What share of roofs fall in your high-priority bands? A subdivision built in a single year tends to have a synchronized roof-age cohort, which is powerful, because when that cohort crosses into the aging-out window the whole neighborhood becomes workable at once. A neighborhood built out over two decades is more scattered and yields a thinner A-tier.
- Overlay storm history. Has this area taken hail or wind recently, and how severe? A territory with both an old cohort and a recent storm is a priority deployment. An old cohort with no storm is steady retail work. A young cohort with a storm is marginal, because young roofs mostly shrug off the events that wear out old ones.
- Check owner-occupancy and density. High owner-occupancy and tight lot spacing mean more decision-makers per walking hour. A territory of large rural parcels burns windshield time even when the roofs are good.
- Estimate the addressable A-tier. Multiply the parcel count by the share landing in Tier A. That number, not a gut feeling about whether the area "looks good," tells you how many rep-days the territory justifies.
This pre-deployment math keeps you from dropping three reps on a neighborhood that holds two days of real work, and it surfaces the sleeper territories, the synchronized older cohorts that don't look special from the road but are about to turn over en masse. Teams that profile territories before working them stop spreading reps evenly across a map and start concentrating force where the roofs are.
A worked territory profile
| Territory | Parcels | % in age Tier A | Recent storm | Est. A-tier doors | Verdict |
|---|---|---|---|---|---|
| Oakridge (built 2001-2003) | 420 | 31% | 1.5in hail, 2 wks ago | ~130 | Deploy now, 2-3 reps |
| Maple Crossing (built 2014) | 380 | 4% | 1.5in hail, 2 wks ago | ~15 | Skip; roofs too young |
| Heritage Park (built 2000-2005) | 510 | 26% | none in 3 yrs | ~130 | Steady retail, 1 rep |
| River Bluffs (5-acre lots) | 90 | 22% | high wind, 1 wk ago | ~20 | Low density, low priority |
The numbers are illustrative, but the logic generalizes: Oakridge and Heritage Park both have real A-tier depth, yet Oakridge jumps the line because the storm stacks on top of the age. Maple Crossing sits in the same swath as Oakridge and is almost worthless to knock, which is precisely the call a blind "the area got hit" approach gets wrong.
Measuring whether the targeting is actually working
If you adopt address-level targeting and don't measure it, you can't defend the spend or improve the model. A handful of metrics, tracked weekly, tell you whether the data is earning its keep.
- Qualified conversations per rep-day. The share of conversations where the roof was genuinely old or storm-worn. This should rise immediately once you rank doors, because you front-load the good ones.
- Inspections booked per 100 doors knocked. Your conversion of doors to ladders. Ranked lists lift this because the doors are pre-qualified.
- Inspection-to-contract rate. Of the roofs you got onto, how many became jobs. If this stays high while bookings rise, your data is sending reps to genuinely due roofs rather than just more roofs.
- Data accuracy rate. From dispositions, the share of "wrong age" and "already replaced" tags. Rising error means your age data is drifting and the model needs a recalibration or a fresher imagery pull.
- Cost per booked inspection. Rep hours plus data cost divided by bookings. This is the number your owner cares about, and it's where ranked canvassing usually wins decisively, because the denominator climbs while the hours hold flat.
Watch these as a trend, not a single week, and segment them by rep so you can see whether a low number is a data problem or a coaching problem. The disposition data is doing double duty here: it both corrects the model and powers the scorecard.
The bottom line for a sales operation
The roofs that are due are out there right now, mixed in among the roofs that are fine, indistinguishable from the sidewalk. Blind canvassing finds them by brute force, one rejected door at a time, spending your most expensive resource, your reps' best hours, mostly on roofs that didn't need a knock. Address-level roof condition data doesn't change how many good roofs exist on a street; it changes whether your team finds them first. Roof age as a range tells you who's aging out. Storm physics modeled per roof tells you whose roof the weather actually wore out. Together they sort the territory, and sorting the territory is the cheapest, highest-leverage improvement available to a roofing sales team, because it costs no new reps and no new hours and pays off in the order of the list.
Start with one neighborhood. Rank it. Knock the top of the list. Log what you find. Let the results talk. Then do it every week, and let the field tighten the model. The contractors who run this loop stop hoping the next block looks good and start knowing which doors to hit before they leave the lot, and that knowledge, compounded over a season, is the difference between a sales team that grinds and one that hums.
FAQ
What is address-level roof condition data?
It is roof information attached to a single parcel or address rather than a ZIP code or neighborhood. It typically bundles a roof-age range derived from aerial imagery, the roof's material and geometry, visible condition cues, and storm exposure modeled for that specific roof. Roofs on the same street can be twenty years apart in age and a full storm-grade apart in damage, so the address-level granularity is what lets you decide which individual doors to knock first.
How accurate is roof age data from aerial imagery?
Accurate enough to rank, which is what matters for sales. Comparing imagery across multiple years detects re-roofs, and combining that with parcel and permit records produces a defensible age range like 16 to 20 years. It does not reliably produce an exact install date for every house, and you should be skeptical of anyone claiming it does. A range is sufficient to sort roofs into who is aging out and who is not.
Does storm modeling prove a roof is damaged?
No. Modeled hail or wind exposure at an address is an estimate of odds, not a measurement and not proof. It tells you which roofs were most likely worn out by a storm so you know whose roof to climb. The only way to establish actual damage is an on-roof inspection where your crew documents what is really there. Never tell a homeowner their roof is damaged based on the model alone.
Is this the same as buying roofing leads?
No. Lead-buying gives you a list of homeowners who raised their hand, often shared with competitors. Address-level condition data is a targeting input for your own canvassing: it ranks real roofs by age and storm exposure so your reps spend their hours on the right streets. You still knock the doors and earn the appointments; the data just changes the order so the best roofs get worked first.
How do I turn the data into a knock order for my reps?
Score each address on two axes, roof age and storm exposure, using simple point bands, apply a multiplier when both are high, then bucket addresses into tiers: A (knock first), B (knock next), C (touch with a mailer or hanger), and Skip. Cluster the A-tier roofs geographically into pods a rep can walk on foot, and assign the densest, highest-score pods to your strongest closers.
Can I do this without buying software?
Partly. You can assemble imagery-based age estimates, parcel data, permit records, and public storm data into a spreadsheet and build a scoring model by hand, and doing so is the best way to understand what any vendor is really doing. The friction is data subscriptions, formatting differences across counties, and the per-roof storm modeling, which is hard to do manually. Tools like RoofPredict exist to handle that assembly so you get a ranked, physics-aware list without building the pipeline yourself.
How fast should I respond after a hail storm?
Within a day. Intersect the storm overlay with your existing roof-age data for the affected area, tier hard so old roofs in the severe swath are your first priority, and deploy reps to the densest high-priority clusters. The first credible, professional contractor on a damaged street tends to book the inspection, so speed matters, but only if it is pointed at the right roofs rather than blanketing the whole storm area.
What should reps actually say at the door?
Open with a true general observation about the street or recent storm, offer a free no-obligation inspection framed as a look rather than a diagnosis, and add the honesty hook: if the roof is fine, we will tell you it is fine. Then book a specific time. Never claim the homeowner's roof is damaged or that a claim will be covered before you have been on the roof, since the data is odds and the inspection is where truth is established.
Why a roof-age range instead of an exact date?
Because a range is what the underlying sources honestly support and it is all ranking needs. Aerial imagery and records can reliably place a roof in a band such as 18 to 22 years old, which sorts it correctly against newer roofs. Insisting on an exact install date for every house is unrealistic and gains you nothing operationally, since you are deciding who to knock first, not filling out a warranty card.
How do I keep the targeting accurate over time?
Close the feedback loop. Have reps log every door outcome against the address, especially already-replaced and wrong-age dispositions, and feed those corrections back into your scoring. Roof data drifts as tracts get re-roofed and estimates carry error, so the field outcomes are what keep the model honest. Teams that pull data once and never recalibrate watch their accuracy decay.
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
- Roofing Industry Resources and Standards — nrca.net
- IBHS Hail and Roofing Research — ibhs.org
- NOAA Severe Weather and Storm Data — ncdc.noaa.gov
- NOAA Storm Prediction Center — spc.noaa.gov
- National Weather Service — weather.gov
- OSHA Fall Protection in Construction — osha.gov
- OSHA Heat Illness Prevention — osha.gov
- U.S. Census Bureau American Housing Survey — census.gov
- International Residential Code (ICC) — iccsafe.org
- Bureau of Labor Statistics: Roofers — bls.gov
- FTC Consumer Protection Guidance for Contractors — ftc.gov
- Texas Department of Insurance: Storm and Roofing Consumer Guidance — tdi.texas.gov
- National Association of Insurance Commissioners — naic.org
- RoofPredict — roofpredict.com
Related Articles
How to Re-Engage Old Roofing Leads That Went Cold (and Find the Ones Due Now)
Your cold-lead list isn't dead money. Here's the full system to clean it, rank it by which roofs are actually due now, and win the jobs hiding in your own CRM.
How Many Roofs in a City Need Replacing? A Contractor's Method for Estimating the Real Number
A working estimator's approach to sizing roof-replacement demand in any city: how to turn housing counts, age curves, and storm history into a defensible annual number you can plan crews and routes around.
How to Get Roofing Jobs Without Insurance or Storm Work
Storm chasing is feast or famine and insurance work is somebody else's decision. Here's how to build a roofing business on retail jobs you actually control.