You spent $5,200 on Google Ads last month. Got 47 clicks. Three phone calls. Zero signed contracts.
Your competitor down the street closed four $18,000 jobs in the same 30 days. Same market. Same services. Different lead sources.
Here's what nobody tells you: Most roofing contractors lose money on leads because they're buying the wrong kind for their business stage. A startup with zero brand recognition needs different lead sources than an established contractor with 500 past customers. The math changes completely.
This guide breaks down every major lead source—storm chasing, door-knocking, Google Ads, SEO, referrals, Facebook ads, and lead aggregators—with real costs, actual close rates, and interactive calculators so you can run your numbers before spending a dollar.
Storm Chasing: The $45-Per-Lead Gold Rush (If You Move Fast) ⚡
Storm chasing works when you can deploy within 72 hours of a hail event. Miss that window and your $45 fresh lead becomes a $340 aged lead that's already talked to six other contractors.
The economics are simple: Fresh storm leads (24-72 hours after the event) cost $45-$85 per lead from services like HailTrace or StormScout. Your close rate on these should be 35-45% because the damage is obvious, insurance is paying, and homeowners need it done now. That's $100-$240 cost per signed contract.
But here's the catch: You need the infrastructure to actually move fast. That means reps available immediately, trucks staged, materials pre-ordered, and inspection capacity to handle 50+ appointments in the first week. Most contractors can't scale that fast, so they end up buying aged storm leads ($200-$400 each) with 8-12% close rates. Now you're at $1,667-$3,333 per signed deal—and you're competing with ten other contractors on every lead.
When Storm Chasing Works:
You can deploy a team within 72 hours of an event. You have multiple crews available to handle surges. You're comfortable with feast-or-famine revenue (dead for months, then slammed). Your reps are trained on insurance supplements and dealing with adjusters.
When It Doesn't:
You're a solo operator who can't scale quickly. You don't have working capital to float 60-90 day insurance payment cycles. You hate travel (most storm work requires going where the hail is). You need predictable monthly revenue.
Real costs:
- Fresh storm leads (24-72 hours): $45-$85 per lead
- Close rate: 35-45%
- Cost per signed contract: $100-$240
- Aged storm leads (week+): $200-$400 per lead
- Close rate: 8-12%
- Cost per signed contract: $1,667-$3,333
Door-to-Door: $42 Per Lead When You Do the Math Right 🚪
Door-knocking is the lowest cost-per-lead channel in roofing—but only if your territory density justifies it. A rep knocking 100 doors in a suburban neighborhood with 2,000 homes works. A rep driving 30 minutes between rural properties doesn't.
The math: Your rep earns $20/hour base plus commission. In 8 hours, they knock 120 doors (average 4 minutes per door including walk time). Contact rate: 30% (36 homeowners actually answer). Interest rate: 10% (3.6 appointments booked). Your rep's cost: $160 for the day. Cost per appointment: $44. If you close 25% of door-knock appointments, your cost per signed deal is $176.
But that only works in dense territories. If your rep is driving between appointments or knocking in spread-out rural areas, they might only hit 40 doors in 8 hours. Same $160 cost, now you're getting 1.2 appointments per day at $133 per appointment. Close rate stays the same, but cost per deal jumps to $532.
Territory density matters more than anything else. Urban and suburban neighborhoods with 1,500+ homes within a 2-mile radius work. Rural territories with houses spread out don't.
When Door-to-Door Works:
Dense suburban neighborhoods (1,500+ homes in 2-mile radius). Storm-affected areas where visible damage exists. You have reps who don't mind rejection (most quit after 2 weeks). You can provide tablets, CRM, and instant appointment booking tools.
When It Doesn't:
Rural territories with spread-out properties. High-end neighborhoods with gates and "No Soliciting" enforcement. You can't afford rep turnover (most door-knock reps quit within 90 days). You don't have good training systems.
Real costs:
- Rep cost: $160/day ($20/hour for 8 hours)
- Doors knocked (dense): 120/day
- Contact rate: 30%
- Interest rate: 10%
- Appointments per day: 3.6
- Cost per appointment: $44
- Close rate: 25%
- Cost per signed contract: $176
Google Ads: The $280-$420 Reality (Not the $75 Your Agency Claims) 💰
Every roofing contractor hears "$75 per lead" from their Google Ads agency. That's technically true—if you only count the clicks that became phone calls. But your cost per signed contract is 4-6x higher because of the conversion funnel.
Here's what actually happens: You spend $5,000 on Google Ads. You get 50 leads (calls, form fills, chat messages). Your cost per lead is $100. Sounds reasonable. But only 30 of those 50 leads answer when you call back (60% contact rate). Of those 30, only 18 agree to an appointment (60% appointment rate). Of those 18, only 3 sign contracts (17% close rate from appointment).
Your real cost per signed contract: $1,667. Not $100.
The agencies aren't lying—they're just counting differently. They report cost per lead ($100). You should care about cost per signed contract ($1,667). That's 16.7x higher.
The conversion funnel kills you:
- 50 leads → 30 contacts (60% answer phone)
- 30 contacts → 18 appointments (60% show rate)
- 18 appointments → 3 signed (17% close rate)
Every stage leaks prospects. If your contact rate drops to 40% (common if you're slow to respond), your cost per contract jumps to $2,500. If your close rate is 12% instead of 17%, you're at $2,778 per signed deal.
When Google Ads Works:
You have strong brand recognition in your market. You answer leads within 5 minutes (huge impact on contact rates). Your close rate from appointments is 25%+ (better than average). You can afford $1,500-$2,500 cost per contract while maintaining margins.
When It Doesn't:
You're competing in a market with 15+ contractors bidding on "roof repair [city]". You don't have systems to respond to leads instantly. Your close rate is under 15%. You need leads cheaper than $1,000 per signed contract.
Real costs:
- Average Google Ads spend: $5,000/month
- Leads generated: 50
- Cost per lead: $100
- Contact rate: 60%
- Appointment rate: 60%
- Close rate: 17%
- Real cost per signed contract: $1,667
Referral Programs: The $0-$500 Per Lead Gap 🤝
Most contractors say "we get referrals" but only 12% have an actual system that generates them predictably. The difference between passive referrals (hoping past customers remember you) and active referral systems (incentivizing and tracking referrals) is $500 per lead.
Passive referrals: You did 80 jobs last year. Three customers referred friends without prompting (3.75% referral rate). Your cost per referral: $0 (no system, just luck). But you only got 3 referrals.
Active referral system: You did 80 jobs last year. You asked every customer for referrals at completion, sent follow-up emails 30 and 90 days later, offered $250 referral bonuses, and tracked everything in your CRM. You got 20 referrals (25% referral rate). Your program cost $500/month (CRM + bonus payouts + time). Cost per referral: $300.
Which is better? You got 17 more leads with the active system. Even at $300 per lead, that's cheaper than Google Ads ($1,667 per signed contract) or aged storm leads ($1,667-$3,333).
The math: If you close 40% of referral leads (higher than cold leads because of trust), your cost per signed contract from an active referral system is $750. That's half the cost of Google Ads and 1/4 the cost of aged storm leads.
When Referral Systems Work:
You've completed 50+ jobs (enough base to generate referrals). You have a CRM to track and automate follow-ups. You're willing to pay referral bonuses ($200-$500). Your work quality is high (unhappy customers don't refer).
When They Don't:
You're a brand-new contractor with zero past customers. Your customer satisfaction is inconsistent (bad referrals damage you). You won't invest in a CRM or automation tools. You forget to ask for referrals (the #1 reason they don't happen).
Real costs:
- Passive referrals: $0 per lead, but only 3-5% referral rate
- Active system cost: $500/month (CRM + bonuses + time)
- Referral rate: 20-25%
- Close rate: 40%
- Cost per signed contract: $750
SEO: The 18-Month Investment That Pays Forever 📈
SEO is the only lead source that gets cheaper over time instead of more expensive. But you need 12-18 months and $15,000-$30,000 invested before it starts producing leads at scale.
The timeline: Months 1-6, you're building (content, technical SEO, local citations, backlinks). Cost: $2,000-$3,000/month. Leads generated: 0-5/month. Months 7-12, you start ranking for local terms. Cost: $1,500-$2,500/month. Leads generated: 10-20/month. Months 13-18, you rank for competitive terms. Cost: $1,500-$2,500/month. Leads generated: 30-50/month.
By month 18, you've spent $30,000 total and you're generating 40 leads per month. Your cost per lead: $750. But here's where it gets interesting—those leads keep coming. Month 19: 40 more leads. Month 20: 40 more leads. Your total investment stays at $30,000 but your lead volume keeps growing.
Year 2: You're generating 480 leads (40/month × 12 months). You spend $24,000 maintaining SEO ($2,000/month). Your cost per lead drops to $50. By year 3, you're at $33 per lead. By year 4, you're at $25 per lead.
SEO is expensive upfront and cheap long-term. Google Ads is cheap upfront and expensive forever.
When SEO Works:
You can afford 12-18 months of investment before seeing ROI. You're committed to long-term growth (not looking for quick wins). You have decent margins (30%+ on jobs) to fund the build period. You're in a market where local SEO competition isn't saturated.
When It Doesn't:
You need leads starting next month (SEO takes 12-18 months). You can't afford $2,000-$3,000/month for a year. You're in a hyper-competitive market (Dallas, Phoenix, Miami) where everyone's invested heavily in SEO. You need immediate cash flow.
Real costs:
- Months 1-6: $2,500/month investment, 0-5 leads/month
- Months 7-12: $2,000/month investment, 10-20 leads/month
- Months 13-18: $2,000/month investment, 30-50 leads/month
- Year 1 total: $30,000 spent, 150 leads generated = $200/lead
- Year 2: $24,000 spent, 480 leads generated = $50/lead
- Year 3+: $24,000 spent, 600+ leads generated = $33/lead
Lead Response Speed: The Hidden $8,400 Leak 📞
You're losing $8,400 per month because you don't call leads back fast enough. This isn't a guess—it's math.
The data: Leads contacted within 5 minutes have a 391% higher contact rate than leads contacted after 30 minutes. Leads contacted within an hour are 7x more likely to convert than leads contacted after two hours.
Your reality: You get 50 leads per month from Google Ads. You respond within 5 minutes to 10 of them (20%). You respond within 1 hour to 20 of them (40%). The remaining 20 get a callback 2+ hours later.
- 10 leads @ 5-minute response: 80% contact rate = 8 contacts
- 20 leads @ 1-hour response: 60% contact rate = 12 contacts
- 20 leads @ 2+ hour response: 20% contact rate = 4 contacts
- Total: 24 contacts from 50 leads (48% contact rate)
If you responded to ALL 50 leads within 5 minutes:
- 50 leads @ 5-minute response: 80% contact rate = 40 contacts
You're losing 16 contacts per month because of slow response time. If 60% of contacts book appointments (9.6 appointments) and you close 17% of appointments (1.6 signed deals), you're losing 1.6 contracts per month worth $28,000 in revenue. At 30% margins, that's $8,400 in lost profit monthly—$100,800 annually.
How to Fix Response Speed:
Implement instant lead routing to available reps (not a shared inbox). Use call tracking with automatic CRM logging (so reps know which lead they're calling). Set up SMS auto-replies within 60 seconds ("Got your request, calling you in 2 minutes"). Hire a dedicated inside sales rep if lead volume exceeds 40/month. Use tools like GhostRep's AI lead response system to automate first contact.
Real impact:
- 50 monthly leads
- Current contact rate: 48%
- With 5-minute response: 80% contact rate
- Lost contacts per month: 16
- Lost appointments: 9.6
- Lost contracts: 1.6/month
- Lost profit: $8,400/month
Budget Allocation: Where to Spend Based on Company Stage 💵
Most contractors allocate marketing budget randomly. "Let's try $3,000 on Google Ads and $1,000 on Facebook this month." That's how you burn cash without results.
Your optimal budget split depends entirely on your company stage. A startup throwing money at Google Ads competes with established brands who have better Quality Scores, lower cost-per-click, and trusted names. You'll burn through $5,000 before getting a single signed contract.
Meanwhile, an established contractor with 300 past customers spending 60% on door-knocking is wasting money. They should be leveraging their customer base for referrals at $300 per lead instead of paying reps $176 per lead to knock doors.
Stage 1: Startup (0-50 completed jobs)
Recommended Budget: $3,000-$5,000/month
Allocation:
- 60% Door-to-Door ($1,800-$3,000)
- 20% Facebook Ads ($600-$1,000)
- 20% Local SEO ($600-$1,000)
Why this works: You need volume immediately and can't afford $1,667 per contract from Google Ads. Door-knocking delivers leads at $176 per signed contract—10x cheaper. Yes, it requires hiring and training reps (and dealing with 60-80% turnover), but the math works when you have zero brand recognition.
Facebook ads at this stage aren't for direct leads—they're for brand awareness. Spend $600-$1,000/month running videos of your crew working, before/after photos, and customer testimonials. When someone Googles "roofers near me" later, they'll recognize your name from Facebook. That recognition improves Google Ads performance when you scale up in Stage 2.
Local SEO ($600-$1,000/month) plants seeds. You won't see leads for 12 months, but by the time you hit Stage 2, you'll have Google Business Profile optimized, 20-30 citations built, and foundation content published. Starting SEO in Stage 2 means you don't see results until Stage 3.
What to avoid: Google Ads at this stage. You're bidding $15-$40 per click against contractors who've optimized their campaigns for years. Your Quality Score is low (you have no website history), so you pay more per click. Your close rate is lower (you're unknown), so your cost per contract balloons to $2,500-$3,500. That's 15x more expensive than door-knocking.
Stage 2: Growing (50-200 completed jobs)
Recommended Budget: $5,000-$8,000/month
Allocation:
- 40% Google Ads ($2,000-$3,200)
- 30% SEO ($1,500-$2,400)
- 20% Referral System ($1,000-$1,600)
- 10% Door-to-Door ($500-$800)
Why this works: You've completed 50-200 jobs, which means you have enough brand recognition for Google Ads to work efficiently. Your Quality Score improves (you have reviews, website traffic, and ad history), lowering your cost-per-click from $40 to $20-$25. Your close rate improves (homeowners recognize your company name), dropping cost per contract from $2,500 to $1,500-$1,800.
SEO gets 30% because you're 12-18 months from seeing volume. But the leads you generate in Year 2 will cost $50 each instead of $1,667 from Google Ads. That's a 33x improvement. The contractors who skip SEO in Stage 2 are still paying $1,500-$2,000 per lead in Stage 3 while their competitors pay $33.
Referral systems (20%) make sense now because you have 50-200 past customers. An active system (CRM automation, referral bonuses, 30/90-day follow-ups) generates 20-25% referral rates. That's 10-40 referrals from your existing base, closing at 40-50% for incredibly cheap lead costs ($300-$750 per signed contract).
Keep door-knocking at 10% for surge capacity. When you need 10 extra deals this month to hit targets, deploy door-knock teams. But it's no longer your primary channel—you've graduated.
What to avoid: Spending 80% on door-knocking when you have past customers who could refer you. Or ignoring SEO because "it takes too long"—that delay costs you $1,500 per lead in Stage 3.
Stage 3: Established (200+ completed jobs)
Recommended Budget: $8,000-$15,000/month
Allocation:
- 40% SEO ($3,200-$6,000)
- 30% Google Ads ($2,400-$4,500)
- 20% Referral Program ($1,600-$3,000)
- 10% Retargeting/Facebook ($800-$1,500)
Why this works: You've invested in SEO since Stage 2, so now you're generating 40-50 leads per month at $33-$50 each. That's your lowest cost channel. Invest 40% to maintain rankings, create content, and expand into adjacent keywords. Established contractors who skip SEO maintenance watch rankings slip and leads dry up within 6-9 months.
Google Ads (30%) provides predictable volume. You need it for immediate results when SEO has a slow month or when you want to scale from 40 to 60 leads quickly. But you're not relying on it as your primary source—it's volume insurance.
Referrals (20%) should generate 30-40% of new business at this stage. With 200+ past customers, an active system produces 40-80 referrals annually. These close at 40-50% and cost $300-$750 per signed contract. The contractors who don't systematize referrals leave $50,000-$100,000 in profit on the table every year.
Retargeting/Facebook (10%) converts the 95% of website visitors who don't call or fill out a form. Pixel them, show them ads for 30 days, and convert 5-10% of that traffic. It's not a lead generation channel—it's a conversion optimizer for the traffic you're already paying to generate.
What to avoid: Cutting SEO budget because "we're already getting leads." SEO requires maintenance or rankings decay. Also avoid door-knocking at this stage unless you're in a hyper-growth phase opening new territories. Your referral network and SEO should provide cheaper leads than door-knocking.
The mistake: Spending 80% on Google Ads when you're a startup with zero brand recognition. Or spending 60% on door-knocking when you have 500 past customers who could refer you.
Match your budget to your stage, not to what your competitors are doing.
The Bottom Line: Match Leads to Your Stage
Every roofing contractor needs leads. But the lead source that works for your competitor down the street might bankrupt you—because you're at different stages.
If you're a startup with zero brand recognition, door-knocking and fresh storm leads give you the cheapest cost per contract ($176 and $100-$240). Don't waste money on Google Ads when nobody knows your company name yet.
If you're growing (50-200 completed jobs), shift budget to Google Ads and start building SEO. You have enough brand recognition now for paid search to work, and SEO compounds over time.
If you're established (200+ jobs), your referral program should generate 20-30% of new business. Invest heavily in SEO (40% of budget) because year-3 leads cost $33 each. Keep Google Ads for immediate volume.
The calculators above let you run your actual numbers before spending a dollar. Use them. The difference between profitable lead generation and burning cash is knowing your math.
Need help tracking and responding to leads instantly? GhostRep's AI-powered lead response system ensures you contact every lead within 5 minutes—the window where contact rates are 391% higher. See how it works.
The GhostRep Advantage
One Platform. Closed Loop System.
Every interaction makes your team better. AI that learns, adapts, and improves with every rep.
Hire
AI screens candidates
Train
1,000+ scenarios
Coach
Real-time guidance
Analyze
AI learns & improves
You Might Also Like
Why roofing referral programs fail and how to fix them. Learn the conversation framework, optimal timing, and reward structures that actually generate referrals.
Most contractors send one postcard and give up. Here's why 6-touch campaigns to targeted lists generate 20x the response—and exactly how to execute one.
HomeAdvisor roofing leads cost $75-$110 each, but the real cost per job is $500-$900 after factoring close rates and dead leads. Contractor reviews show 13-18% conversion vs Thumbtack's 10-15%. See actual math from 2025 data.
