All articles

Lead Generation

Best Lead Sources for Roofing: 4 Triggers

Roofing demand is triggered, not created: storm, leak, underwriting letter, home sale. Rank sources by trigger and the usual top-10 list inverts.

Om Patel 16 min read
Photo: Valery Rabchenyuk / Unsplash

The short answer

The best roofing lead sources are the ones attached to a demand trigger: storms (canvassing, storm pages, mitigation partners), failures (Google Business Profile and Local Services Ads), insurance underwriting letters (agent referrals, roof-age mining) and home sales (realtors, inspectors, recently-sold lists). Run one source per trigger and judge each on cost per closed deal, not cost per lead.

Every ranked list of roofing lead sources you have read puts the channels in order and hands you the list. That is the wrong first move, because roofing demand is not created by marketing. It is triggered, and then marketing only decides who gets the call.

A homeowner does not wake up wanting a roof. Something happens: hail hits, a ceiling stains, a letter arrives from the carrier, or a house goes under contract. Four triggers, four different buying situations, four different channels that reach them. Rank sources without naming the trigger and you end up comparing a canvasser to a Google Business Profile as though they were competing for the same customer. They are not.

The short answer

Attach every source to a trigger: canvassing and storm pages for hail, Local Services Ads and Google Business Profile for failures, insurance agent relationships for underwriting non-renewals, and realtor and inspector partnerships for transactions. Run at least one per trigger, keep referrals compounding underneath all four, and judge each on cost per closed deal rather than cost per lead. The four-trigger spread is what stops a quiet hail year from becoming a payroll problem.

Why ranking channels first fails in roofing

Ask roofers where their best leads come from and the answers look contradictory until you ask what kind of work they sell.

On r/RoofingSales, a commenter answered the "best lead source" question with a question of their own: "Depends on your setup. Retail heavy? Google + SEO. Insurance focused? Storm follow-up + outbound." In the r/Roofing thread asking what actually brings the best leads, the operator with the most structured answer listed their quality tier as personal network, previous customers and their referrals, door knocking, Google SEO and Local Services, then referral partners. Their weak list included Meta, with the parenthetical that explains everything: "we're primarily an insurance business."

Meta is not a bad roofing channel. It is a bad channel for insurance-triggered work, because you cannot target "people whose roof was hit by Tuesday's hail" from an interest graph, and you can target them from a hail swath map. The same channel moves position depending on which trigger you are fishing.

Watch out

If your marketing plan lists channels but never names the trigger each one serves, you almost certainly have four sources fishing the same trigger. That is a single point of failure with a diversified invoice.

Trigger 1: the storm

Best sources: post-storm canvassing, storm event pages, mitigation partners, geo-targeted paid social.

This is the trigger the whole industry is built around, and the volume is real. NOAA's National Weather Service Storm Prediction Center logged 5,432 hail events of one inch or larger in 2025, up from 5,373 in 2024, according to Triple-I's compilation of the annual severe weather report summary.

The catch is concentration. Of those 5,432 events, Texas had 902, Kansas 375, Oklahoma 369, Nebraska 315, Missouri 253 and Colorado 244. Ten states account for the bulk of it. If you are not in that band, the storm trigger is an occasional windfall, not a business model.

The channels that work here are the ones you can deploy inside 72 hours:

  • Canvassing the affected grid. Check the municipal solicitation permit and HOA rules first, because many cities now require a badge and a permit.
  • A storm event page published within days, targeting the date and city of the actual event. Low competition, high intent, and it keeps ranking after the trucks leave.
  • Mitigation partners. Water mitigation companies get called first when water comes through a ceiling, and the roof repair is a natural handoff. One caution from a r/RoofingSales referral thread: a commenter noted mitigation firms were paying "at least 1,500 for a referral from a plumber," so if you want that relationship, dinner is not the going rate.
  • Geo-targeted paid social ramped hard on the affected postal codes, which is the one situation where Meta beats search for roofing.

Trigger 2: the failure

Best sources: Google Business Profile, Local Services Ads, non-branded search, and whoever answers the phone.

A leak is an emergency, and emergencies get searched. This is the only trigger where channel choice is nearly settled: the homeowner opens Google, taps the map pack or the Local Services listing, and calls two or three companies in a row.

Which is why the sharpest comments across both roofing subreddits are not about channels at all. From the r/Roofing thread: "the channel is almost irrelevant if your response speed is broken. Roofing leads are high intent and time sensitive. Someone with a damaged roof is calling 3 companies. The one who picks up first or responds first gets the job."

An owner in a separate r/RoofingSales thread was blunter about the window: it is not three or four hours later that they have found someone else, "it is 10 [expletive] minutes later. If we pick up the phone or call a form submission instantly and set an appointment for the following week, they stop calling other roofers."

That last clause is the part almost nobody prices correctly. Speed does not just win you the lead. It removes you from the bidding war, because a homeowner with an appointment on the calendar stops shopping. You are no longer one of four quotes competing on price.

Buying more failure-trigger leads while calls go to voicemail is the most expensive mistake in the trade. We covered the arithmetic in how much roofing leads actually cost, and the short version is that roofing's cost per lead problem is usually a conversion problem wearing a disguise.

Trigger 3: the underwriting letter

Best sources: insurance agent relationships, renewal-season inspection offers, roof age data on your existing customer list.

This is the trigger almost nobody in the roofing marketing literature writes about, and it is growing fast.

Carriers have stopped sending inspectors and started using aerial imagery. What comes out the other end is a letter, and the letter has a legally defined shape. Massachusetts, which has published unusually clear guidance, requires that an insurer non-renewing a policy provide written notice 45 days before the policy expiration date, including the specific reasons. The state's Division of Insurance says plainly that if your roof "is at a certain age, has a significant amount of moss and/or cracked shingles, or has too many trees hanging over it," the carrier "can decide that they do not want to insure your home."

Then comes the line that should reshape how you sell into this trigger. From the same Massachusetts guidance, answering what a homeowner should do if they cannot replace the roof before the policy expires:

"You should discuss with your insurance company. If you can prove that you have a signed contract for the work to begin, they may be willing to renew the policy."

That is a state regulator documenting that a signed roofing contract is itself the remedy. Not a completed roof. A signed contract, inside a 45-day window, with a homeowner whose fallback is the FAIR Plan at insurer-of-last-resort pricing. There is no other trigger in roofing where the deadline is written into state guidance and the customer already knows they have no choice.

There is also a defensible angle for homeowners flagged unfairly, and it makes you useful rather than opportunistic. Massachusetts Bulletin 2025-02, issued April 30, 2025, tells insurers that cosmetic conditions which do not reflect structural quality, such as roof discoloration or streaking, should not be the sole basis for non-renewal, cancellation or declination, and that where imagery does not clearly show damage, insurers are expected to do additional review. Homeowners can also send documentation back. A roofer who can write that letter is worth more to an agent than one who just wants referrals.

How to work this trigger honestly:

  • Build agent relationships, not adjuster relationships. The agent is the one who loses a client when the carrier walks. Give them a same-week inspection and a documented report they can send to underwriting.
  • Sell the renewal timeline, not fear. Lead with the deadline and the signed-contract remedy.
  • Mine your own database by roof age. You already know install dates for every roof you have put on. Anything approaching 15 years is an underwriting conversation waiting to happen.

Watch out

There is a wrong way to work this trigger, and regulators have already named it. The Massachusetts Division of Insurance issued a consumer advisory about mailers sent to Rhode Island residents by an entity called Home Coverage Risk Alert, which included the property address, claimed the home had been "flagged" over roof age or condition, suggested the carrier may raise the premium or non-renew, offered roof inspection reports, and referred homeowners to "certified contractors to 'restore eligibility'." The mailers were not from any insurance company. If your underwriting-trigger marketing looks like that letter, you are one complaint away from being the example in the next bulletin.

Most roofers do not have a lead problem, they have a trigger-coverage problem: three channels all pointed at hail and nothing catching the underwriting letters landing in their own customer list. We map which triggers your market actually produces, then build the follow-up that converts them. If your channels are fine and the real gap is response time, we will say that instead of selling you a retainer.

Get a lead plan

Trigger 4: the transaction

Best sources: long-tenured realtors, home inspectors, roof certifications, recently-sold address lists.

A house going under contract produces roof work on a hard deadline. Home inspections surface roof problems that have to be resolved before closing, and insurers commonly decline to bind a new policy on a questionable roof without a certification, which means no certification, no policy, no closing.

That is real, funded, deadline-driven demand. It also has the worst reputation of any channel in roofing, for one specific reason. The top-voted reply in the r/RoofingSales thread asking what works for realtor and insurance agent referrals was seven words: "Realtors just use and abuse us for their inspection reports." The reply underneath was one line: "You give free inspection reports to realtors?!!"

They are both right. The transaction trigger burns roofers who treat it as a referral relationship instead of a service they charge for. The fix is structural:

  • Charge for the inspection and credit it against the job. This single rule separates agents who send work from agents who send homework.
  • Pick one agent, not the board. As one operator put it, not all agents are a good referral source and many "waste your time and resources," but find "that one agent who has been in your town/county/city for 20 years and everyone goes to with ALL of their home problems."
  • Add home builders. The same commenter flagged builders referring homeowners whose houses are now out of warranty, which is a clean handoff nobody competes for.
  • Work recently-sold lists. New owners are the one group with a documented reason to think about the roof and no incumbent contractor.

The number that actually ranks your sources

Cost per lead is the metric agencies publish. Cost per closed deal is the metric that decides whether you make money, and the two invert constantly.

The most useful public dataset on this comes from an operator who posted 90 days of tracked marketing spend across six roofing companies to r/RoofingSales. Their reported cost per closed deal:

ChannelMonthly spendDeals closedCost per closed deal
Storm chasing + cold calling$5,50011$500
Cold calling team (3 callers)$4,3006$716
Door knocking (3 knockers)$8,4009$933
Facebook ads$5,2005$1,040
Google Ads (LSA + PPC)$6,1005$1,220
Shared lead vendor$4,8001$4,800

Read that bottom row twice. The shared vendor's leads were the cheapest per lead, at roughly $150 each, and produced the single most expensive deal in the sample. As the poster put it, you save money on the front end and hemorrhage it on the back end, because when three to five roofers call the same homeowner your close rate collapses. Their rule of thumb: under $800 per closed deal is good, over $1,500 means something is broken.

By the numbers

Two independent operators in that thread landed on nearly the same Google number. The tracked dataset put Google Ads at $1,220 per closed deal. A roofing owner replying said they spend "about $1250 per sold deal on google leads" against roughly $8,000 average profit per job, and framed the objection this way: if someone offered to take $1,250 and hand back $8,000 two months later, how much would you give them?

One honest caveat, raised in the thread itself: this compares six different companies running different channels, not one company running all six, so sales team and market quality are not held constant. The poster conceded the point. Treat the ranking as a directional signal and your own tracked numbers as the authority.

The real failure mode is not knowing the number at all. As the same operator described the diagnostic: ask an owner to pull up their last 30 leads and watch some sit in a CRM, some in a spreadsheet, some in unread Facebook messages, and some in a forgotten voicemail. That is not a lead problem, that is a systems problem, and more leads just means more leads falling through more cracks.

What buying leads actually looks like

If shared leads sit last in the table, purchased "set appointments" deserve their own warning, because the pitch is much better than the product.

A roofing company documented spending over $11,000 across two lead generation firms at $80 to $120 per set appointment, under rules where they could not call the homeowner ahead of time and simply showed up. From the first vendor's 42 residential leads: 18 were no-shows, over 20 were roofs only one to three years old, and at least five had notes that other roofers were already at the appointment. They signed two roofs, about $28,500 in revenue and roughly $3,000 gross profit against $6,000 of spend.

The second, better-known vendor produced the same story, then started upselling: older roofs cost extra, at $10 more per lead for five-plus years and $20 more for ten-plus, none of it disclosed before payment.

The most useful part of that post is the teardown of the method, because there is no secret in it: pull storm data, pick neighborhoods, build homeowner lists, run a dialer, and book "free inspections." It works. It is also something you can run yourself, in the territory you actually want. We ran similar math for one marketplace in are Angi leads worth it for roofing.

The four-trigger build

A 90-day version that covers all four without a big budget:

  1. Week 1: audit which triggers your market produces. Pull your last 50 jobs and tag each one storm, failure, underwriting or transaction. Most roofers find two triggers make up 90% of revenue and the other two are unworked.
  2. Weeks 1 to 2: fix the failure trigger first. Complete the Google Business Profile, enable messaging, and put a real answering process behind the phone. Free, and it is the trigger with the highest intent.
  3. Weeks 2 to 4: sort your customer list by roof age. Everything past 15 years goes into an underwriting-trigger campaign timed to renewal season.
  4. Weeks 3 to 6: build two relationships, not twenty. One insurance agent, one long-tenured realtor or one water mitigation company. Bring a paid-inspection offer, not a request for referrals.
  5. Weeks 4 to 8: publish for the storm trigger before the storm. City and event pages for the last two real events in your area. They rank while nothing is happening and convert when something does.
  6. Ongoing: track cost per closed deal by trigger. A source with cheap leads and a poor sit rate is not cheap, it is hiding the cost in rep time and windshield time.

If you want the version that spends nothing at all, roofing lead generation without buying leads builds the same coverage from permit data and public records. Once you know your close rate by trigger, how many roofing leads you need per month turns it into a target.

The verdict

The best lead source for a roofing company is whichever one is attached to a trigger you are not currently covering. For most roofers reading this, that is the underwriting letter: carriers imaging roofs at scale, non-renewal notices landing with a 45-day clock, and a documented remedy that is literally a signed roofing contract. It costs nothing but relationships, it runs counter-cyclically to storms, and almost nobody is working it.

Storm work will always be the biggest number in a hail year. The point of the other three triggers is that you do not get to pick which years those are.

Sources

  • Triple-I, Facts + Statistics: Hail, compiling NOAA National Weather Service Storm Prediction Center annual severe weather report summaries (5,432 hail events in 2025, 5,373 in 2024, and state-level counts)
  • Massachusetts Division of Insurance, "The Truth about Your Roof: Understanding How Insurance Companies Use Aerial Imaging to Assess Roof Condition" (45-day non-renewal notice, signed contract remedy, documentation rights, FAIR Plan)
  • Massachusetts Division of Insurance, "Consumer Advisory: Roof-Related Insurance Notices" (Home Coverage Risk Alert mailers)
  • Massachusetts Division of Insurance, Bulletin 2025-02, Underwriting Actions Based on the Use of Aerial Imaging, issued April 30, 2025 (cosmetic conditions, additional underwriting review)
  • r/RoofingSales, "i tracked every dollar spent on marketing for 6 roofing companies over 90 days" and its comment thread (cost per closed deal table, the $1,250 and $8,000 figures, the methodology caveat)
  • r/RoofingSales, "Thinking of Using a Roofing Lead Gen Company? Read This Before You Spend a Dollar." (the $11,000 account)
  • r/RoofingSales, "Best lead source?" and "What's Actually Working for You When It Comes to Getting Referrals from Realtors or Insurance Agents?"
  • r/Roofing, "Roofers: what actually brings you the best leads?"

Frequently asked questions

What is the best lead source for roofing companies?
There is no single best source, because roofing demand comes from four different triggers and each one has a different best channel. Referrals win on close rate across all four, but you cannot switch them on. The practical answer is one reliable source per trigger, so a quiet storm season does not empty your board.
Are storm leads or retail leads better for roofers?
Storm leads come faster and bigger, retail leads come steadier. NOAA logged 5,432 hail events of one inch or larger in 2025, but Texas alone accounted for 902 of them, so storm volume is real and wildly concentrated by geography. Most durable roofing companies run both and use retail to cover payroll between events.
What is a good cost per closed roofing deal?
One operator who tracked 90 days of spend across six roofing companies reported a range from $500 per closed deal (storm plus cold calling) to $4,800 (shared lead vendor), and called anything under $800 good and anything over $1,500 broken. Separately, a roofing owner in the same thread reported about $1,250 per sold deal on Google leads against roughly $8,000 average profit per job.
Do insurance agents refer roofing work?
Yes, and it is the most underused source in the trade. Carriers are non-renewing policies over roof age and condition using aerial imagery, and agents are left holding a client who needs a roof to stay insured. Massachusetts requires 45 days written notice with specific reasons before non-renewal, which gives you a defined window to work in.
Are realtor referrals worth chasing for roofers?
Only with a rule about free reports. The top-voted answer on the r/RoofingSales thread about realtor referrals was that realtors use and abuse roofers for their inspection reports. The channel works when you charge for the inspection or credit it against the job, and when you pick the one long-tenured agent everyone in town calls rather than working the whole board.
Are roofing lead generation companies worth it?
Read the receipts before you wire money. One roofing company documented spending over $11,000 across two lead gen firms at $80 to $120 per set appointment. Of 42 residential leads from the first vendor, 18 were no-shows and over 20 were roofs only one to three years old. They signed two roofs for roughly $3,000 gross profit on $6,000 of spend.
How fast do I need to respond to a roofing lead?
Minutes, not hours. One roofing owner put it bluntly: it is not three or four hours later that the homeowner finds someone else, it is ten minutes later. The same operator noted that once you call instantly and set the appointment, homeowners stop calling other roofers, so speed does not just win the lead, it removes you from the bidding war.
How many lead sources should a roofing company run?
One per demand trigger, so four, plus referrals underneath all of them. That is fewer channels than most agency lists recommend but spread across more kinds of demand. Running four sources that all depend on hail is one source wearing four costumes.
Done-for-you lead generation: a dedicated conversion page, a qualifying form that arrives with the answers attached, and lead-to-sale tracking, fed by targeted outreach and Meta ad campaigns we build and run.
Get a lead plan

Free tools

Find out what your site is costing you.

Enter your address and we check the real page. Scores are free and the itemised report lands in your inbox. No account, and we change nothing on your site.