Blog/prospecting

How to Build a Roofing Canvassing List with AI (Before Your Crew Knocks a Single Door)

Stop sending reps to knock 100 random doors and hit 8 real prospects. AI roof scoring builds your canvassing list from satellite imagery first — so every knock is on a door worth knocking.

JT
Jake Thompson
Roofbird
June 5, 2026

A rep knocking 100 random doors in a typical suburb hits maybe 8–12 homes with a roof old enough or damaged enough to actually buy. The other 88 knocks are wasted labor — homeowners who just replaced their roof two years ago, rentals where the landlord doesn't care, houses with 5-year-old architectural shingles that'll run another decade. That's a 90% miss rate before your rep says a single word.

Pair your list with the free US hail map — every NOAA hail report from the last 12 months, by county and size.

AI roof scoring flips the ratio. Instead of building a canvassing list from a ZIP code boundary and a prayer, you build it from roof condition signals — satellite imagery, estimated age bands, storm-event overlap — ranked by likelihood of needing work. Your rep still knocks doors. They just knock the right ones.

Canvassing isn't dying. Unranked canvassing is.

This is the workflow: how to pick the territory, score every roof in it, cut the list to the top tier, route your crew efficiently, and knock with a reason instead of a pitch. Four steps, done before your crew leaves the shop.


What a scored canvassing list actually contains

Before the steps, here's what you're building toward. A scored canvassing list isn't a raw data dump from a county assessor or a lead you bought from Angi. It's a ranked table you can hand to a rep and have them start walking.

The columns that matter:

AddressNeedNowRoof age (est.)MaterialWear signsWhy now
412 Ridgemont Dr8.77.918–23 yrs3-tab asphaltPatching visible, discoloration NE quadrantHail on this roof, neighbours already re-roofed
407 Ridgemont Dr8.16.416–21 yrs3-tab asphaltSurface granule lossHail on this roof
388 Clearwater Ln7.63.121–26 yrs3-tab asphaltNone visibleNothing forcing a decision
501 Clearwater Ln6.22.811–16 yrsArchitecturalNone visibleNone
219 Briar Hollow Ct5.12.26–11 yrsArchitecturalNone visibleNone

Need 8.7 goes first. Need 5.1 gets cut. The rep knocking 412 Ridgemont Dr knows before they ring the bell that the roof is roughly two decades old, shows visible patching, took hail on that specific roof, and sits on a street where the neighbours have already gone new. That's not a cold knock — that's a warm conversation with a reason to be there.

Two scores, not one, because "needs a roof" and "will buy now" are different questions. NEED is how badly the roof needs replacing — condition and roof age only. NOW is whether anything is forcing a decision on this house: visible active damage, hail damage on this specific roof, a recent purchase, patching already attempted, or neighbours who have re-roofed. Neighbourhood hail deliberately does not raise NOW, because every home in the scan shares it. It belongs in the pitch, not the ranking. Most homes in a settled neighbourhood honestly have no trigger, and a list that says so is one you can trust at the door.


Step 1 — Pick the territory like a strategist, not a driver

Most reps pick canvassing territory the way they pick lunch: whatever's closest. That's fine for efficiency, but it's not strategy. Territory selection is where you decide whether the next 40 hours of your crew's time will produce 12 appointments or 3.

Three filters to run before you pick a ZIP or subdivision:

Housing stock age: 1995–2010 builds are in the replacement window. A 3-tab asphalt roof installed in 1998 is 28 years old. A 2006 build is 20 years old. Both are in or past the typical 20–25 year lifespan for standard shingles. Subdivisions built before 1995 have largely already been replaced (or are occupied by homeowners who've deferred and are finally ready). Post-2012 builds are mostly too young. The sweet spot is 1995–2010.

Get this data free: most county assessor portals have a year-built filter. In Texas, try [yourcounty].appraisaldistrict.net — most let you export by subdivision or ZIP with year-built included. In Florida, county property appraiser sites (e.g., bcpa.net for Broward) have the same. Pull the data, filter for 1995–2010, and you have your candidate territories before you've spent a dollar.

Storm history in the last 18 months. A neighborhood that took a 1" hail event 8 months ago and hasn't been saturated with roofers yet is a different opportunity than a neighborhood that took the same storm and has been canvassed by every restoration shop in the metro. Check ncdc.noaa.gov/stormevents for NOAA storm event records by county — free, updated regularly.

Median home value vs. your average ticket. If your average job is $14,000 and the neighborhood's median home value is $95,000, the math gets hard. Homeowners in lower-value homes often can't swing the insurance deductible or the gap between ACV and replacement cost. Target neighborhoods where median home value is at least 8–10x your average ticket — that's a rough proxy for "homeowner can afford to say yes."

Run these three filters and you'll have 2–3 candidate territories. Pick the one that scores best on all three, not just the one closest to the shop.

You can also skip the spreadsheet work entirely. Roofbird will read the neighbourhoods you're looking at and rank the blocks for you — housing era, what share of roofs read as weathered, how many homes are actually there (counted from building footprints, not estimated from acreage), whether hail has hit in the last 12 months, and how walkable the block is. Scattered acreage on long driveways gets called out as bad canvassing even under a perfect storm, because a morning is measured in doors per hour, not square miles. Click a suggestion and it draws the area; you can still drag the corners or draw your own polygon. And when nothing in view clears the bar, it says so instead of handing you three neighbourhoods you should skip. That's the honest version of "where should I knock today," and it's the part no lead marketplace can do, because they don't know your territory — they just sell you whoever filled in a form. You can see a scored area without signing up on the live demo page.


Step 2 — Score every roof in the territory from satellite

This is the step that separates a ranked list from a raw list.

Vision AI trained on aerial and satellite imagery reads surface-level signals that correlate with roof condition and age: granule loss patterns, surface discoloration, visible patching, material type (3-tab vs. architectural vs. metal vs. tile), and approximate age bands derived from imagery combined with assessor data. It's not an inspection — it can't see under-deck condition, active leaks, or ventilation problems. But it doesn't need to. The goal at this stage is ranking doors, not writing estimates.

What the model is actually doing: it's assigning a probability score that a given roof is in the condition range where a homeowner is likely to need replacement in the near term. High scores don't mean "this roof is definitely failing." They mean "this roof is more likely to be worth a knock than the median roof in this territory."

And it reads from two angles at once, not one. A top-down tile misses side-visible wear. Roofbird reads the overhead tile and a ground-level Street View of the façade together into one combined assessment, which catches granule loss, algae streaking, curling shingles, patched sections and rusted flashing that never show from directly above. It also compares the roof against its immediate neighbours from a wider centred view. If the houses either side have visibly been re-roofed and this one hasn't, that gets flagged, because a street where the neighbours have already gone new is the strongest social proof in the trade. This is how Roofbird scores a roof from imagery: you define the territory, and the output is a ranked address list with scores, estimated age bands, material flags, and storm-event overlap already joined. One territory in, scored list out.

One more thing worth knowing before you trust any list, including this one: imagery has a date, and old imagery lies. A contractor in Missoula drove nine doors off his own list and eight of them had already been re-roofed. His neighbourhood had been ranked from a July 2016 aerial photograph while a 2025 street-level shot of the same houses sat unread. The roofs hadn't changed since we read them. The picture had. Street-level imagery is newer than the aerial on about 85% of roofs, by roughly five years. So every shortlist is now checked against the newer picture before you see it, anything already done is moved down and said out loud, and the houses that genuinely can't be judged — behind tree canopy, set too far back from the road — are labelled as exactly that rather than mixed in with the confident ones. Where the aerial and the street photo disagree, the newer one wins and both dates are shown. A roof whose own description says it was recently replaced never reaches the top of a list.

Score your first territory free →

The output is the table from the previous section — ready to sort, cut, and route.


Step 3 — Cut the list and route it

You don't knock every address the model scores. You knock the top tier.

Cut at the top 20–30% of scores. In a territory of 300 homes, that's 60–90 addresses. For a 2-person crew running a full week, 60–80 ranked doors is the right volume — enough to fill the pipeline without spreading the crew thin across too much geography.

Cluster by street, not by score. Once you've cut the list, don't sort it by score and route your rep accordingly — that sends them driving across the subdivision all day. Instead, cluster by street: all the high-score addresses on Ridgemont Dr get knocked in one pass, then the cluster on Clearwater Ln. Your rep walks a block, not drives a ZIP code. Walking matters — neighbors see a rep on foot, which is less threatening and produces more organic conversations than a truck pulling up to each house.

Give each address its "why." Before the rep leaves the shop, every address on their route should have a one-line reason: "roof scored 8.2, hail on this roof, estimated 2003–2008 install." This isn't just for the rep's confidence — it changes the opener at the door. "We've been looking at roofs on this street after April's hail event" is a specific, credible reason to be there. "Are you happy with your roof?" is not.

Route the clusters in order of average score — highest-scoring cluster first. If the crew runs short on time, they've already hit the best doors.


Step 4 — Knock with the data, not just a pitch

The list is built. The route is set. Now the data has to show up at the door.

The opener changes when you have a reason. Instead of a generic pitch, your rep leads with the specific signal: the storm event, the roof age, the visible condition flag. Homeowners respond differently to "we noticed some granule loss on roofs in this area after the April storm" than to a cold "we're a roofing company in your area." The first one sounds like you did homework. The second one sounds like every other canvasser they've seen this month.

The best version of that opener is the neighbour comparison, because it's true and the homeowner can check it by looking out the window: "the two houses either side of you have both been re-roofed in the last few years, and yours hasn't." There is no stronger social proof in this trade, and it only works if you actually know what the neighbours' roofs look like. That's the whole reason the ranking is built against the roofs either side of each house instead of a number nobody can repeat at a door.

For the full door script — what to say in the first 30 seconds, how to handle "not interested," and how to move from opener to appointment — see the door-knocking script for roofers.

For timing: the data tells you which doors to knock, but not when. Knock times matter more than most crews admit — Saturday morning and Tuesday evening produce meaningfully different answer rates than Monday at 2pm. The breakdown is in best time to door knock for roofing.

And when someone answers, the AI score is a list-building tool, not a closing tool. You still need to qualify at the door: is this a renter or an owner, is there an active insurance claim already filed, is the homeowner the decision-maker. You can get some of that before you knock — the full property record shows free on every lead as soon as it's scanned: owner name, whether they live there or it's an absentee or rental owner, estimated market value and confidence, year built, last sale date and price, beds and baths, living square footage, lot size, stories, garage, annual property tax, and mortgage lender. Roofbird also estimates the owner's equity, because equity is what decides whether someone can say yes, and when the deed record can't support an estimate it says so instead of guessing. Only the phone and email sit behind a one-click unlock. The rest of the qualification process is in how to qualify a roof prospect before you knock.


What AI can't see (and what that means for your process)

The satellite score is built from what's visible from above and from the road. That means it misses:

  • Under-deck condition — rotted decking, structural issues, improper previous installations
  • Active leaks — water intrusion that hasn't produced visible exterior symptoms yet
  • Ventilation problems — ridge vent failures, blocked soffits
  • Anything obscured by tree canopy — dense coverage can reduce scoring confidence, which is why those homes get labelled as unjudgeable rather than guessed at

None of this is a reason to distrust the list. It's a reason to frame the process correctly: the AI builds the list, the human inspection closes the job. When your rep gets an appointment, the inspection is where you find the under-deck story, the ventilation issue, the leak the homeowner didn't know was happening. That's the value of the inspection — and it's also why you don't need the score to be perfect. You need it to be better than random. It is.

Being upfront about this with homeowners actually builds trust. "Our system flagged your roof based on imagery and the April storm — but we'd want to do a proper inspection before we tell you anything definitive" is a more credible thing to say than claiming you already know exactly what's wrong from a photo.


FAQ

Q: Can AI really tell which houses need a new roof?

Not with certainty — and that's not the goal. The score is a probability ranking built from satellite and street-level imagery, estimated age data, and storm-event overlap. It tells you which roofs are more likely to need replacement relative to other roofs in the same territory. A high NEED score doesn't mean "this roof is failing." It means "this roof has more condition signals than most roofs in this territory." That's enough to rank your doors. The inspection confirms the actual condition.

Q: Is this legal? Am I allowed to score someone's roof from satellite?

Yes. Satellite and aerial imagery used for roof scoring is the same publicly visible data that Google Maps, county assessor portals, and insurance underwriters use. There's no privacy violation in analyzing imagery of a structure's exterior — roofs are not private spaces. You're not accessing anything a homeowner hasn't already implicitly made visible to anyone with an internet connection.

Q: How big should a canvassing list be for a 2-person crew?

60–80 ranked doors per week is the right range for a 2-person crew running full canvassing days. That's enough to generate appointments at a solid knock-to-appointment rate on a pre-qualified list, without spreading the crew across too much geography. Cut below 60 and you're leaving pipeline on the table. Push above 90 and the crew starts rushing knocks to hit the number, which kills conversion.

Q: What does it cost compared to buying leads?

Shared roofing leads on the big marketplaces are sold to several contractors at once, and the vendors don't publish a rate card — most of them quote per territory on a call, and the price moves with how many roofers they're already selling to in your metro. The structural difference matters more than the number: a shared lead is a form someone filled in, resold until it stops answering the phone. Roofbird has no per-lead fee and no subscription. There is one meter: credits. Looking is free — asking questions, searching, sorting, saving lists, scanning new ground and ranking every roof in it at any size, unlimited service areas. Credits are spent on reading a roof properly (both photographs plus the full property record, 1 credit per 8 roofs), pulling the owner's name, phone and email (1 credit per 2 roofs), or opening a house completely (1 credit). The free trial is 10 credits, no credit card, no expiry. After that you buy one-off packs when you need them: Starter $49 for 49 credits, Crew $99 for 125, Hunter $199 for 300, Pro $399 for 800. Bought credits never expire and nothing renews. Every pack gets the whole product; a bigger pack only costs less per credit. See what a credit buys.

Q: Where does hail fit into the ranking?

Neighbourhood hail is context, not a trigger. Every home in a scan shares the same storm, so it can't separate one door from the next — it belongs in your pitch, not your ranking. What does move the NOW score is hail damage on that specific roof, along with visible active damage, a recent purchase, patching already attempted, or neighbours who have re-roofed. Where a hail event is on record, Roofbird also shows roughly how long the homeowner has left to file an insurance claim, based on the typical notice deadline in that state. Treat that as an estimate and verify with the carrier — it is not a legal deadline.


This week's actions

  1. Pull year-built data for 2–3 candidate ZIPs from your county assessor portal. Filter for 1995–2010. Pick the territory with the densest concentration of that vintage.
  2. Cross-reference against ncdc.noaa.gov/stormevents — any hail events in the last 18 months in that territory?
  3. Score the territory. If you haven't run a satellite score yet, start with one ZIP.
  4. Cut to the top 25% of scores, cluster by street, print the route with the "why" for each address.
  5. Send the crew out Thursday or Saturday morning — the two highest answer-rate windows for residential canvassing.

The list is built before the first knock. That's the whole point.

Stop knocking random doors. Try Roofbird.

New in Roofbird

Now with the homeowner's contact details on every lead

Finding the roof is half the job — you still have to reach the owner. Roofbird now unlocks the homeowner's name, phone, email, and mailing address on any lead, every phone DNC-scrubbed so you know who's safe to call, plus whether they're an owner-occupant or an absentee owner. No skip-tracing tools, no bought lists: find the roof, get the owner, call or mail the same day.

Written by

Jake Thompson

Roofbird

Have a question about anything in this post? Reach the Roofbird team at support@roofbird.ai.

Try Roofbird: 10 free credits in your area

See a sample dashboard for DFW first, no signup needed. Trial loads 10 free pre-scored leads in your own service area.

Related reading