Skip to main content

How to Build a List of Homes With Old Roofs (Without Buying Leads)

Emily Crawford, Home Maintenance Editor··34 min readRoofing Lead Generation
On this page

Every roofer already knows the math, even if nobody writes it down. A re-roof on an average single-family home is worth thousands of dollars in revenue. A new roof three doors down is worth nothing to you for the next two decades. The difference between a profitable canvassing program and a money pit is whether your crew spends the day in front of the first kind of house or the second.

Most contractors solve this by brute force: knock the whole street, mail the whole ZIP, and let volume sort it out. That works, in the sense that a slot machine works. You will hit something eventually. But you pay full price for every door, every stamp, and every hour of payroll regardless of whether the roof behind it has 18 years on it or 18 months.

The better play is to build a list first. A real address-level list of homes whose roofs are old enough to be worth a conversation, ranked so your best hours go to the best roofs. Building that list is a skill, not a purchase. You can assemble most of it from public records and free imagery, sharpen it with storm data, and finish it with the customer book you already own. What follows is the full workflow, the data sources that actually carry signal, the traps that waste a week, and the way pros stitch it all together.

One honest caveat up front, because it shapes everything below: you cannot know the exact install date of a stranger's roof from the curb or from a satellite. Nobody can. What you can do is build a defensible age range per address and stack other signals on top until the list is dense with likely candidates and thin on obvious new construction. That is the goal. Not certainty. Density.

What "old roof" actually means before you build a list

If you are going to filter thousands of addresses, you need a definition you can apply consistently. "Old" is not a feeling. Tie it to the failure curve of the material that dominates your market.

The most common residential covering in the United States is the asphalt shingle, and most of those are the standard three-tab or architectural laminate variety. Manufacturer warranties run long, but warranty years and service life are different animals. In real field conditions, a typical architectural asphalt roof gives a serviceable life in the rough neighborhood of two to three decades, and a three-tab somewhat less. Heat, ultraviolet exposure, slope, ventilation, and storm history all pull that number around. The Asphalt Roofing Manufacturers Association and the National Roofing Contractors Association both publish material guidance worth reading so you anchor your thresholds to something real rather than to a number you half-remember.

For list-building, translate that into bands you can act on:

Roof age band What it means for your list Action
0 to 7 years New or near-new. No re-roof for years. Exclude. Do not pay to reach these.
8 to 14 years Mid-life. A bad storm can move these. Hold. Storm-trigger only.
15 to 22 years Prime replacement window for asphalt. Core list. Knock and mail.
23+ years Overdue. Often visible failure. Top priority.

These bands are for the asphalt-shingle world. If your market runs heavy on tile, metal, wood shake, or low-slope membrane, shift the windows. Tile underlayment fails long before the tile does, so a 25-year-old tile roof can be a real job even though the tile looks fine from the street. Standing-seam metal can run 40-plus years. Wood shake degrades fast in wet climates and is increasingly restricted by fire code in others. The point is to set the band to the material, not to a generic number.

Why the band matters so much for a list: the difference between a 9-year-old roof and a 17-year-old roof is invisible from the curb to most homeowners and most green canvassers. But it is the entire difference between a wasted knock and a sold job. Your list exists to make that invisible line visible before anyone burns gas driving to the door.

The data sources that carry real age signal (and the ones that lie)

There is no single database of roof install dates. If a vendor tells you they have one, they are selling you a model and calling it a fact. So you build age signal by layering imperfect sources. Here is each one, what it actually tells you, and where it fools people.

County assessor and parcel records

This is the backbone of almost every targeting list, and it is mostly free. County assessor and recorder offices publish parcel data: owner name, mailing address, year the structure was built, square footage, lot size, sometimes the last sale date and price. Many counties expose this through a public GIS portal or an open-data site. Larger metros increasingly post bulk parcel downloads.

What it is good for: year built, ownership, owner-occupied versus absentee, square footage (which correlates loosely with roof size and job value), and a mailing address that may differ from the site address.

Where it lies: year built is not roof age. A house built in 1992 may have been re-roofed in 2009 and again after a 2019 hailstorm. The assessor record will still say 1992. This is the single most common mistake in roof list-building. People download "homes built 20-plus years ago" and treat that as "homes with 20-year-old roofs." It is not. It is a starting universe that includes a large minority of homes that have already been re-roofed and are now invisible to that filter. You have to peel those off with other signals.

The second trap is permit blindness. Some counties record re-roof permits and tie them to the parcel. Most assessor exports do not surface that. So the parcel record can quietly hide the exact event you care about.

Building permit records

This is the most underused high-value source, and it works in two directions. Pull the re-roof permits for an area and you get two lists for the price of one. The addresses with a recent re-roof permit are your exclusion list, homes you should stop mailing because their roof is new. The addresses without one, inside an older housing stock, rise on your candidate list.

Many jurisdictions post permits through an online portal or an open-data feed; some require a public-records request. Coverage and quality vary wildly by jurisdiction, and not every re-roof gets permitted, especially smaller jobs or work done by homeowners. So permit data is excellent for exclusion (a permit almost certainly means a newer roof) and only partial for inclusion (no permit does not prove an old roof). Use it accordingly. A clean permit pull can shave a meaningful slice of dead weight off a raw parcel list before you spend a dollar reaching any of it.

Aerial and satellite imagery

Imagery is where you go from "this house is old enough that the roof might be old" to "I can see this specific roof and it looks worn." Free tools get you surprisingly far. Recent high-resolution aerial or satellite views, and the historical imagery sliders in some mapping tools, let you do three things:

  1. Read condition. Streaking, granule loss showing as dark patches, curling or missing tabs, patched sections, moss in wet climates, and uneven coloration all read from straight-down or oblique aerial views once you train your eye. A uniformly bright, crisp roof is probably newer. A blotchy, faded, streaked roof is probably older.
  2. Catch re-roofs the parcel record hides. Slide the historical imagery back a few years. If the roof color and texture changed abruptly between two image dates, that roof was replaced in that window, no matter what the assessor says. This is the cleanest free way to catch the re-roof problem.
  3. Estimate size and complexity. Footprint, number of facets, and pitch all hint at job value and difficulty, which helps you rank.

Where imagery lies: image dates are not always obvious, cloud cover and sun angle can wash out detail, tree canopy hides large sections of roof, and a roof that looks fine from above can have problems on the slopes you cannot see. Imagery is strong on relative condition and re-roof detection, weaker on precise age.

Storm and hail history

A roof's age is one clock. The storms it has actually taken are another. A 12-year-old roof that sat under a severe hail core two summers ago can be more "due" than a sleepy 16-year-old roof that has never seen a real storm. The National Weather Service, the NOAA Storm Prediction Center, and the publicly searchable Storm Events Database let you pull historical hail and high-wind reports by location and date. The Insurance Institute for Business and Home Safety publishes solid research on how hail and wind actually damage roofing assemblies, which is worth reading so you understand what a given storm report implies for the roofs underneath it.

Where storm data lies, and this is the big one: a regional hail report or a county-wide wind event tells you a storm passed through an area. It does not tell you which individual roofs got worn out. Hail falls in narrow, patchy swaths; one street gets hammered and the next street over is untouched. Wind damage concentrates on exposure and roof geometry. So a county-level storm report is a blunt instrument. It puts a flag on a wide region. Turning that into "which of these specific roofs did the storm actually damage" is a much harder problem, and it is exactly where most free workflows stall out.

Your own CRM and past estimates

The highest-converting old-roof list a contractor owns is usually the one already sitting in the CRM, and most shops never mine it. Think about who is in there: every homeowner who got an estimate two, four, six years ago and did not buy. Every repair customer you patched instead of replaced. Every inspection that came back "a few more years." Those roofs did not stop aging. The 14-year-old roof you looked at four years ago is an 18-year-old roof now, sitting squarely in the prime window, attached to a homeowner who already knows your name. That is a list you do not have to buy, reach cold, or compete for. We will come back to this, because it is the cheapest high-yield list in the building.

The sources that do not carry age signal (stop trusting these)

Two data points get mistaken for roof age constantly, and both will steer your list wrong.

Year built from a real-estate listing site is not roof age. Public-facing property sites show year built, square footage, and sale history. They do not show roof install date, and re-roofs are invisible to them. A home that re-roofed last year still shows its original build year. Treat these the way you treat the assessor record: a universe starter, not a roof-age fact.

Generic "homeowner" data lists are not roof lists. Plenty of vendors sell consumer marketing lists filtered by home value, age of home, and income. Those are demographic lists. They tell you nothing about the roof. You can buy ten thousand "homeowner" records and have no idea which roofs are new and which are shot. That is the whole problem you are trying to solve, and a demographic list does not solve it.

A step-by-step workflow to build the list from scratch

Here is the actual sequence, start to finish, the way a sharp targeting person would run it for a defined area. Adjust the tools to what your market makes available, but keep the order, because each step cuts waste before the next, more expensive step.

Step 1: Define the geography tightly

Do not start with "the metro." Start with neighborhoods. Pull a map and pick subdivisions or platted neighborhoods where the housing stock was built in your target band. A neighborhood that went up in a single 2003 to 2006 build-out is gold: most of the original roofs are now in or entering the prime window at the same time, and they tend to be similar materials and pitches, which makes both your imagery review and your crew's day efficient. Mark 5 to 15 of these as your working set. Tight geography also keeps drive time low, which is half of canvassing profitability.

Step 2: Pull the parcel universe

For each chosen neighborhood, pull the parcel records: address, owner, year built, square footage, owner-occupancy, last sale date. Filter to your housing-age band as a first cut only. Remember this is a universe, not a list, because year built does not equal roof age. Expect that a real chunk of these have already been re-roofed and will get cut later. That is fine. You are casting wide on purpose so the next steps can carve.

Step 3: Subtract recent re-roof permits

Pull re-roof permits for the same neighborhoods over the last, say, 8 to 10 years. Match them to your parcel universe and remove those addresses. Every one you remove here is a stamp, a knock, and a payroll minute you just saved on a roof that is too new to sell. This single step is where disciplined contractors separate from the spray-and-pray crowd. Even partial permit coverage helps, because every confirmed-new roof you cut is pure waste eliminated.

Step 4: Eyeball the imagery and tag condition

Now go visual. Open aerial imagery for each remaining address and tag it quickly. You are not doing a full inspection. You are sorting into three buckets in a few seconds each:

  • Likely old / worn: streaked, faded, blotchy, patched, missing tabs. Promote.
  • Likely re-roofed / new: uniform, bright, crisp, or visibly changed in historical imagery. Cut or downgrade.
  • Unknown / obscured: heavy tree cover, bad image. Keep on the list but flag for a drive-by.

Use the historical imagery slider on every address you are unsure about. Catching one hidden re-roof here saves you the embarrassment and waste of pitching a homeowner whose roof you would have praised. A trained eye can move through a residential neighborhood at a steady clip; this is the most labor-intensive free step, and it is also where the most signal lives.

Step 5: Overlay storm history

Pull hail and high-wind events for the geography over the relevant years and note which neighborhoods sat under real storm cores. Use this to re-rank, not to gate. A neighborhood that took a verified severe hail event a couple summers back deserves a priority bump even on roofs in the 8-to-14 band, because impact plus age compounds. Keep the honest limit in mind: the storm report flags the area, not the individual roof. You are adding a regional probability layer, not proof that any one roof was hit.

Step 6: Score and rank

Now turn the stack of signals into a single ordering so your crew works the best roofs first. A simple weighted score works fine. Assign points and sort descending:

Signal Points
Roof age band 23+ (by build year, no re-roof found) 40
Roof age band 15 to 22 30
Imagery reads worn / streaked / patched 20
In a neighborhood with verified recent severe storm 15
Owner-occupied (decision-maker lives there) 10
Recent re-roof permit found minus 100 (drops it off)
Imagery reads clearly new / re-roofed minus 60

The exact weights are yours to tune against your close data over time. The principle is what matters: combine age, visible condition, storm exposure, and owner-occupancy into one ranked list, and let the minus-scores ruthlessly bury the new roofs. Sort it, and the top of the list is where your first knocks and your first mail drop should go.

Step 7: Append contact data for the channel you will use

If you are mailing, the parcel mailing address is usually enough, and owner name personalizes it. If you are door-knocking, your list is your route; sequence it by score and by physical proximity so your crew is not crisscrossing the neighborhood. If you are calling or texting, you will need phone append, which is a separate data step and carries its own consent and contact rules. Keep mailing-address-only and contact-data lists separate in your head, because the legal obligations diverge sharply once a phone number is involved.

Reading a roof's age from aerial imagery: a field guide

The imagery pass is where the most signal lives and where most people are the weakest, because nobody taught them what to look for. You are not trying to date a roof to the year from above. You are sorting old from new and catching re-roofs. Here is what actually reads from a straight-down or oblique aerial view, roughly from most reliable to least.

Color uniformity. A roof installed recently is uniform in tone across every plane. As asphalt ages, it weathers unevenly: south- and west-facing slopes take more ultraviolet and fade faster than north-facing ones, so an older roof often shows a visible tone difference between slopes. When one plane is noticeably lighter or darker than the rest, you are usually looking at age, not a trick of the light.

Streaking and dark blotches. Long vertical dark streaks are typically algae, common in humid regions, and they take years to establish. Irregular dark patches can be granule loss exposing the asphalt mat underneath. Both read clearly from above and both mean the roof has years on it. A crisp, clean field with no streaking is more likely newer.

Patches and color mismatches. A rectangle or strip of shingle that does not match the surrounding color is a repair. Repairs mean the roof has already had problems, which means age, and they also mean the homeowner has already paid someone to think about this roof, which is useful to know before you knock.

Texture and edge definition. New architectural shingles cast crisp shadow lines along their laminated edges; the roof looks dimensional and sharp. As shingles age, curl, and lose granules, those edges soften and the surface flattens out in the image. A roof that looks flat and muddy where you would expect dimensional shadow lines is usually older.

The historical slider is your re-roof detector. This is the single most valuable move in the whole imagery pass. Pull up older imagery of the same address and step forward in time. If the roof's color or texture changed abruptly between two image dates, that roof was replaced in that window, full stop, regardless of what the parcel record says. This is how you catch the re-roofs that build year hides, and it is free.

What does not read reliably from above: the exact material on a low-slope section you cannot see, damage on the slopes facing away from the camera, anything under heavy tree canopy, and fine-grained hail bruising, which often needs a hand on the shingle to confirm. So flag the obscured ones for a drive-by rather than guessing. The imagery pass is for sorting old from new at speed, not for final diagnosis. Final diagnosis happens on the ladder.

One efficiency note: train whoever does this pass on a street you already know cold, where you have inspected the roofs in person. Have them call old versus new from imagery, then check their calls against what you know is up there. A couple of hours of that calibration turns a guesser into someone whose imagery tags you can trust, and it is worth doing before you point them at a thousand strange addresses.

A worked example: one neighborhood, end to end

Numbers make this concrete. Take a hypothetical subdivision built out from 2002 to 2005, roughly 400 single-family homes, asphalt shingle, in a market that has seen a couple of notable hail events in the last few years. Watch how the list narrows.

  • Start: 400 homes in the parcel pull, all in the 19-to-22-year build-age band. Tempting to mail all 400.
  • Subtract permits: A re-roof permit pull turns up 90 homes with permits in the last decade. Those roofs are newer than the build year implies. Cut them. 310 remain.
  • Imagery pass: Reviewing the 310, you find another 55 that clearly changed roof color or texture in historical imagery, or read as bright and uniform, classic signs of an unpermitted or out-of-window re-roof. Downgrade or cut them. You also flag 30 as obscured by tree cover for a drive-by. 255 strong candidates, 30 flagged.
  • Storm overlay: The whole subdivision sat under a verified severe hail report two summers ago. Every remaining roof gets a priority bump; the worn-reading ones bump highest.
  • Score and sort: You now have roughly 255 ranked addresses. The top 80 are 19-to-22-year roofs that read worn on imagery, owner-occupied, in the storm footprint. That is your first wave.

You started ready to spray 400 doors. You are now going to work 255 with a clear order of operations, having cut 145 homes that were either confirmed new or strongly likely re-roofed. If a mail piece costs you a buck-something all-in, you just saved real money on this one neighborhood before sending a single piece, and more importantly, your crew's first day is in front of the 80 best roofs instead of a random 80. Run that discipline across 10 neighborhoods and the savings and the lift compound.

Building the list as a spreadsheet you can actually run

Tools are optional. A disciplined spreadsheet is not. Whatever software you use, the list needs a structure that holds every signal, computes a score, and tracks the outcome so you learn. Here is a column layout that has held up well in the field, with the reasoning for each field.

Column Source Why it earns a column
Site address Parcel The roof's location and your route stop.
Owner name Parcel Personalizes mail; tells you owner-occupied vs absentee.
Mailing address Parcel If it differs from site address, the owner is absentee.
Year built Parcel Universe filter and a weak age proxy, never the final word.
Square footage Parcel Loose proxy for roof size and job value, helps ranking.
Re-roof permit found (Y/N + year) Permits The exclusion flag; a Y usually drops the row.
Imagery condition (new/worn/obscured) Imagery Catches re-roofs and reads condition.
Imagery re-roof detected (Y/N) Imagery slider Hard cut for confirmed replacements.
Storm exposure (none/moderate/severe + date) Storm data Regional re-rank, never per-roof proof.
Score Computed The single number that orders your day.
Status (new/mailed/knocked/inspected/sold/dead) Field Closes the feedback loop.
Outcome notes Field What actually happened, for tuning weights.

The two columns people skip are the last two, and they are the ones that make the list compound in value. Without a status and an outcome, you cannot tell which signals predicted closes, which means you can never improve your scoring and you are guessing in perpetuity. Fill them in religiously. Six months of honest outcome data turns a generic scoring model into one tuned to your market, your materials, and your crew.

A few practical rules for running the sheet. Keep one row per address forever; do not delete dead rows, mark them dead, because a dead row this year may age back into relevance, and because the dead rows teach you what not to chase. Date-stamp your data pulls so you know when the permit and imagery layers are getting stale. And keep your contact-data columns, especially phone numbers, in a clearly separate section, because the moment a phone number enters the list the legal rules around how you may use it tighten considerably.

Absentee owners, rentals, and other ownership wrinkles

The parcel record hands you an ownership signal most contractors ignore, and it changes how you work an address. When the owner's mailing address differs from the site address, the home is likely a rental or a second property. That matters in three ways.

First, the decision-maker is not behind the door. Knocking gets you a tenant who cannot authorize a roof. For absentee-owned homes, mail to the owner's actual mailing address, not the site address, or you are talking to the wrong person entirely.

Second, landlords and property managers buy on different logic than owner-occupants. They are running numbers, not protecting a home they live in, so a worn roof that is still functional may sit until it leaks. That can make them slower, but it also makes them less emotional and more transactional once a roof genuinely fails. A portfolio owner with several aging roofs in your area can be worth cultivating as a repeat account rather than a one-off knock.

Third, owner-occupancy is a legitimate ranking input. All else equal, an owner-occupied home with an old roof is a more reachable, faster-closing job than an absentee one, because the person who decides also lives under the roof and feels the problem. That is why owner-occupied earned points in the scoring table. Keep the absentee homes on the list, but work them through mail to the right address and treat the owner-occupied old roofs as your knock priority.

Where the free workflow runs out of road

Everything above is doable with public data, free imagery, and labor. Thousands of contractors should be doing exactly that and are not. But be honest about where it gets hard, because the hard parts are precisely where most homegrown lists stay weak.

Re-roof detection at scale is slow. Sliding historical imagery on a few hundred homes is fine. Doing it across a whole metro, every neighborhood, every season, is a full-time job, and human eyes get tired and inconsistent. The parcel record's year-built blindness is the core weakness, and patching it by hand does not scale past a certain volume.

Storm-to-roof is the real gap. This is the one that no amount of free data closes cleanly. You can pull a storm report and know a region got hail. You cannot tell, from that report, which specific roofs in that region actually took damaging impacts. Hail swaths are narrow and patchy; the report covers the whole county. So the regional flag over-includes badly. Half your storm-flagged roofs may have sat just outside the damaging core. Sorting that out by hand is effectively impossible, and it is the difference between knocking 255 doors and knocking the 60 that the storm genuinely worked over.

Age range tightening. Build year plus permit minus imagery gets you a usable band, but it is a wide band. Narrowing "15 to 25 years" down to "18 to 22 years" across thousands of homes, consistently, is more than a person with a mapping tab can sustain.

These are not reasons to skip the free workflow. Do the free workflow; it is real and it works. They are reasons that, past a certain scale or in storm-heavy markets, contractors reach for tools that automate the parts hands cannot keep up with.

Where roof-age and storm modeling per address fits

This is the seam where a tool earns its place, so here is the honest version of what it does and does not do.

The two hardest parts of the workflow above, catching hidden re-roofs at scale and turning a regional storm report into per-roof damage likelihood, are exactly the parts a purpose-built system handles better than a person with a browser. RoofPredict scans an area from aerial imagery and returns, for each address, a roof-age range rather than a single guessed date, and it models storm physics per roof, hail and wind, on the specific roof rather than just noting that a storm passed through the ZIP. The practical output is a ranked list of the homes most likely due, with the new roofs already pushed down and the storm-worn ones surfaced, so your crew works the right doors and skips the ones that are not ready.

Where this changes the workflow above: it compresses Steps 4, 5, and 6, the imagery pass, the storm overlay, and the scoring, the three steps that do not scale by hand, into a list you can act on. The age range is doing the re-roof-detection work that the parcel year-built field cannot. The per-roof storm model is doing the storm-to-roof work that a county hail report cannot.

Now the honest limits, because anyone who tells you otherwise is selling. It is a range, not a date. You will see something like "18 to 22 years," not "installed March 2007," because the install date of a stranger's roof is genuinely not knowable from above. The storm model gives you odds, not proof that a given roof took damage; the only way to confirm damage is to get on the roof and document it. It does not measure the roof or identify the exact shingle product; that is a different category of tool, the EagleView and HOVER world, which answers "measure this roof," not "which roof should I knock." And it is not a lead service; nobody hands you a buying homeowner. It hands you a sharper list. You still knock, you still inspect, you still sell. What changes is that the knocking starts in front of roofs that are actually old and actually worked over, instead of a street of mixed ages where half the doors were never going to buy.

The reason this matters for list-building specifically: it lets a small shop, or a green canvasser, target like a veteran without spending the week in mapping tabs. The list does the discrimination that experience used to do.

The list you already own: mining your CRM and old estimates

Before you spend a dollar reaching strangers, work the list in your own building. Every shop with a few years of history is sitting on a pile of aging roofs attached to warm names, and almost nobody systematically works it. This is the highest-return list-building you can do, because the contact data is clean, the homeowner already knows you, and the roofs have done nothing but get older.

Here is how to mine it:

  1. Pull every estimate that did not close, going back 3 to 8 years. Each one is a roof you already looked at and a homeowner who already let you on the property. Add the elapsed years to the roof age you noted then. A roof you called "about 13 years, a few left in it" five years ago is an 18-year-old roof now, squarely in the window.
  2. Pull repair-only customers. Anyone you patched instead of replaced. A patch buys time; it does not reset the clock. Many of those roofs are now ready for the full job.
  3. Pull old replacement customers in storm markets. A roof you installed isn't a target for replacement, but those customers refer, and after a major storm your own past installs are worth a documentation drive-by because you know exactly what is up there.
  4. Re-rank by elapsed time and any storm events since. The same scoring logic applies: age plus storm exposure. An old non-closed estimate in a neighborhood that took hail last summer goes to the very top.
  5. Reach out with a reason, not a re-pitch. "We were back in your neighborhood after the storms and wanted to take another look at your roof" lands far better than "following up on that quote from 2021." The roof aging into the window is the reason.

The economics here are unbeatable: no list purchase, no cold mail, no lead competition, and a homeowner who already let you onto the property once. If you do nothing else from this whole workflow, build and work this list first.

Channel playbooks: turning the list into jobs

A list is potential energy. The channel converts it. Match the channel to how the list is built and to your shop's strengths.

Direct mail to a targeted old-roof list

Mail shines when the list is tight. The whole reason targeted mail beats saturation mail is that you stop paying to reach roofs that cannot buy. Run the list through the full workflow first; never mail a raw parcel pull.

  • Personalize with what the list gives you. Owner name from parcel data, neighborhood familiarity, and an honest age-aware message ("roofs in your neighborhood are reaching the age where it pays to get ahead of a leak") beat generic blast copy.
  • Sequence it. Mail the top-scored homes first; do not blow the whole budget on one drop. Stagger so you can knock behind the mail while the name recognition is fresh.
  • Track at the address level. Tie every response back to the list so you learn which signals predicted closes. That feedback is how you tune your scoring weights over time.

Door knocking a ranked route

Knocking converts the highest because the roof gets seen. The list's job is to make every knock count.

  • Run the route by score and proximity, not by whatever street you happen to be on. The list is your route sheet.
  • Arm the rep with the per-home reason. A canvasser who can say something specific and true about why this roof, this house, sounds like a veteran. This is where a per-address age range and storm note turns a nervous new hire into someone who knocks with a point.
  • The new-roof skip is a feature, not a loss. A rep who is not wasting knocks on obviously new roofs keeps their energy and their numbers up, and reps who make money stay. Cutting the dead doors out of the route is quietly one of the best things you can do for crew retention.

Following up the CRM list

This is phone and in-person, warm. The reason is the roof's age and any recent storm, as above. Because these contacts already know you, the conversion math is the friendliest in the building, and it costs you nothing but the hour.

Measuring whether the list is actually working

You built the list to spend less reaching the wrong roofs and close more of the right ones. Prove it. A list program you do not measure is just a more elaborate version of spraying, and you want to know within a campaign or two whether the carving is paying off.

Track these, per neighborhood and per channel:

  • Contact-to-inspection rate. Of the doors you knocked or pieces you mailed, what share turned into a roof you got on. A well-built old-roof list should beat a saturation effort here, because you are reaching homes that actually have a reason to let you up.
  • Inspection-to-sale rate. Of the roofs you inspected, what share closed. This is partly your sales process, but a good list lifts it too, because you are inspecting genuinely worn roofs instead of new ones that were never going to buy.
  • Cost per inspection and cost per sold job. Total channel spend divided by inspections, and by sold jobs. This is the number that justifies the whole exercise to an owner. The list wins by driving these down even if total volume is smaller, because you stopped paying to reach roofs that could not buy.
  • New-roof waste rate. Of the doors you worked, what share turned out to be roofs too new to sell. This is your list-quality dipstick. If it is high, your carving is weak; tighten the permit and imagery steps. If it is near zero, your list is doing its job.
  • Score-band close rate. Which scoring bands actually closed. This is the feedback that retunes your weights. If your top band closes far better than your middle band, your model is working; if they close the same, your scoring is not discriminating and needs work.

Do not compare your targeted list against nothing. Compare it against what you were doing before, saturation mail or random knocking, on the same kind of neighborhood. The honest test is whether the same spend produces more inspections and more sold jobs, or the same jobs for less spend. If it does neither, your carving steps are too loose, and the fix is almost always more aggressive exclusion of new roofs, not more addresses.

What pros get wrong when building these lists

After watching a lot of contractors build a lot of lists, the same handful of mistakes show up over and over. Skip these and you are ahead of most of your market.

Treating year built as roof age. Said three times in this piece on purpose, because it is the number-one error. A list filtered only on build year is half full of re-roofed homes you will waste money reaching. Subtract permits and check imagery, always.

Mailing the raw universe. Pulling 5,000 parcels and mailing all of them because it is easy. The whole value is in the carving. An uncarved list is barely better than a phone book.

Treating a regional storm report as per-roof proof. Telling a homeowner their roof is damaged because a county hail report exists is both inaccurate and a fast way to torch your credibility and invite trouble. The report says the area saw hail. Only an inspection says this roof took damage. Build your list off the storm flag; make your damage claims off the ladder.

Ignoring the CRM. Spending on cold lists while a season of warm, aging-in roofs sits untouched in the database. Backwards.

No feedback loop. Building a list, working it, and never tying closes back to which signals predicted them. Without that loop your scoring never improves and you are guessing forever. Log the outcome of every worked address and let the data retune your weights.

Chasing exactness. Burning hours trying to pin an exact install date that cannot be known. The list does not need to be perfect. It needs to be dense with good candidates and thin on obvious new roofs. Density beats precision. Get to a strong ranked list and go knock; refine it from the field, not from the desk.

Sloppy storm-claim language. When the list feeds a storm campaign, keep the documentation lane clean. Your job is to inspect, document conditions, and provide an estimate. Coverage decisions belong to the homeowner and their insurer. Do not position yourself as handling, managing, or negotiating the claim, and stay away from anything touching a homeowner's deductible. Several states treat that as unlicensed public adjusting, and the rules are getting stricter, not looser. A clean photo set and an honest estimate are what you bring to the table; the claim stays between the homeowner and their carrier.

A practical build checklist

Keep this taped to the wall of whoever runs your targeting.

  • Pick 5 to 15 tight neighborhoods in your target build-age band.
  • Pull parcel records: address, owner, year built, square footage, owner-occupancy.
  • Filter to the build-age band as a universe, not a final list.
  • Pull and subtract recent re-roof permits.
  • Imagery pass: tag worn / new / obscured; use the historical slider to catch hidden re-roofs.
  • Overlay hail and wind history to re-rank by storm exposure.
  • Score every address; let new-roof signals bury themselves.
  • Sort by score, then sequence by physical proximity for the route.
  • Mine the CRM for non-closed estimates and repair-only customers; age them forward and merge in.
  • Append contact data only for the channel you will use; keep phone-equipped lists separate.
  • Work the top of the list first; log every outcome.
  • Feed outcomes back into your scoring weights.

Keeping the list alive

A roof list is not a one-time artifact. Roofs age into your window every single month, new storms rework the map, and homes change hands. Treat the list as a living asset.

Re-pull permits quarterly so your exclusion list stays current. Re-run imagery on storm-hit neighborhoods after each significant event. Roll the bottom of last year's hold list (the 8-to-14-year roofs) up into this year's core as they cross into the prime window. And keep feeding close outcomes back into your scoring so the model that ranks your doors gets sharper every season. The contractors who win at this are not the ones who built one great list once. They are the ones who turned list-building into a standing process, so there is always a ranked stack of genuinely-due roofs waiting for the next open day on the calendar.

That is the whole game. Stop paying full price to reach every roof on the street. Build a list that already knows which ones are old, which ones the storm worked over, and which ones are sitting warm in your own book, and point your best hours at the top of it. The roofs are out there aging right now whether you target them or not. The only question is whether your crew shows up at the right doors or the random ones.

FAQ

Can I find out the exact age of a roof from public records?

No. There is no public database of roof install dates. County assessor records show the year the house was built, not when the roof was last replaced, and re-roofs are invisible to that field. The best you can do is build a defensible age range per address by combining build year, re-roof permits, and aerial imagery. Treat roof age as a range, never an exact date.

Why isn't year built the same as roof age?

A house built in 1992 may have been re-roofed in 2009 and again after a 2019 storm, yet the assessor record and real-estate listings still show 1992. Filtering a list only on build year includes a large minority of homes that have already been re-roofed and are now new. You have to subtract recent permits and check historical imagery to peel those off.

What's the best free way to spot homes with old roofs?

Layer three free sources. Pull county parcel records for build year and ownership, pull building permits to subtract recent re-roofs, then use free aerial and satellite imagery, including the historical-image slider, to read condition and catch re-roofs the parcel record hides. That combination gets you a usable ranked list without buying any data.

How do building permits help me find old roofs?

Re-roof permits work as an exclusion list. An address with a recent re-roof permit almost certainly has a newer roof, so you remove it and stop wasting mail and knocks on it. The absence of a permit on an older home raises its candidacy. Permit coverage varies by jurisdiction and not every job is permitted, so permits are excellent for exclusion and only partial for inclusion.

Does a storm report tell me which roofs were damaged?

No. A hail or wind report from the National Weather Service or the Storm Events Database tells you a storm passed through an area. Hail falls in narrow, patchy swaths, so the report over-includes badly; one street gets hit and the next is untouched. Use storm history to re-rank a list by regional exposure, but the only thing that confirms damage on a specific roof is getting on the roof and documenting it.

Should I just buy a list of homeowners instead?

Generic homeowner marketing lists are filtered by home value, age of home, and income. They are demographic lists and tell you nothing about the roof, which is exactly the thing you need to know. You can buy ten thousand homeowner records and still have no idea which roofs are new and which are shot. Build the list off roof-age and condition signals instead.

What does a tool like RoofPredict add over the free workflow?

It automates the two steps that do not scale by hand: catching hidden re-roofs across a whole area and turning a regional storm report into per-roof damage likelihood. It scans an area from aerial imagery and returns a roof-age range per address plus a per-roof storm model, ranked so new roofs are pushed down and storm-worn ones surface. The honest limits: it gives a range not a date, storm odds not proof of damage, it does not measure the roof, and it is not a lead service. You still knock, inspect, and sell.

Is my own CRM a good source for old-roof leads?

It is usually the best one and the most overlooked. Every estimate that did not close two to eight years ago is a roof you already inspected attached to a homeowner who already let you on the property, and those roofs have only aged. A roof you called thirteen years old five years ago is eighteen now, squarely in the prime replacement window. Mining non-closed estimates and repair-only customers costs nothing and converts better than any cold list.

How wide should my roof-age replacement window be?

Set it to the dominant material in your market. For asphalt shingle, the core replacement window runs roughly fifteen to twenty-two years, with twenty-three-plus as top priority and eight-to-fourteen as a storm-trigger hold. Tile underlayment can fail well before the tile looks bad, so age those higher; standing-seam metal runs much longer. Anchor the band to material service life, not a generic number.

How do I keep a roof list from going stale?

Treat it as a living asset. Re-pull permits quarterly to keep the exclusion list current, re-run imagery on storm-hit neighborhoods after each significant event, roll mid-life roofs up into the core as they cross into the prime window, and feed every close outcome back into your scoring weights so the ranking gets sharper each season. The contractors who win turned list-building into a standing process, not a one-time download.

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. National Roofing Contractors Associationnrca.net
  2. Asphalt Roofing Manufacturers Associationasphaltroofing.org
  3. Insurance Institute for Business and Home Safetyibhs.org
  4. NOAA Storm Prediction Centerspc.noaa.gov
  5. NOAA Storm Events Databasencdc.noaa.gov
  6. National Weather Serviceweather.gov
  7. U.S. Census Bureau, American Housing Surveycensus.gov
  8. International Residential Code (ICC)iccsafe.org
  9. OSHA Fall Protection in Constructionosha.gov
  10. Federal Trade Commission Business Guidanceftc.gov
  11. Texas Department of Insurance, Roof Damage and Claimstdi.texas.gov
  12. U.S. Bureau of Labor Statistics, Roofersbls.gov
  13. FEMA National Risk Indexfema.gov
  14. RoofPredictroofpredict.com

Related Articles