A roofing company needs roughly 240 qualified leads to close $1 million in annual revenue. The math: $1M ÷ $12,000 average ticket = 84 jobs. At a 35% close rate, that requires 240 leads. The mix typically breaks down as 96 LSA leads, 60 Google Business Profile calls, 50 organic, and 34 referrals.
That's the answer most owners want first, before the work of figuring out how to actually get there. Below I'll walk through every assumption in that equation, where each number comes from, and how to plug your real ticket size and close rate in to get the lead target that matches your business, not the average roofer's.
I run paid media and lead generation for roofing companies, and the most common conversation I have is exactly this one: an owner wants to get to $1M (or $2M, or $5M), they've never seen the math written out, and the marketing budget gets set on a hunch instead of a calculator. The number of jobs your company needs is fixed by ticket size. The number of leads is fixed by close rate. Skip either step and you're guessing.
The $1M Roofing Revenue Equation (Reverse-Engineered)
Three numbers drive the entire equation: revenue target, average ticket, and close rate. Once those are locked in, the lead count falls out automatically.
The walk-through:
- Revenue target: $1,000,000
- Average ticket: $12,000 (residential roof replacement benchmark)
- Jobs needed: $1,000,000 ÷ $12,000 = 84 closed jobs per year (about 7 per month)
- Close rate: 35% (above the industry average, achievable with good sales process)
- Leads needed: 84 ÷ 0.35 = 240 qualified leads per year (about 20 per month)
That's it. Everything downstream (channel mix, marketing budget, ad spend, sales hires) is a function of those five numbers. If you change any one of them, the lead target moves.
A quick sanity check on what 240 leads looks like in real life: that's roughly 5 leads per week, every week, for 12 months. Most roofing companies running zero paid media and relying on word-of-mouth get 4 to 10 leads per month. So the gap to $1M is usually a marketing problem first, a sales problem second.
What "Average Ticket" Actually Means for Roofing Companies
The $12,000 number is the residential replacement benchmark in 2026 across most of the U.S., but it varies wildly based on what mix of work you sell. Use the table below to recalc your equation with your real numbers.
| Job type | Typical ticket range | Notes |
|---|---|---|
| Residential repair | $400 - $2,500 | Volume play, low margins |
| Residential replacement (asphalt) | $9,000 - $16,000 | The core $12K benchmark |
| Residential replacement (metal/tile) | $22,000 - $55,000 | Higher ticket, longer cycle |
| Insurance/storm restoration | $14,000 - $28,000 | Tied to weather events |
| Commercial flat roof | $28,000 - $250,000+ | Very different sales motion |
| Solar reroof bundle | $35,000 - $70,000 | Hybrid solar/roofing close |
If your average ticket is $9K, you need 112 jobs to hit $1M, which means more leads. If it's $18K because you're selling metal and tile, you only need 56 jobs and roughly 160 leads. The owner running storm restoration with a $24K average is in a totally different math problem than the owner running tear-offs in a coastal repair-heavy market.
The honest version of this math starts with pulling your last 12 months of closed jobs, totaling them, and dividing by job count. That's your actual ticket. Don't use a number you wish were true.
What "35% Close Rate" Looks Like in Practice (And Why Most Roofers Are at 18%)
Here's the gap nobody talks about. The industry average close rate on inbound roofing leads sits around 18 to 22 percent. The top 25% of roofing operators close at 35 to 50 percent on the same kind of leads. That's not a small difference. At 18%, you'd need 467 leads to close 84 jobs. At 35%, you need 240. At 45%, you need 187.
Same revenue target. Vastly different marketing budgets.
Why most roofers stall at 18 to 22 percent:
- Slow response time. The first roofer to call a lead back wins about 60% of the time. Most roofers respond in 2 to 8 hours. The top operators respond in under 5 minutes. (More on this in How Fast Should Roofers Respond to Leads.)
- No structured sales process. Owners "wing it" on the kitchen-table close instead of running a repeatable inspection-to-proposal-to-close sequence.
- No follow-up after the first appointment. The average sale closes after 5 to 8 touchpoints. Most roofers stop after 1.
- Weak proof. No before/after photos, no recent-customer references, no GAF or Owens Corning master elite badge to lean on.
- Pricing without value. Roofer hands over a number with no explanation of materials, warranty, install team, or why their crew is different.
The fix is rarely "more leads." It's almost always "close more of the leads I'm already getting." Two roofing companies running the same ad budget can have a 2x difference in revenue because of close rate alone.
Want to plug your real numbers into the equation? Take the free 5-minute Marketing Scorecard →. We'll calculate your lead-to-revenue gap and show exactly where the math is breaking down.
The Channel Mix for 240 Leads/Year (Most Roofers Get This Wrong)
The 240-lead target only works if the leads come from the right channels. A roofer with 240 yearly LSA leads and zero brand search will hit a ceiling fast. Here's the channel mix that the top-performing roofing accounts I run hit consistently.
| Channel | Annual leads | Monthly leads | Cost per lead | Annual spend |
|---|---|---|---|---|
| Google Local Service Ads | 96 (40%) | 8 | $50 - $95 | $4,800 - $9,120 |
| Google Business Profile calls (organic) | 60 (25%) | 5 | $0 (earned) | $0 |
| Organic SEO (forms + calls) | 50 (21%) | 4 | $0 - $20 (content cost amortized) | $0 - $1,000 |
| Referrals + repeat | 34 (14%) | 3 | $0 | $0 |
| Total | 240 | 20 | Blended ~$25 - $40 | $4,800 - $10,120 |
A few things stand out from this mix:
- LSA is the largest single channel because it's the fastest to spin up and the most predictable for net-new revenue. But it caps at about 40 to 50 percent of total leads before close rates start dropping.
- Google Business Profile is the most underrated channel. A fully optimized GBP with 100+ reviews and weekly posts pulls 4 to 8 calls per month at zero cost.
- Organic SEO is the slow burn that compounds. It takes 6 to 12 months to start producing, but by month 18 it's the cheapest channel by a mile.
- Referrals only come if you have a system for asking. Not "we'd appreciate referrals." An actual post-job referral request, a cash incentive, and a follow-up email 90 days after the job.
The biggest mistake roofers make is loading 80% of the lead volume into one channel, usually LSA. When LSA goes down for a week (which it will), revenue goes down with it.
How to Pressure-Test Your Lead Math With Your Own Numbers
Don't use my numbers. Use yours. Here's the four-step calculator every roofing owner should run before setting next year's budget.
Step 1: Pull your true average ticket. Last 12 months of closed jobs, total revenue divided by job count. If you closed $720K on 60 jobs, your average ticket is $12,000. If you closed $720K on 96 jobs, you're at $7,500. Much smaller.
Step 2: Calculate your real close rate. Total signed jobs divided by total qualified leads (not garbage calls, actual prospects who could have hired you). Most roofers have never measured this. If you closed 60 jobs from 280 leads, you're at 21%. That's where the work is.
Step 3: Set your revenue target. Honest target. Not a wishful one. If you did $700K last year and you're hiring one more crew, $1.2M is realistic. $3M probably isn't.
Step 4: Reverse-engineer the leads.
- Revenue target ÷ average ticket = jobs needed
- Jobs needed ÷ close rate = leads needed
- Leads needed ÷ 12 = monthly lead target
Run that on your own numbers. The output is the only honest target for your business. (If you want help running it, our free ROI calculator does the math automatically.)
Why 240 Leads Is the Floor (Not the Goal)
Here's what almost no marketing blog will tell you: 240 leads is the bare minimum to hit $1M. You actually want 1.5x to 2x that volume (360 to 480 leads) because:
- Pipeline coverage. Not every "qualified lead" is actually qualified once you talk to them. About 15 to 25% of inbound leads are out-of-area, wrong service, or window-shoppers. Real pipeline coverage means you've got leads in reserve.
- Seasonality. Roofing is cyclical. Q2 and Q3 are heavy. Q4 and Q1 (in northern markets) drop 30 to 50%. Your annual lead average has to account for the slow months.
- Sales team capacity. If your salespeople are running at 100% of capacity on appointments, they can't grow into more revenue. Slack in the pipeline = scalability.
- Channel volatility. LSA pauses you for a missed call. Google Ads disapproves a creative. SEO drops on a core update. Pipeline cushion is what keeps revenue from cratering when one channel hiccups.
If you want $1M to be a comfortable year (not a stretch), build for 360 leads. If you want $1M to be a stepping stone to $1.5M, build for 480.
What 240 Leads/Year Actually Costs You in Marketing
This is the section every owner skips to. The honest budget for 240 paid + earned leads at the channel mix above:
- LSA spend: 96 leads × $50-$95 cost per lead = $4,800 - $9,120/year (about $400 - $760/month)
- Google Ads layered with LSA (optional but recommended): $1,500 - $3,500/month for an additional 40 - 80 leads/year and bigger-ticket searches
- Local SEO / GBP management: $1,000 - $2,500/month for ongoing reviews, posts, content, link building
- Website + landing pages: $3,000 - $8,000 one-time, plus $200/month hosting and updates
- Call tracking + CRM: $150 - $400/month
- Total annual marketing spend for $1M: roughly $45,000 - $90,000, or 4.5% to 9% of revenue
That's the working range. Most roofing companies that hit $1M reliably spend between 5% and 8% of revenue on marketing. (For deeper benchmarks see How Much Should a $3M Roofing Company Spend on Marketing.)
If your math shows you'd need to spend 12% to 15% of revenue to hit your lead target, the problem isn't marketing cost. It's that your close rate is too low or your ticket size is too small. Marketing can't fix a sales process gap.
Want help building a 240-lead-a-year pipeline? Book a 30-minute strategy call → and we'll map your lead targets, channel mix, and budget against your actual numbers.
Final Read
The math doesn't care about your goals. It only cares about ticket size, close rate, and channel mix. Run the equation on your real numbers, set the lead target that matches your revenue goal, and build a channel mix that doesn't have all its weight on one platform. That's how $1M roofing companies stay $1M roofing companies, and how the ones that scale to $3M and $5M get there without setting their budget on fire.
If you want help running the math against your real account, that's exactly what we do at DG Agency. We're a marketing agency for roofers that builds the LSA, Google Ads, SEO, and GBP stack against the lead targets your revenue goal actually requires. See our pricing and the TMC Roofing case study where we scaled an account from $3M to $8M in 12 months.
Related reading: