“How much do roofing leads cost?” is the first question almost every contractor asks, and it’s the one that leads people into the worst deals in this industry — because the cheapest lead and the most expensive customer are frequently the same person.
Why “cost per lead” is the wrong question
A shared lead marketplace can sell you a $35 lead sold simultaneously to four competitors. A well-run Local Services Ads account might produce a $70 lead that is exclusively yours and answers the phone. The first number looks better and the second builds the business.
Realistic ranges by trade and channel
Costs swing hard by market, season and competition, so treat these as orientation rather than promises. High-ticket replacement work (roofing, HVAC systems, solar) runs at the top of the range; service and repair work runs lower. Local Services Ads typically undercut standard search on a per-lead basis, and Meta usually undercuts both while requiring more qualification.
- Storm and emergency seasons spike cost per click sharply — budget for it
- Dense metros cost more per click and convert faster; rural markets are the inverse
- Replacement keywords cost several times what repair keywords cost, and are worth more
- Exclusive leads always cost more than shared leads, and close at a much higher rate
The math that decides your budget
Work backwards. Take your average job profit, multiply by your realistic close rate on booked estimates, and that’s the maximum you can pay per booked estimate before the channel stops making sense. Everything above that is a pricing, qualification or follow-up problem — not a Google problem.
Five ways to lower cost per booked job
- Call back in 60 seconds — the single largest multiplier available to you
- Qualify before you book, so estimators stop driving to unwinnable jobs
- Prune search terms weekly; block DIY, career and retail intent
- Reactivate your existing database before increasing ad spend
- Automate review requests — a stronger review profile lowers cost per lead everywhere
What agency fees should look like
Flat monthly management fee, ad spend paid directly to Google and Meta on your card with no markup, your ad accounts in your name, and no long-term contract. Anything else quietly makes your growth someone else’s leverage.