Skip to main content

How to Rank Neighborhoods by Roof Replacement Potential

Michael Torres, Storm Damage Specialist··30 min readRoofing Sales & Growth
On this page

Most roofing companies pick where to work the same way they did fifteen years ago: somebody drives a route, sees a couple of beat-up roofs, and the canvassers get dropped there Monday morning. Sometimes it hits. More often the crew burns a day on a subdivision where half the roofs got replaced after the last big hail event, the other half are builder-grade architectural shingles with twelve good years left, and the three genuinely aging roofs belong to people who already signed with the company that knocked on Saturday.

Learning how to rank neighborhoods by roof replacement potential is the discipline of replacing that gut feel with a repeatable score. It is not about buying leads, and it is not magic. It is about combining a handful of signals you can actually get — roof age, the storms a roof has taken, when the homes were built, ownership and turnover, and a few demographic realities — into a single number per neighborhood, then per street, then ideally per house. You knock the high scores first. You skip the new roofs. You stop paying gas, payroll, and postage to work doors that were never going to buy.

The approach below is the one I would hand a sales manager who has a territory, a crew, a mailing budget, and an old CRM full of estimates that never closed. It works in storm markets and retail markets. It scales from a spreadsheet you build by hand to a data feed that scores every roof in your metro. By the end you will have a concrete scoring model, the data sources to feed it, worked examples with real arithmetic, and the operational checklists to turn the score into knocked doors and signed contracts.

A note before the model: nothing here involves estimating insurance payouts, telling a homeowner their deductible is covered, or promising a claim will be approved. We rank where the work probably is. What happens after you knock — inspection, documentation, the homeowner's own claim — is a separate discipline with its own legal lines, and there is a section near the end on staying on the right side of them.

What "replacement potential" actually means

Replacement potential is the probability that a given roof will need to be replaced in the next 12 to 36 months, multiplied by the probability you can win and profitably complete that job. Those are two different things and pros conflate them constantly.

A neighborhood of 1998-built homes that took 1.75-inch hail last spring has very high physical replacement need. But if it is a gated community of 4,000-square-foot homes where every owner already has a restoration company on speed dial and three competitors swept it the week after the storm, your winnable potential is low. Conversely, a 1990s working-class subdivision with original 3-tab shingles, modest turnover, and no recent competitor activity might have lower per-roof urgency but far higher conversion because nobody has worked it.

So the score has two halves:

  • Need — how worn the roofs are. Driven by age and storm exposure. This is the part most people stop at.
  • Winnability — how likely you are to actually close and complete work there. Driven by competition, access, homeowner profile, and your own fit (do you do this kind of work well?).

A good neighborhood score multiplies the two. A high-need, low-winnability area gets de-prioritized behind a medium-need, high-winnability one. That single reframe is worth more than any data source.

The unit problem: neighborhood vs. street vs. house

"Neighborhood" is a convenient planning unit but a blunt one. Within any subdivision you will find a phased build (the back section is three years newer), a few re-roofs, and pockets of deferred maintenance. The honest version of this work ranks at three resolutions:

  1. Neighborhood / subdivision — for deciding where to send a crew this week and where to mail.
  2. Street / block face — for routing a canvasser's day so they walk the densest concentration of aging roofs.
  3. Individual roof — for the door itself: which specific houses get the knock, the personalized mailer, the QR-coded report.

Most teams can build the neighborhood score in a spreadsheet. Street and house resolution generally require aerial-imagery analysis, which is where data products come in. Build the coarse version first; you will get value immediately and learn what fields matter before you pay for the fine version.

The five signals that drive the score

Every durable ranking model I have seen reduces to five signal families. You can run with two of them and still beat windshield surveys. Adding the rest sharpens it.

Signal 1: Roof age (the single strongest predictor)

A standard 3-tab asphalt roof in most of the U.S. has a practical service life around 15 to 20 years; architectural (dimensional) shingles run roughly 20 to 30, with real-world replacement clustering earlier in hot, high-UV, or storm-exposed climates. The NRCA and shingle manufacturers publish service-life ranges, and they are ranges, not guarantees — ventilation, slope, color, and exposure move the number by years.

The practical takeaway: a roof's age relative to its expected service life is the best single predictor of replacement. A 19-year-old 3-tab roof is in the replacement window today. A 6-year-old architectural roof is not, no matter how it looks from the curb.

The catch is that you almost never know the roof's actual install date. Here is where pros get it wrong:

  • Year built is not roof age. Public records and Zillow show the year the house was built. A 1996 home may be on its second or third roof. Re-roofs do not show up in the parcel record. Using year built as roof age systematically wastes time on homes that were already redone.
  • "It looks bad" is not age. Streaking (that black algae, Gloeocapsa magma) is cosmetic and can appear on a 7-year-old roof. Granule loss, curling, and clawing are better tells, but you cannot reliably see them from the street, and you certainly cannot see them across a whole subdivision.

So roof age, done right, is an estimated range per roof — "this roof is most likely 16 to 20 years old" — derived from imagery and history, not a date you can quote. Treat anyone who promises an exact install date with suspicion. We will come back to how that range gets produced.

Signal 2: Storm exposure (the accelerant)

Hail and wind do not age a roof gradually; they end it. A single severe hail event can take a 12-year-old roof that had eight years left and make it a replacement candidate overnight. So storm history is a multiplier on the age signal, not a separate additive bucket.

The nuance that separates real targeting from hail-map theater:

  • A hail swath map (from NOAA's Storm Prediction Center reports, or commercial hail-verification vendors) tells you hail was reported in an area. It does not tell you which roofs it actually damaged. Hail intensity varies block to block; aspect (which slopes faced the storm), shingle type, and stone size all decide whether a given roof was functionally compromised.
  • Wind works differently again. Straight-line and gradient winds lift and crease shingles on the windward and leeward planes; a 70-mph gust event can damage roofs a hail map would never flag.

The useful version of storm exposure asks, per roof: what storms has this specific roof plausibly taken, and given its age and pitch, did they likely wear it out? That is a physics question, not a map lookup. A roof that was 2 years old when the hail came shrugged it off; the identical roof at 14 years old did not.

For the spreadsheet model, you can approximate this with a storm-event count and max hail size per ZIP or grid cell over the last 5–7 years, pulled from SPC storm reports or a hail-data vendor. For house-level work you want modeled per-roof impact. (More on that below.)

Signal 3: Build era and original material

When a subdivision was built tells you what is probably on the roofs and when the first replacement wave hits.

  • Homes built in a tight window were roofed in a tight window. A 1999–2001 subdivision will see a re-roof wave roughly 18–22 years later, i.e., right about now, unless a storm pulled it forward.
  • Build era also predicts material. A lot of late-1990s and early-2000s tract housing went up with 3-tab shingles (shorter life); mid-2000s onward leans architectural (longer life). That shifts your expected-life baseline by years.
  • The phased build matters. Large subdivisions were built in sections over several years. The first phase is closest to replacement; the last phase may be 4–6 years younger. If you can get the phase boundaries (often visible as distinct streets or HOA sub-areas), score them separately.

This signal is cheap — county assessor data has year built for nearly every parcel — and it is the backbone of the spreadsheet model.

Signal 4: Ownership, turnover, and tenure

Who owns the home and how long they have owned it changes both need and winnability.

  • Owner-occupied vs. absentee/rental. Owner-occupants are generally far more likely to invest in a full replacement and to engage with a quality pitch. Rentals and absentee-owned homes skew toward patch-and-defer and a harder-to-reach decision-maker. You usually want to weight owner-occupied up.
  • Tenure (years owned). A homeowner 8–15 years into ownership, with equity and no plans to move, is a strong replacement prospect. Someone who bought 10 months ago is less likely to drop $14,000 on a roof and more likely to defer. Very long tenure (25+ years, often older owners) can go either way — high need, but sometimes fixed-income hesitation.
  • Recent sale. A home that just transacted often got a roof inspection or even a seller-side replacement as part of closing, which can lower near-term need — worth flagging.

These fields come from assessor and deed records and are inexpensive. They mostly tune winnability.

Signal 5: Demographics and household economics

Use this carefully and at the neighborhood level, never to make decisions about protected classes — the relevant signal is simply ability and propensity to pay for a major home repair.

  • Median home value and median household income (Census ACS data, available free at the block-group level) correlate with the ability to fund a replacement out of pocket or to navigate a claim and cover a deductible.
  • Extremely high-value areas can be lower-winnability for a volume residential crew (architects, HOAs, premium materials, longer sales cycles); the sweet spot for many companies is solid middle-market neighborhoods.
  • This signal is a gentle modifier, not a driver. Need and storm exposure should dominate. Demographics mostly keeps you from sending a standard retail crew into a market that does not match your offer.

Building the score: a weighted model you can run this week

Here is a concrete, defensible scoring model. Every neighborhood gets a 0–100 score. The weights below are a sensible starting point; you will tune them against your own close data within a season.

The components

Component Weight What it measures Where the data comes from
Roof-age index 35 Share of roofs in/near end of service life Aerial imagery analysis; or build-era proxy
Storm exposure 25 Modeled hail/wind wear on these roofs SPC reports / hail vendor; or per-roof model
Build-era wave 15 How close the subdivision is to its first re-roof wave County assessor (year built)
Winnability 15 Owner-occ %, competition, access Assessor/deed; your own field notes
Household economics 10 Ability/propensity to fund a replacement Census ACS block-group

If you only have year built and storm data (the realistic starting point for a spreadsheet), fold the roof-age and build-era weights together into a single age-proxy worth ~50 and run a leaner model. It still works.

Scoring each component 0–100

Roof-age index. Estimate the share of roofs in the neighborhood that are within ~3 years of, at, or past expected service life. If you have a roof-age data feed, this is direct: percentage of roofs estimated 16+ years old (for 3-tab markets) or 20+ (architectural). If you only have build era, use the median build year as a proxy and map it onto a curve: a subdivision whose homes hit ~18–22 years old scores near 100; brand-new builds score near 0.

Worked example: a 1999-built subdivision, in 2026, is 27 years past construction. If it was 3-tab and never hit by a major storm, most original roofs are well past life — but many have already been replaced once, so the index is moderated. Without imagery you would estimate the original-roof share has dropped; score it ~60 and let storm and field data adjust. With imagery showing 40% of roofs estimated 18+ years (i.e., second-roof candidates plus stragglers), score it 70.

Storm exposure. Count significant hail (≥1") and severe wind (≥58 mph) events over the trailing 5 years and weight by max hail size and recency. A simple version:

  • 0 qualifying events: 0
  • 1 event, ≤1" hail, 3–5 years ago: 30
  • 1 event, 1.25–1.75" hail, within 2 years: 60
  • 2+ events or any ≥2" hail within 3 years: 85–100

A per-roof physics model improves this dramatically because it tells you whether the storm actually wore these roofs given their age and orientation — but the count-and-size version is a fine starting approximation.

Build-era wave. Score by distance from the first-replacement window. If the typical first re-roof is ~20 years and the subdivision is 18–22 years old, score 90–100. At 12–14 years, score ~40. At 30+ years (most originals long gone), score back down to ~50 because you are now hunting second-generation roofs, which are more scattered.

Winnability. Start at 70. Add for high owner-occupancy (>80%: +15). Subtract for known heavy competitor saturation (−20), HOA/architectural-control friction (−10), or access problems like gated entries (−10). Cap 0–100.

Household economics. Map median home value or income to a band. Below your job's affordability floor: low score (the work may not pencil out for the homeowner). Solid middle market: high. Ultra-premium that does not match your crew/offer: medium. This is the gentlest input — keep its swing small.

Putting it together

Neighborhood score = (0.35 × age) + (0.25 × storm) + (0.15 × build-era) + (0.15 × winnability) + (0.10 × economics).

Worked example — "Maple Crossing":

  • Age index: 70
  • Storm: 60 (1.5" hail 14 months ago)
  • Build-era wave: 90 (built 2003, ~23 years old)
  • Winnability: 80 (85% owner-occ, light competition)
  • Economics: 65 (solid middle market)

Score = (0.35×70) + (0.25×60) + (0.15×90) + (0.15×80) + (0.10×65) = 24.5 + 15 + 13.5 + 12 + 6.5 = 71.5.

Worked example — "Riverstone Estates":

  • Age index: 45 (newer homes, lots of architectural)
  • Storm: 85 (1.75" hail 8 months ago)
  • Build-era wave: 35 (built 2014)
  • Winnability: 45 (gated, HOA, three competitors already swept it)
  • Economics: 80

Score = (0.35×45) + (0.25×85) + (0.15×35) + (0.15×45) + (0.10×80) = 15.75 + 21.25 + 5.25 + 6.75 + 8 = 57.

Riverstone has the bigger storm and the nicer homes, and the windshield instinct says go there. The model says Maple Crossing is the better use of a crew this week: real age-driven need, a storm that plausibly finished off roofs already near end of life, and far less competition. That is exactly the kind of call ranking is supposed to fix.

Getting the data: from free public records to per-roof feeds

You can build the spreadsheet model with free and low-cost data. The house-level version requires more.

Free and public

  • County assessor / parcel data — year built, land/improvement value, owner name, owner-occupied flag, last sale date and price. This is the workhorse. Most counties publish it; many offer bulk export or a GIS portal.
  • Census ACS (American Community Survey) — median home value, median household income, owner-occupancy rate, at block-group resolution, free via data.census.gov or the Census API.
  • NOAA / NWS Storm Prediction Center storm reports — hail and wind event reports with dates, sizes, and locations. Free. Coarse (point reports, not swaths), but a real starting point.
  • FEMA and state GIS portals — sometimes useful for parcel boundaries and aerial base layers.

Low-cost / commercial

  • Hail verification vendors — turn raw radar into hail swaths and per-property hail-size estimates for a fee. Sharper than SPC point reports.
  • Property-data providers — bulk parcel, deed, and demographic data with better coverage and cleaner fields than scraping individual county sites.
  • Aerial imagery providers — high-resolution orthoimagery you can inspect by eye to judge roof condition street by street (labor-intensive at scale, but real).

The hard part: per-roof age and per-roof storm impact

The two highest-value signals — actual roof age and whether a storm actually wore this roof out — are the two you cannot get from a parcel record at all, and can only approximate from raw storm reports. Roof age is invisible in public data because re-roofs are not recorded. Per-roof storm impact requires modeling the storm against each roof's age, pitch, and orientation, rather than only noting that hail fell in the ZIP.

This is the gap that imagery-and-modeling products fill, and it is worth understanding what they can and cannot do before you buy.

Where a roof-age + storm data product fits

This is the part of the workflow where a tool like RoofPredict earns its place, so I will be specific about what it does and where it stops.

RoofPredict reads recent aerial imagery for an area and estimates a roof-age range per address — not an install date, a range, because that is the honest output ("this roof is most likely 16 to 20 years old"). Alongside that, it models the storms each roof has actually taken — hail and wind, scored house by house against the roof's age and orientation — rather than just reporting that a storm passed through the ZIP. The plain version of the difference: a hail map shows you where it hailed; this shows you which roofs the hail likely wore out. Those two outputs feed directly into the two signals that are otherwise the hardest to get — the roof-age index and per-roof storm exposure — and they let you push the ranking down from the neighborhood to the individual door.

Where it fits in the workflow:

  • Score and rank every roof in your area by age range and modeled storm wear, so your neighborhood and street scores stop relying on the build-era proxy and start using estimated actual age.
  • Route the crew to the densest concentration of aging, storm-worn roofs — a ranked street rather than a whole subdivision.
  • Enrich your own list. Feed it your CRM of old estimates and past customers and get each address tagged with roof age and storm signals, so you can re-work the book you already paid to acquire — the estimate from three years ago whose roof has now aged into the replacement window.
  • Arm a green canvasser. A new hire can knock with a specific, accurate talking point and a branded homeowner report instead of a generic pitch, which both lifts close rate and keeps reps from quitting out of frustration.

The honest limits, because they matter for trust:

  • Roof age is a range, not a date. Anyone selling exact install dates from imagery is overpromising.
  • Storm impact is odds, not proof. The model tells you a roof was likely worn out; the inspection on the ladder is what confirms it. It narrows where to climb, it does not replace climbing.
  • It is not a lead service. It does not sell you a homeowner who raised their hand. It tells you which doors on your own streets are worth knocking. The selling is still yours.

It is not the only way to get there — you can approximate a lot with assessor data and storm reports and a lot of windshield time — but the per-roof age and per-roof storm modeling are the parts you genuinely cannot do by hand at scale.

Turning the score into knocked doors

A ranking nobody acts on is a spreadsheet nobody opens. The operational layer is where money gets made.

Tiering and weekly planning

Bucket neighborhoods into tiers and assign motions:

Tier Score Motion
A 75–100 Full-court press: crews canvass, personalized mail, follow-up
B 55–74 Canvass on good-weather days; standard mail drop
C 35–54 Mail only, or hold for a future storm trigger
D <35 Skip unless a storm changes the math

Re-score after every significant storm — a single event can move a C neighborhood to A overnight by spiking the storm-exposure component. Build the re-score into your storm-response runbook.

Routing canvassers by street, not subdivision

Within a Tier A neighborhood, hand each canvasser a route ordered by street-level score, densest aging roofs first. A rep who walks 40 doors where 18 roofs are genuinely aging will out-produce one who walks 60 random doors. Door density of qualified roofs is the metric, not raw door count.

Matching the mailer to the score

  • Tier A: personalized piece referencing the specific roof situation where you legitimately have the data ("roofs in your area are reaching the age where replacement is common"), with a QR code to a homeowner-facing report.
  • Tier B–C: a cleaner area-level mailer. Cheaper per piece, broader.

Do not mail your whole metro at one cost-per-piece. Spend the expensive personalized mail where the score justifies it.

Mining your own CRM

The highest-ROI list you own is the one you already paid to build. Pull every estimate that did not close in the last 3–5 years and every past customer, and re-score those addresses for current roof age and recent storm exposure. The homeowner who said "not yet" in 2022 may be exactly due now — and they already know your name. This single motion routinely outperforms cold canvassing because the trust is pre-built. (This is precisely the kind of list-enrichment a per-roof data feed is built for.)

Storm markets vs. retail markets

The same model runs in both, but the weights shift. In an active hail market — much of Texas, Oklahoma, Colorado, the upper Midwest — storm exposure deserves a heavier hand, and your re-score-after-every-event discipline matters more than anything else. The danger in storm markets is the out-of-town swarm: the week after a big event, every roof under the swath gets knocked by a dozen companies, so winnability craters fast and your edge is being early and being right about which roofs the storm actually wore out rather than which ZIP it crossed.

In a low-storm retail market — much of the West Coast, the desert Southwest, milder coastal areas — age and build-era dominate, storms are an occasional bonus, and the whole game is finding the subdivisions aging into their first or second replacement wave before a competitor's mailer does. The per-roof age signal is arguably more valuable here, because without storms to create obvious urgency, the only way to beat windshield surveys is to know which specific roofs are actually old. Tune the weights to your market; do not run a Dallas weighting in Phoenix.

A worked weekly workflow

Here is the whole thing as a repeatable cadence a sales manager can run.

  1. Pull and refresh data (monthly). Update assessor extract, refresh storm events for the trailing window, re-pull any imagery-derived roof-age feed.
  2. Score every neighborhood (monthly, or after any storm). Run the weighted model. Sort. Assign tiers.
  3. Score streets within Tier A/B (weekly). Order block faces by qualified-roof density.
  4. Build canvass routes (weekly). One route per rep per day, sequenced by street score, ~40–60 doors of which the majority should be qualified.
  5. Schedule mail (monthly). Personalized to Tier A, area-level to B/C, hold D.
  6. Re-work the CRM (continuous). Feed a slice of re-scored old estimates into each rep's week alongside cold doors.
  7. Log outcomes (daily). Track per neighborhood: doors knocked, inspections set, contracts signed, average job size.
  8. Recalibrate weights (quarterly). Compare predicted score to actual close rate and job size by neighborhood. If your highest-scoring areas are not your highest-closing areas, your weights are wrong — adjust them.

That last step is what turns this from a static model into a system that gets smarter every season. Treat your own close data as the ground truth and bend the weights toward it.

A worked spreadsheet you can build from scratch

If you have never built a model like this, here is the column layout that gets you from a raw assessor extract to a ranked list without any paid tools. Build it in a single sheet, one row per neighborhood (or per subdivision; pick the unit your market actually thinks in).

Column How you fill it Example value
Neighborhood name Manual or from HOA/subdivision field Maple Crossing
Parcel count Count of rows in your assessor extract for that area 318
Median year built MEDIAN of year-built across those parcels 2003
Dominant material Inferred from build era (3-tab pre-~2005, architectural after) Architectural
Expected service life Lookup from material (15–20 for 3-tab, 20–30 for architectural) 24
Roof-age proxy years Current year minus median year built 23
Age index (0–100) Curve mapping proxy-years-vs-service-life to a score 70
Qualifying storms (5 yr) Count from SPC/Storm Events for the area 1
Max hail size Largest reported hail in window 1.5"
Storm score (0–100) From the storm scoring band 60
Build-era score (0–100) Distance from the ~20-yr first-replacement wave 90
Owner-occ % From assessor owner-occupied flag 85%
Competition note Your own field intelligence Light
Winnability (0–100) Start 70, adjust for owner-occ/competition/access 80
Median home value From ACS block-group or assessor $312,000
Economics (0–100) Band map of value/income 65
Total score Weighted formula across the component columns 71.5
Tier A/B/C/D from total score A

The total-score cell is one formula: =0.35*[Age] + 0.25*[Storm] + 0.15*[BuildEra] + 0.15*[Winnability] + 0.10*[Economics]. Sort the sheet descending by total score and you have your work order for the season. Add a column for actual results — contracts signed, average job size — and you have everything you need for the quarterly recalibration step.

The age-index curve is the only piece that takes judgment. A simple, defensible version: score 0 below 8 proxy-years, ramp linearly to 100 as proxy-years approach the expected service life, hold near 100 for a band around it, then taper back toward 50 once the area is well past life (because by then many originals are gone and you are hunting scattered second-generation roofs). You can encode that as a nested formula or a small lookup table; either is fine.

Reading the model's output without fooling yourself

A ranking model produces confident-looking numbers from uncertain inputs, and the failure mode is believing the numbers more than they deserve. A few disciplines keep you honest.

Treat the score as a sort order, not a probability. A 72 is not "72% likely to need a roof." It means rank this above the 64 and below the 80. The model's job is to order your effort, and it is good at ordering even when any single number is fuzzy. Argue about the sort, not the decimals.

Watch for proxy collapse. When you build from year-built alone, every neighborhood from the same build era gets nearly the same age score, and the model quietly stops discriminating. That is the symptom that you have outgrown the spreadsheet and need estimated per-roof age to separate the re-roofed homes from the originals within a single subdivision.

Look for the disagreements. The most valuable output is not the top of the list — your reps probably already knew the obvious worn-out subdivision. It is the neighborhood the model ranks high that your gut ranked low, and vice versa. Go inspect those. Either the model caught something your windshield missed (a quiet, aging area nobody works) or it has a bad input you need to fix. Both outcomes make the model better.

Keep a small holdout. Each quarter, knock a handful of doors in neighborhoods the model scored low. If your close rate there is near zero, the model is correctly steering you away and you can trust it to skip. If you keep closing decent jobs in the low-scored areas, a signal is missing or mis-weighted. This is cheap insurance against a confidently wrong model sending your whole crew the wrong direction.

Separate model error from execution error. If a high-scored neighborhood underperforms, the cause might be the score — or it might be a weak rep, a bad mailer, or a competitor who got there first. Log enough outcome detail to tell those apart before you start re-weighting, or you will tune the model to compensate for a coaching problem.

What pros get wrong

  • Using year built as roof age. The biggest and most common error. It sends crews to homes that were re-roofed five years ago and skips re-roof candidates in newer subdivisions that took a storm. Year built is a build-era signal, not a roof-age signal.
  • Treating a hail map as a damage map. Hail fell in the ZIP does not mean these roofs are due. Without per-roof modeling you over-knock the dramatic storm and under-knock the quiet, genuinely-aging neighborhood next door.
  • Stopping at need, ignoring winnability. Chasing the worst roofs into the most saturated, hardest-to-close areas. The multiplier matters.
  • Never recalibrating. Picking weights once and never checking them against actual close rates. The model is a hypothesis; your sales results are the test.
  • Confusing cosmetic and structural age. Black streaking sells a homeowner nothing legitimate; it is algae, not failure. Granule loss, mat exposure, and storm bruising are the real tells — and you confirm those on the ladder, not from the score.
  • Over-promising from the data. Quoting exact roof install dates or telling a homeowner the storm "definitely" totaled their roof. Age is a range; damage is confirmed by inspection. Keep the claims honest or you lose the trust that closes the next job.

Field-verifying the score: the roof itself

The score tells you where to climb. The ladder tells you the truth. When a rep gets on a roof, the condition signals that actually indicate end of life:

  • Granule loss exposing the asphalt mat — the protective layer is gone; UV is now degrading the substrate.
  • Curling and clawing at shingle edges — thermal cycling and age.
  • Cracking and brittleness — the shingle has lost its volatiles and flexibility.
  • Hail bruising — soft, dark spots where the granules and mat are fractured by impact, often visible on the back of a removed shingle; distinguishable from blistering, which is manufacturing/heat related.
  • Wind creasing and missing tabs — the horizontal crease line where a shingle was lifted and folded back.
  • Exposed or backed-out nails, deteriorated flashing and boots — secondary but corroborating.

Document every one with dated, geotagged photos. That documentation is the bridge from "the score said this roof was probably due" to "here is the evidence, in writing."

A word on roof safety: ladder and fall hazards are the single largest source of serious injury in this trade. OSHA fall-protection requirements apply, and a ranking system that sends more reps up more ladders should come with a tightened safety program, not a looser one.

Staying on the right side of the claims line

This matters enough to be explicit, because ranking neighborhoods by storm exposure inevitably puts your reps in front of homeowners with possible insurance claims, and that is where roofers get into legal trouble.

What a roofer can do, in essentially every state: inspect the roof, document the condition and any storm damage thoroughly with photos, and prepare an accurate, itemized estimate to repair the work — typically aligned to standard estimating formats like Xactimate — and hand that documentation to the homeowner. You can state facts about your own scope of work to the carrier when asked.

What a roofer may not do, because it crosses into unlicensed public adjusting and deceptive advertising:

  • Negotiate, adjust, or "handle" the homeowner's claim for a fee.
  • Interpret the homeowner's policy or tell them what is and is not covered.
  • Promise a specific payout, a specific approval, or that the claim "will go through."
  • Tell a homeowner their deductible is waived, absorbed, eaten, or "taken care of" — that is illegal in many states and a fast way to lose your license.
  • Advertise a "free roof."
  • Represent the homeowner against the insurer.

The safe and honest frame: you document thoroughly, you write an accurate repair estimate, and you give it to the homeowner. The homeowner files their own claim. The insurer decides coverage. Your value is the quality of the documentation and the scope, not any influence over the payout — and your ranking system's value is telling you which roofs are worth documenting in the first place, not anything about claims at all. Teach your reps the do-not-say list explicitly; one canvasser promising a free roof can cost you far more than a saturated neighborhood. State departments of insurance (Texas's TDI, for example) publish guidance on the public-adjusting line, and the FTC governs the advertising side — both are worth a read for your sales training.

Scaling the model as you grow

Start coarse, get value, then sharpen:

  • Stage 1 — Spreadsheet. Assessor year-built + SPC storm events + Census economics. Neighborhood-level tiers. You can build this in a week and immediately stop wasting effort on the obviously-wrong areas.
  • Stage 2 — Better data. Add a hail-verification feed and cleaner property data. Move from ZIP-level to block-group and parcel-level storm and ownership signals.
  • Stage 3 — Per-roof. Add imagery-derived roof-age ranges and per-roof storm modeling. Now you are ranking individual doors and routing reps street by street, and enriching your CRM automatically. This is where a product like RoofPredict replaces the parts you cannot do by hand.
  • Stage 4 — Closed loop. Feed your own close rates and job sizes back into the weights every quarter so the score predicts your results, in your market, with your crew and offer.

The companies that win this do not have secret neighborhoods. They have a repeatable system that points payroll, gas, and postage at the doors most likely to need a roof and most likely to buy from them — and they tune it against their own results until the score and the commissions move together.

The bottom line

Ranking neighborhoods by roof replacement potential is the difference between working the whole street and working the right doors. The model is not complicated: score need (age plus storm) times winnability (competition, ownership, economics), do it at the neighborhood level first, then push it down to streets and individual roofs as your data improves. Use free public records to start, layer in storm and property data, and reach for per-roof roof-age and storm modeling when you are ready to route reps door by door and re-work your own CRM. Keep the claims talk honest and on the documentation side. Then recalibrate against your own close rate until the highest scores are reliably your best jobs.

If you want the per-roof half of that — a roof-age range and modeled storm wear for every address in your area, plus enrichment for the list you already own — that is exactly what RoofPredict is built to provide. Hand it a roof you already know the truth about and judge whether it nailed the age and the storm story; the ranking only earns your payroll if it earns your trust first.

FAQ

Can I figure out roof age from public records or Zillow?

No. Public records and Zillow show the year the house was built, not the year the roof was installed. Re-roofs are not recorded in parcel data, so a 1998 home may be on its second or third roof. Year built is a useful build-era signal for estimating a first-replacement wave, but it is not roof age. Estimating actual roof age requires aerial imagery analysis, and even then the honest output is a range (for example, 16 to 20 years), not an exact install date.

Isn't a hail map enough to decide where to knock after a storm?

A hail map tells you hail was reported in an area; it does not tell you which roofs it actually wore out. Hail intensity varies block to block, and whether a roof was functionally damaged depends on its age, pitch, orientation, and shingle type. A 2-year-old roof shrugs off hail that finishes a 14-year-old one. Useful targeting models the storm against each roof rather than treating everyone under the swath as a prospect, which is why you still verify on the ladder.

What signals should a neighborhood ranking model actually use?

Five families: roof age (the strongest predictor), storm exposure (an accelerant that multiplies age), build era and original material (predicts the first re-roof wave), ownership and tenure (owner-occupied and 8 to 15 years owned skews higher), and household economics (ability to fund a replacement). A practical weighting starts roughly at 35 percent age, 25 percent storm, 15 percent build era, 15 percent winnability, and 10 percent economics, then gets tuned against your own close data.

Need versus winnability — what's the difference and why does it matter?

Need is how worn the roofs are (age plus storm). Winnability is how likely you are to actually close and complete work there (competition, owner-occupancy, access, fit with your offer). A high-need neighborhood that three competitors already swept is a worse use of a crew than a medium-need area nobody has worked. A good score multiplies the two, which keeps you from chasing the most dramatic roofs into the most saturated markets.

How often should I re-score neighborhoods?

Refresh the underlying data monthly, and re-score immediately after any significant hail or wind event. A single storm can spike the storm-exposure component and move a low-priority neighborhood to a top-tier one overnight, so build a re-score into your storm-response runbook. Separately, recalibrate the weights quarterly by comparing predicted scores against your actual close rates and job sizes.

What free data can I use to build this without buying anything?

County assessor and deed records give year built, owner-occupancy, last sale, and value. The Census American Community Survey gives median home value, income, and owner-occupancy at the block-group level. NOAA and the NWS Storm Prediction Center publish hail and wind storm reports with dates, sizes, and locations. Those three sources support a real neighborhood-level model. The parts you cannot get free are estimated per-roof age and per-roof storm impact.

Where does a product like RoofPredict fit in this workflow?

It fills the two signals you cannot get from public records: an estimated roof-age range per address from aerial imagery, and storm wear modeled house by house rather than reported by ZIP. That lets you push the ranking from the neighborhood down to the individual door, route reps street by street, and enrich your own CRM of old estimates with current roof-age and storm signals. It is not a lead service and it does not replace the ladder; roof age is a range and storm impact is odds, confirmed by inspection.

Can I tell a homeowner the storm damaged their roof and insurance will pay?

No. You can inspect, document damage thoroughly with dated photos, and write an accurate repair estimate to hand to the homeowner. You may not interpret their policy, promise a payout or approval, say a deductible is waived or absorbed, advertise a free roof, or negotiate the claim for a fee. Those cross into unlicensed public adjusting and deceptive advertising. The homeowner files their own claim and the insurer decides coverage; your value is the quality of the documentation, not influence over the outcome.

How do I route canvassers once a neighborhood is ranked?

Score streets within your top-tier neighborhoods by the density of qualified (aging or storm-worn) roofs, then hand each rep a route ordered densest first, roughly 40 to 60 doors weighted toward qualified ones. A rep who walks 40 doors where 18 roofs are genuinely aging will out-produce one walking 60 random doors. Qualified-roof density per route is the metric, not raw door count.

What's the highest-ROI list I already own?

Your CRM. Pull every estimate that did not close in the last three to five years and every past customer, and re-score those addresses for current roof age and recent storm exposure. The homeowner who said not yet in 2022 may be exactly due now and already knows your name, so trust is pre-built. Re-working the book you already paid to acquire routinely outperforms cold canvassing on conversion.

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.

By signing up, you agree to receive The Roofline by RoofPredict. Unsubscribe anytime.

Sources

  1. NRCA Roofing Manual and roof system guidancenrca.net
  2. NOAA Storm Prediction Center — Storm Reportsspc.noaa.gov
  3. National Weather Service — Hailweather.gov
  4. IBHS — Hail and roofing materials researchibhs.org
  5. U.S. Census Bureau — American Community Surveycensus.gov
  6. data.census.gov — ACS data tablescensus.gov
  7. OSHA — Fall Protection in Constructionosha.gov
  8. ICC — International Residential Code (roof coverings)iccsafe.org
  9. Texas Department of Insurance — Public adjusterstdi.texas.gov
  10. FTC — Advertising and marketing guidance for businessesftc.gov
  11. U.S. Bureau of Labor Statistics — Roofers occupational profilebls.gov
  12. NOAA National Centers for Environmental Information — Storm Events Databasencdc.noaa.gov
  13. ENERGY STAR — Roof products and service life contextenergystar.gov
  14. RoofPredictroofpredict.com

Related Articles