Exclusive territory, NOAA-confirmed hail and wind matches, and a 0–100 score on every roof — so you contact the homes most likely to close.
Card up front, never charged before day 15. Cancel anytime in one click.

One roofer per county or city. Your direct competitors do not see your leads. Lock out a whole county or pick a single city — pay for the footprint that matches your crew.
Every lead has a confirmed hail or wind event within 10 miles, with date and magnitude attached. Scored 0–100 on roof age, storm severity, recency, and property value. No speculative post-storm address lists.
Connect Gmail with OAuth or paste in your own Twilio credentials. Outreach goes out from your email and your phone — RoofLeads is never the sender. No third-party sender-reputation hit on your domain.
Federal DNC/DNE registry is filtered before any send. TCPA quiet-hours auto-block SMS. Every outbound logs a consent snapshot for audit. You can prove you played by the rules.
Tap any lead from the truck cab and see the full NOAA-verified hail and wind history within striking distance — dates, magnitudes, and how close each event hit. The score on top tells you whether to drive there next; the history below tells you what to say when the homeowner asks “why me?”

Browse the live availability map at /territories. Lock in a footprint that matches your crew — $399/mo for a small city, up to $2,598/mo for a whole big county. 14-day free trial on every plan. No setup fees, no per-lead fees, no annual commitment.
Iowa Mesonet pulls NOAA's preliminary storm reports every hour and cross-references against your territory. A daily comprehensive rescore catches everything against the last 2 years of storm history. Leads land in your dashboard with a 0–100 score within ~4 hours of a confirmed event.
Connect Gmail with OAuth, or paste in your own Twilio credentials. Multi-select up to 50 leads at a time, edit your template once, hit send. Each homeowner gets a private personalized message from your address — RoofLeads never appears in the From line.
Only one roofer per city or county. No fighting four other trucks for the same homeowner. Lock out a whole county or pick a single city.
Pulled hourly from Iowa Mesonet local storm reports plus the federal NOAA Storm Events database. Date and magnitude attached to every lead. No fake storms, no marketing exaggeration.
Each home scored on roof age, storm severity, recency, multi-storm exposure, sale recency, property value, and roof material. Full breakdown visible on every lead — no black-box rating.
Properties with a recorded roof replacement permit in the last five years are penalized in the score so you don't burn outreach on already-served homes. Aurora live; other cities rolling out.
Connect Google with OAuth once. We send through your account using the gmail.send scope — never read your inbox, never appear in the From line. Homeowners see your domain, not ours.
Bring your own Account SID, Auth Token, and number. SMS goes from your phone, billed directly to your Twilio account. We orchestrate the send and enforce compliance — billing and identity stay with you.
Multi-select up to 50 leads at a time. Edit your template once. Each homeowner gets a private message with their own name, address, storm date, and roof age filled in — no shared To, no CC.
Federal Do-Not-Call and Do-Not-Email registries enforced before any send. TCPA quiet-hours (8 PM – 8 AM local) auto-block SMS. Every outbound writes a consent snapshot for audit.
Wake up to your top unworked leads every morning. Tier-scaled volume — 2 to 25 per day depending on your plan. Click through to the lead detail page from your phone.
Connect with OAuth. Every status change pushes a Contact upsert with the right hs_lead_status. Sold becomes lifecyclestage: customer automatically. Salesforce and webhooks on the roadmap.
Lead detail page has a sticky one-thumb Call / Text / Email bar at the bottom. Satellite imagery on every lead so you know the roofline before pulling up. Status updates work one-thumb on phone.
Every send writes a row with the recipient, channel, timestamp, and compliance state at send time. If you're ever asked to prove you honored DNC/TCPA, the answer is in the database.
Plug in your numbers. We'll compare your current door-knocking spend against a typical RoofLeads Pro subscription.
Numbers are estimates. Door-knocking math assumes 50 doors/day per canvasser at 1.5% conversion (industry average for saturated post-storm markets), fuel at $25/day per vehicle (1 vehicle per 2 canvassers), and labor at the rate you entered. RoofLeads benchmark uses our Mid City tier ($699/mo) and typical 30% conversion on ~80 ranked leads/month. Your actual results will vary by territory and follow-up.
Every phone number is screened against the federal Do-Not-Call registry. If a homeowner is on the list, we don't show the phone number — we show their email and a door-knock-ready address instead. You can't accidentally trigger a federal fine because you can't see the number to dial.
Claim one city — or lock out an entire county with a bundle (40 counties still open). First-mover advantage: once it's gone, it's gone.
A data-driven check-in on Colorado's 2026 hail season: how many events have hit, where the biggest stones have fallen, and the moves that separate roofers who capture peak-season storms from those who scramble.
No fluff. What each storm-intelligence tool does well, where each falls short, and how to choose based on your business model — from someone who built one of the three.
Two homes on the same street, hit by the same hail, with completely different replacement odds. Here's why blanket canvassing leaves money on the table — and what scoring by roof age actually changes.
Front Range hail season is short and concentrated — the difference between a $200k summer and a $40k summer is whether your territory was locked in before the first claim-worthy event. 112 cities currently open.
Card up front, never charged before day 15. If RoofLeads Pro isn't producing leads worth more than the territory fee by day 13, cancel and walk away — no charge, no questions asked.