Skip to main content

How to Map Roof Ages Across a City (Without Knocking 10,000 Doors First)

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

Most sales managers I talk to plan canvassing the same way: somebody drives a neighborhood, sees a few tarps or some obvious granule loss, and the crew swarms that block. It works until it doesn't. The problem is that a roof you can see failing from the street is a roof a dozen other companies can already see too. The money is in the roofs that are due but don't look it yet, and in the storm-worn roofs hiding behind a fresh-looking ridge line. To find those at any kind of scale, you have to stop thinking in blocks and start thinking in a map of roof ages across your whole market.

That sounds like a research project. It can be. But a two-person sales team can build a usable roof-age map for a mid-size city in a week of part-time work, and a larger shop can keep one updated as a living asset. Below is the actual workflow: where the age signals come from, how to combine them so they're more reliable than any single source, how to fold in storm history so you're selling more than age alone, and how to turn the whole thing into a knock list your crews can run on Monday morning.

I'll be honest about the limits too. You cannot get an exact install date for a residential roof from the sky, and anybody who tells you they can is selling you something. What you can get is a defensible age range per address, weighted by confidence, and that is more than enough to rank a city by which roofs are most likely worth a conversation.

Why Roof Age Is the Single Best Canvassing Filter

Before building anything, it helps to be clear on why age is worth this much effort.

Asphalt shingles dominate the U.S. residential market, and their service life is reasonably predictable. A standard 3-tab roof installed in a normal climate tends to give 15 to 20 years of real-world service. Architectural (laminate/dimensional) shingles, which took over most new construction and reroofs from the early 2000s onward, run more like 20 to 30 years depending on quality and exposure. Those ranges shift with climate: intense UV in the Southwest, ice damming in the Upper Midwest, and humidity-driven algae and rot in the Southeast all pull the usable life down.

The practical consequence is that roof age sorts homeowners into three buckets:

  • Too new to matter (roughly 0 to 8 years). Barring storm damage, these owners have no reason to talk to you. Knocking them wastes the door.
  • The aging-out window (roughly 12 to 22 years for most asphalt). These owners are increasingly likely to be thinking about it, dealing with a leak, or one hailstorm away from a replacement. This is your richest vein.
  • Already failing or already replaced (the visible tarps and the obviously new roofs). The failing ones are competitive and the replaced ones are dead doors for years.

If you could label every house in your city with which bucket it sits in, your canvassing efficiency changes completely. Instead of a 1-in-40 conversation-to-knock ratio, you're working a list where a large share of doors are in the window where the homeowner actually has a reason to engage. That is the entire point of mapping roof ages across a city: you are pre-sorting the market so your most expensive resource, your reps' time, gets spent on the doors most likely to convert.

The second reason age matters is documentation. When a rep can open a conversation with "our records suggest your roof is somewhere in the 18-to-22-year range, is that about right?" they sound like a professional doing homework, not a storm-chaser reading a script. Homeowners can feel the difference.

There's a third reason that's easy to miss: age is the one variable that keeps moving in your favor whether you do anything or not. A door that's a marginal knock today (10-year roof, no storm) becomes a strong knock in three or four years on its own. A city-wide age map isn't a snapshot you use once; it's an inventory that matures. The neighborhoods you tag as "watch, not yet" this season are your warm pipeline two seasons out. Shops that think about it this way stop treating canvassing as a series of one-off blitzes and start treating their territory as a portfolio of roofs at different points in their lifecycle, which is exactly how the smartest restoration companies plan their headcount and their off-season work.

A quick reality check on shingle lifespans

Before you set the assumptions that drive your whole map, get the lifespan numbers right for your market, because national averages will mislead you. Here's a rough frame to start from, then calibrate with field data:

Roof type Typical service life (moderate climate) What shortens it
3-tab asphalt shingle 15 to 20 years UV, hail, poor ventilation, steep south exposure
Architectural / laminate asphalt 20 to 30 years Same drivers, but more margin
Wood shake 20 to 30 years Rot, moss, fire codes forcing early replacement
Metal (standing seam) 40+ years Mostly cosmetic until very old; low age-out volume
Tile (clay/concrete) 40+ years Underlayment fails before tile; deceptive age signal
Single-ply / flat (low-slope) 15 to 25 years Ponding, membrane seams, foot traffic

Two traps live in this table. First, tile and metal roofs look young from the air almost forever, so an old house with a tile roof can read as "recently done" when the underlayment beneath is the part that's failing, invisible from above. Second, your local climate can move asphalt numbers by five years or more in either direction, so don't import a Minnesota lifespan into a Phoenix map. Set your starting assumptions, then let the ground-truth from Step 7 correct them.

The Five Signals That Reveal Roof Age

There is no single database of residential roof install dates. Instead, you triangulate from several imperfect signals. Each one is wrong in its own way; combined, they get reliable. Here are the five that actually carry weight.

1. House age (the floor of the estimate)

The year a house was built is the strongest single anchor you have, because every roof has been replaced at most a known number of times. A house built in 1974 has had its roof redone at least two or three times by now. A house built in 2019 almost certainly still wears its original roof.

You can get year-built for nearly every parcel in the country from the county assessor or appraisal district. Most counties publish this. The U.S. Census Bureau's American Community Survey also reports "year structure built" at the tract level, which is useful for sanity-checking and for spotting subdivisions built in waves.

The key insight: new construction gives you a free, high-confidence roof age. For any home built in the last decade or so, the build year is the roof age, full stop. Those go straight into the "too new" bucket with high confidence and you stop spending money on them. For older homes, build year only sets the floor (the roof can't be older than the house) and you need the other signals to estimate the most recent replacement.

2. Building permits (the gold standard, where they exist)

A pulled reroof permit is the closest thing to a birth certificate for a roof. Most jurisdictions require a permit for a full tear-off and replacement, and many publish permit records, sometimes through an open-data portal, sometimes only by records request.

When you can get them, reroof permits are gold: they give you an actual date, an address, and often the contractor and valuation. A house built in 1985 with a reroof permit pulled in 2011 is a roof that is around 14 to 15 years old right now, with high confidence. That's not a range built from inference; that's a near-fact.

The catch is coverage. Permit compliance for residential reroofs is wildly inconsistent. In some cities a large fraction of reroofs are done without permits, especially insurance jobs slammed out after a storm. So treat a permit as a strong positive signal when present, but never assume the absence of a permit means the roof is original. Absence of evidence isn't evidence here.

3. Aerial and satellite imagery, including history

This is where most of the scalable signal lives, and it's the part people underuse.

High-resolution aerial imagery, the kind flown for assessors and mapping companies, lets a trained eye read a lot off a roof: the shingle type (3-tab vs. architectural casts different shadow patterns), discoloration and streaking from algae, granule loss showing as uneven tone, patched sections, and sometimes obvious failures like missing tabs or exposed underlayment.

The underused trick is historical imagery. Many imagery providers and some free tools keep a time series of aerial captures going back 15 to 20 years. If you can pull up the same roof in 2009, 2016, and 2023 and watch a dark, streaked, worn surface suddenly become a clean, uniform one between two captures, you've just bracketed a replacement to within a couple of years without a permit. That is one of the highest-value moves in the entire process and it's free or cheap depending on the imagery source.

What imagery cannot do: give you an exact age on a roof that has looked weathered for a decade. A roof can sit in "visibly worn" condition for years before it actually fails. So imagery gives you condition and, via history, sometimes a replacement bracket, but on its own it produces a range, not a date.

4. Storm history (the accelerant)

Age tells you a roof is aging out. Storm history tells you a roof may have been worn out early or already replaced after a claim. Both matter, and you want both layers on the same map.

Hail and high-wind events are tracked. NOAA's Storm Prediction Center and the National Weather Service maintain storm event data, and the SPC publishes storm reports including hail size and wind estimates by location and date. Layering past hail swaths over your city tells you which neighborhoods took 1-inch-plus hail in, say, 2019 or 2022. Those areas have two kinds of opportunity: roofs that got damaged and never filed, and roofs where the wear from that event is now showing up as accelerated aging.

It cuts the other way too. A neighborhood that took a major hail event three years ago and saw heavy claim activity is now full of three-year-old roofs. That's a suppression signal: don't dump your canvassing budget there expecting age-out opportunity, because half the neighborhood just got replaced.

There's a subtlety with using imagery for shingle-type identification that's worth spelling out, because it changes your lifespan assumption and therefore your whole age estimate. Architectural shingles cast an irregular, shadowed, almost textured pattern from above because the laminated tabs sit at varying heights. Three-tab shingles read as a flatter, more regular grid of horizontal lines. Being able to tell them apart on a given roof tells you which lifespan band to apply: a 3-tab roof at 16 years is near the end; an architectural roof at 16 years may have a decade left. Reps who learn to read this distinction from the imagery before they knock walk up with a much more accurate sense of the conversation they're about to have.

One more imagery move that pays off: look at the neighborhood, not only the individual roof. Subdivisions are built in waves and reroofed in waves. If you can see that an entire 1998 subdivision is showing uniformly streaked, dark, end-of-life roofs in current imagery, with no signs of replacement across most of the block, you've found a cluster where dozens of roofs are aging out together. Those clusters are the highest-value targets a map can surface, because the density makes the canvassing efficient and the shared build year makes your age estimate more confident across the whole group.

5. Real-estate and listing data (the tiebreaker)

When a house sells, a lot of detail leaks out. Listing descriptions frequently mention "new roof in 2021" or "roof replaced 2018" because it's a selling point. Inspection-driven disclosures sometimes note roof condition or age. MLS remarks, where you can legitimately access them, and public listing archives are a surprisingly rich tiebreaker for individual addresses, though they don't cover the whole market and you can't scrape them indiscriminately. Use this signal to resolve specific high-value addresses, not as a primary city-wide layer.

How to Combine the Signals Into a Confidence-Weighted Range

Here's the part that separates a real roof-age map from a spreadsheet of guesses. No single signal is trustworthy alone, so you combine them and carry a confidence level alongside every estimate. A range you trust 90% is worth acting on; a range you trust 30% you might verify before sending a rep.

Think of it as layering, from most to least authoritative for the most-recent-replacement question:

  1. Permit present → use the permit date. Confidence high. Range tight (the permit year plus or minus one).
  2. No permit, but historical imagery shows a clear before/after → use the imagery bracket. Confidence high. Range is the gap between the "old" and "new" captures.
  3. No permit, no imagery change, but a real-estate record states a roof year → use it, confidence medium-high, verify on a high-value door.
  4. None of the above → fall back to inference from build year + current visible condition + local replacement cycle. Confidence medium to low. Range is wide.

That fourth case is most of your older housing stock, so it's worth a concrete method. Take the build year, add the typical first-roof life for that era and climate to estimate when the original roof likely failed, and then reason about whether the current visible condition matches an original roof or a replacement.

A worked example

Take a house built in 1996 in a hot, sunny climate with no permit on file.

  • Original 3-tab roof from 1996, in that climate, likely failed somewhere around 2011 to 2016 (15 to 20 years).
  • So the roof on it today is probably a replacement installed in that window or later.
  • Pull historical imagery: the 2014 capture shows a dark, streaked roof; the 2017 capture shows a clean, lighter, uniform roof. That brackets a replacement to 2015 or 2016.
  • Current estimate: roof age 9 to 11 years, confidence high (imagery-bracketed), even with zero permit.

Now the same house, but historical imagery is too low-resolution to read and shows a consistently weathered roof across all captures:

  • No bracket available. The roof might be the original (now ~29 years, overdue) or a replacement done before your earliest clear image.
  • Estimate: roof age 10 to 29 years, confidence low.
  • That wide, low-confidence range is itself useful: it flags this address as "high upside, needs a human look," which is exactly the door you want a rep to drive past and eyeball rather than skip.

The discipline here is to never throw away the uncertainty. A 9-to-11-year roof at high confidence and a 10-to-29-year roof at low confidence are completely different canvassing decisions, and collapsing both to "about 15 years" destroys the information that makes the map valuable.

A simple scoring frame

Many shops formalize this into a single sortable score per address. A workable version:

Factor What it captures Effect on score
Estimated age midpoint How far into the replacement cycle Higher age, higher score, peaking in the aging-out window
Confidence How sure you are of the age High confidence amplifies; low confidence flags for verify
Storm exposure Hail/wind events since last replacement Recent significant event raises score
Recent-replacement flag Permit or imagery shows a new roof Hard suppressor, drops to near zero
Home value / roof size Job size and margin Tiebreaker, optional

You don't need data-science tooling for this. A spreadsheet with these columns and a weighted formula gets you 80% of the value. The point is to produce one number you can sort a city by, while keeping the underlying range and confidence visible so reps can speak to it honestly.

Setting the weights so the score behaves

The formula is where shops either get an edge or fool themselves. A few rules that keep the score honest:

  • Make the age factor peak, don't climb forever. A 35-year roof scoring higher than a 19-year roof is wrong; the 35-year roof is either already replaced (and you missed it) or so obviously failing that everyone's already knocked it. Build the age contribution as a curve that rises into the 12-to-22-year window and then falls off, so the score favors the aging-out sweet spot over the visibly dead roofs.
  • Let confidence multiply, not add. A high estimated age at low confidence shouldn't outrank a solid mid-range estimate at high confidence. Treat confidence as a multiplier on the age contribution, and carry a separate "needs verify" flag for the wide-range doors so they route into drive-by passes instead of full knocks.
  • Make recent replacement a hard suppressor. A permit in the last six or seven years, or a clear imagery before/after showing a new roof, should crush the score to near zero regardless of anything else. These are dead doors and you don't want them surfacing.
  • Cap the storm contribution. Storm exposure should raise a roof's priority, but a single hail event shouldn't let a 6-year roof outrank a 19-year roof in an un-hit area. The 6-year roof might have damage worth inspecting, but it's a different (and more constrained) conversation. Weight storm as an amplifier on roofs already in the aging window, not a teleport to the top of the list for new roofs.

Test the formula before you trust it. Pull twenty addresses you happen to know the truth about (past customers, your own street, jobs you've done) and check that the score ranks them the way your gut does. If it doesn't, the weights are wrong, not your gut. Tune until the known-truth addresses sort correctly, then let it loose on the unknowns.

A Note on Data Sourcing, Compliance, and Staying on the Right Side of the Line

This kind of mapping touches public records, imagery, and homeowner contact, so a few guardrails keep you out of trouble.

Use public and licensed data the way it's meant to be used. Assessor parcel files, permit portals, and government storm data are public. Aerial imagery is usually licensed; read the terms of whatever provider you use, because some tiers prohibit bulk commercial extraction. MLS and listing data carry their own access rules, and scraping listing sites indiscriminately can violate their terms. The clean approach is to use parcel, permit, and storm data freely as your backbone, license imagery appropriately, and use listing details only as an occasional tiebreaker on individual high-value addresses through legitimate access.

Respect do-not-knock and solicitation rules. Many municipalities require a solicitation permit for door-to-door sales and maintain do-not-knock registries; some HOAs have their own rules. Cross-reference your routes against any local do-not-knock list before you send reps, and keep your canvassing windows inside locally legal hours. A great map doesn't override a city ordinance.

Keep your claims truthful. The FTC expects advertising and sales claims to be truthful and substantiated. That applies to anything your reps say at the door about roof condition, storm damage, or what an insurer might do. An age estimate is an estimate; say so. A storm model tells you a roof is worth inspecting; it does not prove damage. Don't let an enthusiastic rep turn "your roof is in the range where it's worth a look" into "your roof is definitely damaged and we can get you a new one." The first is professional; the second is a compliance problem waiting to happen.

Stay in your lane on claims. This is the one that gets storm-restoration companies in real trouble. Your role is to document the roof's condition honestly and provide an estimate. The insurer decides coverage. The homeowner owns and files the claim. A roof-age map and a storm model are tools for deciding which roofs to inspect, nothing more. Don't promise claim approvals, don't promise specific deductible outcomes, and don't advertise a "free roof." Several states, Texas among them through its Department of Insurance, are explicit about the line between a contractor documenting damage and improperly acting as a public adjuster or steering a claim. Know your state's version of that line and train your reps to it.

Building the Map Yourself: A Step-by-Step Workflow

Here is the end-to-end process for a shop building this in-house with mostly free or low-cost tools.

Step 1: Define and bound your market

Don't try to map a whole metro on day one. Pick the territory your crews actually service, draw the boundary, and pull the parcel list inside it. The county assessor or appraisal district is your source; many publish a downloadable parcel file with address, year built, and assessed value. That single download already gives you the house-age floor for every property and lets you instantly bucket new construction out.

Step 2: Pull permit data

Check whether your jurisdiction has an open-data permit portal. Search for "[your city] open data building permits" or check the building department's site. Filter for reroof / roofing / re-cover permit types. Match them to your parcel list by address. Every match is a high-confidence age anchor. Where there's no portal, a records request can get you a bulk export, often for a small fee.

Step 3: Layer in storm history

From NOAA's Storm Prediction Center and the National Weather Service storm event database, pull hail and severe-wind events for your area going back 10 to 15 years. Note the date, location, and hail size. The IBHS (Insurance Institute for Business & Home Safety) is a good reference for understanding what hail sizes actually damage roofs, since not every hail report means roof damage. Mark which neighborhoods took damaging events and when. This becomes your storm overlay.

Step 4: Read the imagery

This is the labor-intensive part, so be strategic. You do not need to manually read every roof in the city. Read imagery for the addresses that survived the earlier filters: old enough to be in or near the aging-out window, no recent permit, and not freshly replaced. For each, check current condition and, crucially, pull historical captures to look for a before/after replacement bracket. Record condition notes and any bracket you find.

Step 5: Score and rank

Combine everything into the per-address score from the previous section. Sort the city descending. Now you have a ranked list: the roofs most likely to be due, weighted by confidence and storm exposure, with the freshly-replaced doors suppressed to the bottom.

Step 6: Cut it into routes

A ranked list isn't a route. Group your top-scoring addresses geographically so a rep can walk a dense cluster rather than crisscrossing town. Most mapping tools let you draw territories and drop pins. Aim for tight clusters of 30 to 60 high-score doors per rep per shift. Density matters as much as quality; a brilliant list that has reps driving 12 minutes between doors will underperform a slightly weaker list that's walkable.

Step 7: Feed reality back in

The map is a living asset. Every door your reps knock produces ground truth: actual roof age the homeowner states, condition the rep sees up close, whether they'd already replaced it. Capture that and feed it back. Over a season, your confidence levels tighten and your inference assumptions for local climate and shingle lifespan get calibrated to your actual market. The shops that win at this treat the map as something they sharpen continuously, not a one-time export.

Where RoofPredict Fits

Everything above is buildable by hand, and for a single small territory, doing it by hand teaches you the trade. The wall you hit is scale and freshness. Reading historical imagery on tens of thousands of parcels, re-pulling permit and storm feeds, and re-scoring as new captures and new storms come in is a lot of recurring work. That's the gap RoofPredict is built to close.

RoofPredict does the city-wide version of this workflow as a product. It estimates a roof-age range per address from aerial imagery across your whole market, layers storm physics modeled for each individual roof rather than a coarse "this ZIP got hail" flag, and hands back a ranking of which roofs are most likely due, so crews knock the doors the storm actually wore out plus the roofs aging out on their own. In other words, it produces the confidence-weighted, storm-aware map described above without you reading every roof by hand.

A few things worth being straight about, because honesty here matters more than the pitch:

  • It gives you an age range, not an install date. The same physical limit applies to a product as to a person with a mouse; nobody reads an exact birth year off a shingle from the sky. The value is the ranked range plus confidence, not false precision.
  • The storm modeling estimates odds, not proof. A roof in a modeled high-impact area is a roof worth inspecting, not a roof you can claim is damaged sight-unseen. The inspection still has to happen on the ground.
  • It ranks doors and routes. It is not a lead-buying service and it does not hand you homeowners who asked to be contacted. It tells you where to spend canvassing effort; your reps still earn the conversation.

Used the way it's meant to be used, it collapses the multi-day build above into a starting point you can refine, and keeps it current as storms and imagery update. The judgment, the door, and the inspection stay yours.

And to be clear about the lane everyone in storm work has to respect: your job in the field is to document the roof's condition and provide an honest estimate. The insurer decides coverage, and the homeowner owns the claim. A roof-age map and a storm model help you find the right roofs to look at. They don't replace the inspection, and they don't decide anything about a claim.

Turning the Map Into a Knock List Crews Will Actually Run

A gorgeous data layer that reps ignore is worthless. The handoff from map to street is where most of these efforts quietly die. Here's how to make it stick.

Give reps the "why" for each door, not a bare pin

A pin says "go here." A pin plus "estimated 18-to-22-year roof, took 1.25-inch hail in 2022, no permit on file" gives the rep an opening line and a reason to believe. Reps work a list harder when they trust it, and they trust it when they can see the reasoning. Surface the range and the storm note on the pin.

Sequence by confidence and density, not score alone

Send reps to tight clusters of high-confidence, high-score doors first to build momentum and early wins. Save the wide-range, low-confidence "upside" doors for drive-by verification passes where a rep can eyeball the roof and upgrade or discard it on the spot.

Set the conversation up to respect the homeowner

The age-led opener works because it's true and specific: "We've been looking at roofs in this neighborhood and our records put yours in the range where it's worth a look, especially after the hail you got a couple of years back. Mind if I take a quick look and give you an honest read?" That's a documentation-and-estimate posture, which is exactly the posture that keeps you on the right side of the rules and the homeowner's trust. No promises about claims, deductibles, or outcomes. Just an offer to look and document.

Track outcomes against predictions

For every door, record the outcome and the actual age the homeowner gives. Two reasons: it calibrates your map (Step 7 above), and it tells you whether your scoring is actually predictive. If your top-decile doors aren't converting better than your median doors, your weighting is off and you fix it before scaling spend.

What Pros Get Wrong

Having watched a lot of teams try this, the failure modes are consistent.

They sell age alone and ignore storm. A 19-year-old roof in a neighborhood that's never been hit is a slow, price-sensitive conversation. The same roof in a recent hail swath is a different sale entirely. Age without storm context leaves money on the table; storm without age context sends you into neighborhoods that just got replaced. You need both layers.

They trust a single signal. The teams that pull only permits miss every unpermitted reroof, which in many markets is most of them. The teams that read only imagery can't tell a 12-year worn roof from a 25-year worn roof. Triangulation is the whole game.

They collapse the range and lose the confidence. Reporting "this roof is 15 years old" instead of "15 to 19 years, high confidence" feels cleaner but throws away the exact information that makes the map actionable, and it sets reps up to sound wrong when the homeowner says "actually I replaced it four years ago."

They build it once and let it rot. Roof ages tick up, storms hit, neighborhoods get replaced. A map from two seasons ago is actively misleading. Either commit to refreshing it or use a source that refreshes for you.

They over-knock the visibly failing roofs. The tarps and the bald roofs are obvious to every competitor in town. Your edge is the roofs that are due but don't show it, the ones only the age-and-storm map reveals. Chasing only the visible failures means competing on price for the most-contacted doors in the market.

They forget the suppression layer. Freshly replaced roofs and recent-claim neighborhoods are dead doors. Not marking them means burning reps on driveways where the homeowner replaced last spring. The suppression signal is as valuable as the opportunity signal.

Edge Cases That Break a Naive Map

The clean workflow above handles the typical single-family asphalt roof well. Real cities are messier. Here are the situations that trip up a map built only on the basics, and how to handle each.

Partial reroofs and repairs. Not every roof is replaced all at once. A roof might get a new slope after a tree fell on it, or have a section patched after a leak. From the air this shows as a roof with mismatched sections of different ages. Treat it as a roof with a weighted age and a wide range, and flag it for a closer look, because mixed-age roofs often signal a homeowner who's been patching instead of replacing and may be ready for the full job.

Tile and metal masking the real problem. As noted, tile and metal roofs read as ageless from above, but their underlayment, flashing, and fasteners fail on a normal cycle. An old house with a tile roof is not a dead door; it may be a roof where the underlayment is overdue even though the tile looks pristine. These need a human eye and shouldn't be auto-suppressed just because the surface looks new.

Rentals and absentee owners. Parcel data usually shows whether the owner's mailing address matches the property address. A mismatch flags a rental or absentee owner, which changes both the conversation and who you need to reach. Investors think about roofs as capital expense and timing, not as a home they live in, and an age estimate plus a storm note is often a stronger opener with an investor than with an owner-occupant. Tag these so reps adjust their approach.

New construction with builder-grade roofs. A subdivision built 9 or 10 years ago sits just outside your "too new" filter, and if it was finished with thin builder-grade 3-tab in a harsh climate, those roofs can age out faster than their build year suggests. Don't blindly trust the 8-year cutoff in markets known for cheap builder roofs; let imagery condition override the build-year assumption when the roofs are visibly wearing early.

Recently sold homes. A sale within the last year or two is a useful signal in both directions. New owners are more likely to invest in the home and more likely to discover roof problems through their inspection. But a listing that advertised a "new roof" means suppression. Cross-reference recent sales against your suppression layer carefully.

Multi-family and small commercial. Low-slope and flat roofs follow a different lifespan and a different decision-maker. If your shop does this work, build a separate scoring track for them rather than forcing them through the residential asphalt logic, which will misjudge both their age and their replacement triggers.

What This Is Worth: The Territory Economics

It helps to frame the payoff in numbers, even rough ones, so you can decide how much effort the map deserves.

The core lever is conversation rate per door. Blind canvassing in a mixed-age neighborhood might yield a meaningful conversation on a small fraction of doors, because most of the doors are too-new, already-replaced, or simply not in the window. A pre-sorted list that removes the new construction, suppresses the recently-replaced, and concentrates on aging-window roofs in storm-exposed areas can lift that conversation rate substantially, simply because a far higher share of the doors have a real reason to engage.

Work the math with your own numbers. Say a rep can physically knock 50 to 70 doors a productive shift. If your blind list converts those into a handful of real conversations and your sorted list doubles or triples that, you haven't changed how hard the rep works; you've changed what they're working. The same labor cost produces more inspections, more inspections produce more signed jobs, and the cost of the map (a week of analyst time, or a software subscription) gets paid back in a handful of extra jobs.

The second lever is sequencing across the season. Because age keeps maturing, the map lets you plan: hit the highest-confidence aging-out clusters during peak canvassing months, schedule storm-exposed neighborhoods right after events when homeowner attention is high, and use the slower off-season to work the "watch" tier and refresh your imagery reads. That kind of planning is impossible when every campaign starts from a blank neighborhood.

The third, quieter lever is brand and rework cost. Reps who knock pre-sorted, well-reasoned doors have better conversations, get fewer complaints, and burn out slower, because they're not getting doors slammed by homeowners with brand-new roofs. Lower rep turnover and fewer angry homeowners don't show up in a conversion spreadsheet, but they're real money over a season.

A Realistic First-Week Plan

If you want to start Monday, here's a scoped version that produces a usable list by Friday.

  1. Monday: Download the parcel file for one core territory. Bucket out everything built in the last 8 years. You've just removed a chunk of wasted doors.
  2. Tuesday: Pull permit data for the territory and match reroof permits to parcels. Tag every match with a confident recent-roof age, and suppress the very recent ones.
  3. Wednesday: Pull hail/wind history for the territory from NWS/SPC data. Mark damaging events and dates. Build your storm overlay.
  4. Thursday: For the surviving aging-window addresses, read current and historical imagery. Capture condition and any before/after replacement brackets. This is the long day; timebox it and accept that you'll deepen coverage later.
  5. Friday: Score, rank, cluster into routes of 30 to 60 doors, and write a one-line "why" on each pin. Hand it to a rep for a verification walk.

By the following week you'll have ground-truth coming back, and the map starts improving itself. Scale the territory once the process is proven on one.

The Bottom Line

Mapping roof ages across a city isn't about finding a magic database of install dates, because that database doesn't exist for residential roofs. It's about triangulating house age, permits, current and historical imagery, storm history, and the occasional real-estate record into a confidence-weighted age range for every address, then layering storm exposure on top so you're chasing the roofs that are both aging out and storm-worn. Score it, rank it, route it, and feed the field results back in so it sharpens over time.

Do that, and your reps stop knocking blocks and start working a pre-sorted market where most doors actually have a reason to talk. Whether you build the map by hand for one territory or lean on a tool like RoofPredict to keep a whole-city version fresh, the discipline is the same: honest ranges, both layers, real confidence, and a knock list that respects the homeowner's door enough to only spend it where it's likely to matter.

FAQ

Can you find the exact age of a roof from aerial imagery?

No. Aerial and satellite imagery can reveal shingle type, condition, wear, and patches, and historical captures can sometimes bracket a replacement to within a couple of years by showing a clear before-and-after. But you cannot read an exact install date off a shingle from the sky. The realistic output is an age range with a confidence level, which is enough to rank a market by which roofs are most likely due.

What's the most reliable single source for residential roof age?

A pulled reroof permit, where it exists. It gives an actual date, address, and often the contractor. The catch is coverage: in many markets a large share of reroofs are done without permits, especially insurance jobs after storms, so the absence of a permit tells you nothing. That's why you triangulate permits with build year, imagery, and storm history rather than relying on any one source.

How do I get permit data for my city?

Start with your city or county building department's open-data portal; search '[your city] open data building permits.' Filter for reroof, roofing, or re-cover permit types and match them to your parcel list by address. If there's no portal, a public-records request can usually get you a bulk export, sometimes for a small fee.

What roof age range should I target for canvassing?

For most asphalt-shingle markets, the richest window is roughly 12 to 22 years, where homeowners are increasingly likely to be dealing with leaks, thinking about replacement, or one storm away from it. Adjust for your climate and shingle mix: intense UV, ice damming, or humidity all shorten real-world service life, pulling that window earlier.

Where do I get storm and hail history to layer onto the map?

NOAA's Storm Prediction Center and the National Weather Service maintain storm event data including hail size and wind reports by location and date. Pull events going back 10 to 15 years for your territory. The Insurance Institute for Business & Home Safety (IBHS) is a good reference for understanding which hail sizes actually damage roofs, since not every hail report means damage.

How is age data different from a storm damage lead list?

A storm damage lead list tells you a ZIP or neighborhood got hit. An age map tells you which specific roofs were aging out before any storm, and which were likely worn out early by past events. Combining both is far stronger than either alone: age without storm context misses the accelerant, and storm without age context sends you into neighborhoods that may have just been replaced after a recent claim.

Why should I track freshly replaced roofs and not only the old ones?

Freshly replaced roofs and recent-claim neighborhoods are dead doors for years. If you don't mark them as suppression signals, your reps burn time on driveways where the homeowner just replaced. Knowing where not to knock is as valuable as knowing where to knock, and a permit or a before-and-after image flags those replacements clearly.

Do I need special software, or can I do this in a spreadsheet?

A two-person team can build a usable map for one territory in a spreadsheet: parcel list with year built, matched permits, a storm overlay, imagery notes, and a weighted score column. Software earns its keep at scale and freshness, when reading historical imagery across tens of thousands of parcels and re-scoring as new storms and captures arrive becomes too much recurring manual work.

How does RoofPredict produce roof age data?

RoofPredict estimates a roof-age range per address from aerial imagery across an entire market, then layers storm physics modeled for each individual roof rather than a coarse ZIP-level flag, and ranks which roofs are most likely due. It returns a range and a confidence weighting, not an exact install date, and the storm modeling expresses odds, not proof. It ranks doors and routes; it is not a lead-buying service, and the on-the-ground inspection still has to happen.

How often should I refresh a roof-age map?

At least once a season, and after any significant storm in your territory. Roof ages tick up, neighborhoods get replaced, and storms change the picture quickly. The strongest approach is to feed field results back continuously, recording the actual age homeowners state and the condition reps see, so your ranges tighten and your local lifespan assumptions stay calibrated.

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. Asphalt Roofing Manufacturers Association (ARMA) Homeowner Resourcesasphaltroofing.org
  2. NRCA Roofing Materials and Systemsnrca.net
  3. NOAA Storm Prediction Center Storm Reportsspc.noaa.gov
  4. NWS Storm Events Database (NCEI)ncdc.noaa.gov
  5. Insurance Institute for Business & Home Safety (IBHS) Hail Researchibhs.org
  6. U.S. Census Bureau American Community Survey: Year Structure Builtcensus.gov
  7. International Residential Code (ICC) Roof Provisionsiccsafe.org
  8. USGS EarthExplorer Aerial Imagery Archiveusgs.gov
  9. FTC Guidance for Businesses on Truthful Advertisingftc.gov
  10. Texas Department of Insurance: Hail and Roof Claimstdi.texas.gov
  11. OSHA Fall Protection in Residential Constructionosha.gov
  12. Bureau of Labor Statistics: Roofers Occupational Outlookbls.gov
  13. NOAA National Severe Storms Laboratory: Hail Basicsnssl.noaa.gov
  14. RoofPredictroofpredict.com

Related Articles