Lead Math

How Many Roofing Leads Do I Need to Close $1 Million in Revenue?

April 25, 20268 min read

240 leads to hit $1M. 84 jobs × $12K ticket × 35% close = the math every roofing owner should run before setting next year's marketing budget.

Book a Free Strategy Call30 minutes with Daniel. No pitch deck.

A roofing company with a $12,000 average ticket and a 35% close rate needs about 240 qualified leads a year to close $1 million. The math: $1M ÷ $12,000 = 84 jobs, and 84 ÷ 0.35 = 240 leads. Change the ticket or the close rate and the lead count moves with it.

Those two inputs are examples, not benchmarks. Below I'll walk through each assumption and show you how to plug in your own ticket size and close rate, so the lead target fits your business instead of somebody else's.

I run paid media and local search for roofing companies, and the most common conversation I have is this one. An owner wants to get to $1M (or $2M, or $5M), has never seen the math written out, and sets the marketing budget 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:

  1. Revenue target: $1,000,000
  2. Average ticket: $12,000 (an example, use your own)
  3. Jobs needed: $1,000,000 ÷ $12,000 = 84 closed jobs per year (about 7 per month)
  4. Close rate: 35% (an example, measure your own)
  5. 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 a week, every week, for 12 months. Count what you got last month and you'll know how big the gap is.

What "Average Ticket" Actually Means for Roofing Companies

The $12,000 in this post is an example. Your real number depends on the mix of work you sell. A shop doing mostly repairs averages far less than one doing tear-offs, and metal, tile, storm and commercial work all pull the average up.

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 a 35% Close Rate Looks Like in Practice

Close rate moves the lead target more than anything else in the equation. At 18%, you'd need 467 leads to close 84 jobs. At 35%, you need 240. At 45%, you need 187.

Same revenue target. Very different marketing budgets.

What usually drags close rate down:

  • Slow response time. Across 7 contractor LSA accounts we manage (November 2025 to October 16, 2026), calls answered for 30 seconds or more were marked booked 30.5% of the time. Calls that weren't answered were marked booked 7.7% of the time. (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, proposal and close sequence.
  • No follow-up after the first appointment. Plenty of homeowners get three bids and sit on them. If nobody calls back after the estimate, the roofer who does gets the job.
  • 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 one example mix to build from.

ChannelAnnual leadsMonthly leadsCost per leadAnnual spend
Google Local Service Ads96 (40%)8~$96 (our 7-account average)~$9,200
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 + repeat34 (14%)3$0$0
Total24020Blended ~$38 - $43~$9,200 - $10,200

The LSA cost is real data, not a guess. Across 7 contractor accounts we manage, a charged LSA lead averaged $96.20 from October 2025 to September 2026. Your market and trade will move it.

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. That's also why you don't want it carrying everything.
  • Google Business Profile is the most underrated channel. A fully built GBP with steady recent reviews and weekly posts brings in calls you don't pay per click for. TMC Roofing's profile call taps went from 11 to 27 between August 1 to 25 and September 1 to 25, 2026.
  • Organic SEO is the slow burn that compounds. It takes months to start producing, and once it does you aren't paying per lead.
  • 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. Some will be out of your area, after a service you don't sell, or just shopping. You want leads in reserve.
  • Seasonality. Roofing is cyclical, and in cold-weather markets the winter months drop off hard. Your annual lead average has to carry 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 × about $96 per charged lead = roughly $9,200/year (about $770/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 $46,000 - $96,000, or about 4.6% to 9.6% of revenue

Those line items are example estimates. Add up your own quotes the same way. (For the next tier up, 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 roofing marketing agency 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:

Frequently Asked Questions

Quick answers to common questions on this topic.

About 240 qualified leads per year, assuming a $12,000 average residential replacement ticket and a 35% close rate. The math: $1M ÷ $12K = 84 jobs, then 84 ÷ 0.35 = 240 leads. Lower close rate or smaller ticket means more leads needed.
Daniel Gonzalez

Founder, DG Agency

Google Partner · Canyon Lake, CA · Nationwide · See client results

Daniel Gonzalez, founder of DG Agency

Ready to get your phone ringing?

Book a 30-minute call with Daniel. You'll see where your calls are slipping away and what he'd fix first.

5.0from 25 Google reviews

Not ready to talk? Score My Roofing Pipeline Free (5 Min)