Roofing lead brokers sell one variable. Everything else in the pitch is packaging.
Here is the tell. A roofing company posting on r/RoofingSales documented what happened after they paid two lead vendors more than $11,000. When they complained that the appointments they bought were on nearly new roofs, the second vendor produced a price list: $10 more per lead for a roof 5 years or older, $20 more for a roof 10 years or older.
That is a broker charging a surcharge for public records.
The short answer
To generate roofing leads without buying them, stop thinking in channels and start thinking in lists. The channel is the cheap part. The list is what you are actually renting. Five lists reproduce almost everything a broker sells you: permit, storm, the one you already own, referral and inbound. Four cost labor rather than cash, and all five stay yours.
"Free" roofing leads are not free, and pretending otherwise is why owners quit
Kill the word free first, because it is what makes owners quit in week six. A self-generated lead has a real cost. It is just denominated in labor, fuel and calendar time instead of a card charge.
Do the arithmetic. Two canvassers at roughly $22 an hour fully loaded, eight hours, plus fuel and door hangers, is on the order of $350 for the day. Operators generally put canvass conversion at 1 to 3 percent of doors knocked turning into a booked inspection. Knock 150 doors between two people and that is 2 to 5 booked inspections, or roughly $70 to $175 each, before anybody agrees to buy anything.
Compare that to what you were paying. Our own breakdown of roofing lead costs works through LocaliQ's benchmark across 3,211 campaigns: roofing runs $228.15 per lead, the highest of 16 home service categories, and PipelineOn puts the non-branded Google Ads baseline at $124 for Q1 2026.
By the numbers
Roofing has the worst cost per lead in home services, and not because clicks are expensive. Roofing's cost per click is $10.70, lower than painting's $13.74. The gap is conversion: roofing converts at 3.70 percent against painting at 10.80 percent. You are not paying for traffic, you are paying for the 96 percent of it that does nothing.
So self-generated leads are not dramatically cheaper per unit, and if that is the pitch you sold yourself, you will quit. The real argument is stronger. Buying a lead rents a stranger's list for one transaction. Building one means the second harvest costs almost nothing and the fifth costs less, and you keep what the broker never hands over: the territory, the messaging and the data. That operator put it plainly after $11,000: "You don't control the areas. You don't control the quality. You don't control the messaging. And you're always reacting instead of driving your pipeline."
What you are actually paying a broker for is roof age
The anatomy of that $11,000 is the most detailed public accounting of bought roofing leads I could find.
Vendor A: $6,000 for 42 residential appointments and 5 commercial. Of the 42, 18 were no-shows. More than 20 were roofs only 1 to 3 years old. Two had already been completed through insurance. At least 5 had another roofer standing at the same appointment. Result: 2 signed roofs, about $28,500 in revenue, roughly $3,000 in gross profit against $6,000 spent. Vendor B: $5,400 for 50 leads, same shortfall, then the surcharge menu.
The economics are simple. An appointment on a 2-year-old roof is worth close to nothing no matter how warm the homeowner sounded. An appointment on a 22-year-old roof inside a hail footprint is worth a lot. The broker knows it, prices it, and sells you the cheap end by default.
A commenter asked the obvious question: "20 out of 42 being 1-3 years roofs is crazy. why don't they just check permit records first?"
They do not check because you already paid.
Watch out
The shared-lead loophole is now permanently open. In December 2023 the FCC adopted a one-to-one consent rule specifically aimed at lead generators, requiring consent to be given to one identified seller and to be topically related to the interaction that produced it. Days before it took effect on January 27, 2025, the Eleventh Circuit vacated it, holding the FCC had exceeded its statutory authority. In September 2025 the FCC issued a final rule formally eliminating the requirement. Practical translation: a single checkbox on a form the homeowner barely read can still legally authorize a stack of roofers to call, and you are one of the stack.
List 1: the permit list
This is the closest thing to the broker's proprietary data, and almost nobody in roofing marketing talks about it.
Most jurisdictions require a permit to reroof, and permit records are public. The issue date is, in the words of one insurance data vendor, the closest public ground-truth signal for when a roof was actually replaced. Carriers already underwrite roof age off permit data. Nothing stops you from prospecting off the same source.
How to work it:
- Find your municipality's permit portal. Most let you filter by permit type and date range. Aggregators such as Shovels index permits across thousands of municipalities if your local portal is unusable.
- Filter for reroof permits and pull everything issued in your target window.
- Age the list. Three-tab shingles typically run 15 to 20 years and architectural shingles 20 to 30, with common guidance to start evaluating for replacement around 20 to 25 years. A permit from 18 to 24 years ago is a live prospect. One from 3 years ago is a house you should never spend a knock on.
- Invert it. No reroof permit on a house built 25 years ago means an original roof or unpermitted work, and both are worth a conversation.
The record often names the company that did the work, telling you whether the incumbent is still in business and whether the workmanship warranty has expired.
Slow, unglamorous work, and the only list here no competitor in your market is likely building, because it does not feel like marketing.
Tip
Sequence permits against storms rather than treating them as separate lists. A 19-year-old roof is a maybe. A 19-year-old roof inside a documented 1.75 inch hail footprint from 14 months ago is a conversation with a reason to happen today. Intersecting two free datasets is what a paid storm-lead product is actually doing.
List 2: the storm list, built from government data
Paid storm tools are good, and if you compete on same-week response after a major event, buy one. What most roofers do not know is where the underlying data comes from.
NOAA's Storm Events Database, published by the National Centers for Environmental Information, is free and public. Search by date, county and event type, and each hail event carries the recorded stone size and damage notes, going back to 1950. Your local National Weather Service office publishes storm reports too.
The honest limitation: NOAA updates monthly and warns of up to a 120 day delay. That makes it useless for the 24 to 72 hour scramble and excellent for the window most roofers neglect, the storm that is 6 to 24 months old. That window is where the margin is, for two reasons.
Competition is the first. PipelineOn estimates searches for roof repair and roofing contractor near me spike 400 to 800 percent in the 48 hours after a major hail event, and cost per lead spikes 30 to 60 percent within 48 to 72 hours, pushing post-storm Google Ads leads into a $160 to $365 range. Everyone bids at once. Nobody bids on last spring's hail.
Knock fatigue is the second. One operator described the hurricane cycle exactly: in the first month every knock is a contract, and by the third month homeowners are so tired of being knocked that they refuse inspections and only want bids. A 14-month-old storm has no canvassers on it and damaged roofs still on it.
Building permit and storm lists by hand and losing them in a spreadsheet is how a list stops compounding. We build the intake and tracking layer that keeps every self-generated roofing lead attributed to the list it came from.
List 3: the list you already own
Every roof you have touched is a record, and most roofing companies cannot query their own history. Four segments live in there:
Completed jobs, aged forward. Your installs from 18 or more years ago are the warmest replacement list in existence. You know the address, the material, the install date and the homeowner's name.
Repairs you sold instead of replacements. Every patch on an aged roof is a deferred replacement with a date attached. A follow-up list, not a closed file.
Inspections that found no damage. The one operators throw away. A homeowner who let you on the roof and got an honest "you are fine" is a high-trust contact one storm away from being a job.
The neighbors of every job. Roofs in a subdivision went on the same year with the same material and took the same storms. A yard sign plus a knock on the eight surrounding houses is the densest permit list you will ever get, and you are already standing there.
One caution. This asset only exists if your job history is queryable. If install dates live in a filing cabinet, in a former estimator's memory, or across three systems that do not talk, the list is theoretically yours and practically not. That is a records problem before it is a marketing problem, and the same root cause behind not knowing where your leads come from.
List 4: the referral list, priced the way the market prices it
Every article says build referral partnerships. Almost none say what a referral is worth, which is why most roofing referral programs are a $50 gift card and a shrug.
Price it against adjacent trades. A contractor on r/RoofingSales pointed out that water mitigation companies pay at least $1,500 for a plumber referral, and argued roofing should sit in that neighborhood for restoration-sized work. If a referred job carries $4,000 to $8,000 of gross profit, a $100 thank-you is not an incentive.
Then test whether money is even the lever. Another operator said the quiet part: "Most of them don't even care about the referral money, they just want to feel like they are taken care of. If your company provides value and saves them time, then that is the golden ticket."
Pick partners by what they see:
| Partner | What they see | Realistic pull |
|---|---|---|
| Water mitigation and restoration | Active leaks, roofs already failing | Highest. Urgent and often insurance-funded |
| Insurance agents and adjusters | Claim volume, storm footprints | High, earned slowly on honesty |
| Property managers and HOA boards | Many identical roofs of identical age | High density, long cycle |
| General contractors and remodelers | Additions and roof tie-ins | Steady, low volume |
| Realtors | Inspection findings during a sale | Lowest. Frequently unpaid work |
That last row is practitioner consensus, not cynicism. Asked what actually works with realtors, one roofer answered flatly: "Realtors just use and abuse us for their inspection reports." Serve them if you want, but charge for the report.
The insurance channel is worth real patience, and the way in is counterintuitive. One roofer described doing free inspections and writing a damage report for the homeowner to hand their insurer, including on houses where he found no damage at all, documenting with photos that the roof was fine. His result: "I've had insurance guys recommend me to potential clients after that because they trust me to give an honest assessment."
That is a referral channel bought with a written no rather than a commission.
List 5: the inbound list, including the directory you already pay for
Inbound is table stakes and every competing article covers it, so here is only what they leave out.
Profile and reviews are the base layer. Nothing else here converts if a homeowner cannot verify you exist. That is a review and local search problem, and it is the prerequisite, not the strategy.
Local Services Ads are pay-per-lead, but the account is yours. One agency operator working with roofers put LSA at $30 to $70 per qualified lead with a 60 percent close rate. Treat that as a practitioner estimate, not a benchmark. The structural point is that LSA leads arrive through a profile you own and reviews you earned, so the asset survives the campaign. Details in Local Services Ads for contractors.
The manufacturer directory is the forgotten one. If you hold GAF Master Elite or Owens Corning Platinum Preferred, you are listed in a contractor locator homeowners searching for a certified installer actually use. Owens Corning's program is invitation-only and limited to a small share of contractors, which is what makes the listing scarce by design. Most certified roofers buy the certification for the warranty and never check whether their locator profile has photos, service areas and a working phone number.
Watch for brand cannibalization. One roofer flagged a broker tactic: buying cheap ads against your own company name, then selling you back leads you would have received anyway. Search your brand name and see who is bidding.
Most roofers cannot tell which of these five lists produced last month's signed jobs, so they cut the wrong one first. Bring your numbers and we will map every job back to permit, storm, repeat, referral or inbound.
What this does not replace
Three honest limits, because a plan you abandon is worse than a channel you overpay for.
Immediate cash flow. Permit and repeat lists take weeks to assemble and months to convert. If payroll is due Friday, keep buying while you build, and read how many roofing leads you actually need per month to size the volume you are replacing.
Same-week storm response. Free NOAA data is too slow for the 72-hour window. If storm response is your model, that subscription is a real cost of doing business.
Your legal exposure moves to you. The broker playbook is straightforward: pull storm data, build homeowner lists, run a dialer. That operator also noted these outfits may or may not scrub the Do Not Call registry. Run it yourself and the TCPA liability is yours, with willful or knowing violations reaching up to $1,500 per call. Self-built lists are far safer worked by knocking and direct mail than by a dialer.
Speed still decides everything, and a slow phone process pours owned leads into the same leaking bucket that wasted your bought ones. See how fast you should respond to a lead.
The 90-day build, and what to measure
Days 1 to 15. Export your job history and age it. Flag every install over 15 years and every no-damage inspection you ever ran.
Days 16 to 30. Learn your permit portal. Pull one ZIP code, filter reroof permits, build the 18 to 24 year list. Do one ZIP well before scaling.
Days 31 to 45. Pull NOAA Storm Events for your counties over the last 24 months, mark every hail event of one inch or larger, and intersect it with the permit list. That intersection is your knock route.
Days 46 to 60. Price and pitch three referral partners, weighted toward water mitigation and restoration. Start the honest-inspection habit with insurance contacts.
Days 61 to 75. Audit the inbound base layer: profile complete, review requests sent same-day at job completion, manufacturer locator filled out.
Days 76 to 90. Assign every signed job to one of the five lists and cut nothing yet. Ninety days is enough to see the fast lists working and not enough to judge the slow ones.
Track four numbers throughout, not one. Cost per booked inspection by list, since homeowner home and roof old is the only unit that matters. Median roof age of the appointments you run, because under 10 your targeting is broken regardless of source, and that is the number the $11,000 story turns on. Share of jobs from repeat and referral, your compounding rate. And days from first contact to signed contract by list, because permit leads are slow and referral leads are fast, and without that split you will kill the slow list right before it pays.
The point is durability. Bought leads are rent, and the day you stop paying you own nothing you did not own a year earlier. Angi's own history makes the argument better than any contractor could: as covered in whether Angi leads are worth it for roofing, Angi bought a roofing company in 2021, lost $21.4 million of EBITDA on it in a single year, and sold it. The company selling roofing leads could not make roofing work with unlimited access to its own leads.
Build lists. Keep them.
Sources
- r/RoofingSales, "Thinking of Using a Roofing Lead Gen Company?" for the $11,000 accounting, the roof-age surcharge menu, the broker playbook and brand cannibalization.
- r/RoofingSales, "Starting a Roofing Company" for canvassing return on investment and the LSA estimate.
- r/RoofingSales, "best lead generation besides door knocking" for knock fatigue and the honest damage report play.
- r/RoofingSales, "Referrals from Realtors or Insurance Agents" for the $1,500 water mitigation benchmark and the realtor problem.
- NOAA NCEI Storm Events Database and its FAQ for free county hail data, 1950 coverage and the 120 day delay.
- Morrison Foerster and Consumer Finance Insights for the vacated and then eliminated one-to-one consent rule.
- Permit Stack for permit-derived roof age, and Shovels for nationwide permit indexing.
- PipelineOn for post-storm search volume and cost per lead escalation estimates.
- Our own roofing lead cost breakdown for the LocaliQ figures across 3,211 campaigns.
