How much do roofing leads cost?
What roofing leads cost by channel, why cost per lead is the wrong number to optimise, and how to work out what you can actually afford to pay.
By Syntex AI
Short answer: less than you can afford, if you close them — and more than you think, if you do not answer them.
The long answer is more useful, because "what does a roofing lead cost" is the wrong question in a specific and expensive way.
Why we are not going to quote you a number
You will find plenty of articles confidently stating a dollar figure for a roofing lead. Treat all of them with suspicion, because the number swings by a factor of several depending on four things:
- Your market. A replacement click in Toronto bears no resemblance to one in Oshawa or Barrie. This is the single biggest variable and it is entirely local.
- The intent. Repair, replacement, and insurance are three different price points in the same auction.
- The channel. A shared marketplace lead, a Local Service Ads lead, and a lead from your own map pack ranking have wildly different costs and wildly different close rates.
- The season. The week after a hailstorm is not the same auction as a quiet week in the shoulder season.
You can get the real number for your own market in about ten minutes, free, without talking to anyone: open Google Keyword Planner, set your city, and look at the top-of-page bid estimates for your actual service terms. That is what you would be paying. Do that before you budget anything, and before you believe a figure from an article that does not know what city you are in.
The cost stack, from cheapest to most expensive
Your existing database. Effectively free. You already paid to acquire these people; the quotes you gave and lost are sitting in your CRM. Reactivation is the cheapest roofing revenue that exists and almost nobody works it systematically.
Organic and map pack. Zero marginal cost once you rank, meaningful fixed cost to get there and stay there. This is the channel that eventually makes paid spend optional rather than permanent.
Meta. Cheap per lead, and the quality varies enormously with how hard you qualify inside the ad. Unqualified Meta lead forms produce the cheapest and worst leads in roofing.
Local Service Ads. Priced per lead, at a level that reflects roofing job values. Higher than Meta, far higher intent.
Google Search. Priced per click, and roofing is one of the most expensive verticals Google sells. You pay for the click whether or not the person converts, which is why account structure matters so much here.
Shared marketplace leads. Often the cheapest headline price and frequently the worst actual economics — see below.
Why cost per lead is the wrong metric
Cost per lead is the number marketplaces want you to look at, because it conceals the two things that decide profitability.
Exclusivity. A marketplace lead is sold to three or four roofers simultaneously. The homeowner takes four calls in twenty minutes, is annoyed by the second, and picks whoever got there first. You are not competing on quality — you are competing on dial speed, and so is everyone else who bought the same lead.
Whether anyone answered it. This is the one that quietly destroys roofing marketing budgets. If a quarter of your leads never get a real conversation because they came in at 7pm, your effective cost per lead is a third higher than your invoice says. That waste never appears on a P&L line, which is exactly why it persists for years.
The number to optimise is cost per signed job. Work backwards from it:
cost per lead ÷ lead-to-appointment rate ÷ appointment-to-close rate
= cost per signed job
A $70 lead that books at 30% and closes at 40% costs you about $583 per signed job. A $140 lead that books at 60% and closes at 50% costs you about $467. The expensive lead is cheaper. This is not a hypothetical — it is the ordinary difference between a shared lead called back in an hour and an exclusive one answered in under a minute.
What you can afford to pay
Take your average job value, multiply by your gross margin, and decide what share of that margin you are willing to spend to acquire the job. Divide by your close rate to get your maximum cost per lead.
Two adjustments most roofers forget:
Lifetime value, honestly assessed. A roof is not a repeat purchase on any useful timescale. But repairs, maintenance, and — most importantly — referrals from a satisfied replacement customer are real. Do not inflate this into a fantasy number, but do not set it to zero either.
The failed-lead tax. If you do not answer a share of what you buy, your real cost per lead is higher than the invoice. Measure your answer rate before you set the budget, not after.
The cheapest way to lower your cost per job
It is not negotiating a better rate. It is answering faster.
Response time changes the denominator of every calculation above. The same traffic, the same spend, the same ads — with a materially higher share converting into conversations because somebody picked up while the homeowner still had the problem in front of them. There is no channel optimisation that produces a comparable improvement for comparable effort.
Work out your own numbers first. Then, if the constraint really is volume rather than conversion, Google Ads covers the most expensive channel specifically, and Meta ads covers the one that fills the quiet weeks.
If you are not sure which side of the problem you are on, the free speed-to-lead audit answers it in a day.