What Is a Good Cost Per Lead for Contractors?
August 3, 2026 · 7 min read · By James Leary
Quick answer: There’s no universal good number — a $250 lead can be cheap and a $30 lead can bankrupt you. The only benchmark that matters is your own ceiling: gross profit per job × the share you’ll spend to win one, divided by leads needed per job. As reference points, home-service leads typically run $25–$80 on Meta and $80–$250 on Google.
Cost per lead is the most quoted and least useful number in contractor marketing. It’s quoted because it’s easy to calculate and easy to brag about. It’s useless on its own because it describes what you bought without describing what it was worth.
Two contractors, same industry, same city. One pays $40 a lead and is quietly going out of business. The other pays $180 and is buying a second truck. Here’s why.
The two contractors
Contractor A — pressure washing, $45 per lead
- Average job: $650
- Gross margin 55% → $358 of gross profit per job
- Booking rate (lead → scheduled job): 20%
- Close/completion rate: 50%
- Leads needed per job: 1 ÷ (0.20 × 0.50) = 10
- Cost to acquire one job: 10 × $45 = $450
He’s spending $450 in advertising to generate $358 of gross profit. Every job he wins loses him about $92 before he’s paid rent, insurance, fuel, or himself. His cost per lead is excellent. His business is underwater.
Contractor B — roofing, $180 per lead
- Average job: $14,000
- Gross margin 30% → $4,200 of gross profit
- Booking rate: 35%
- Close rate: 40%
- Leads needed per job: 1 ÷ (0.35 × 0.40) = 7.1
- Cost to acquire one job: 7.1 × $180 = $1,286
He spends $1,286 to make $4,200 in gross profit — a bit over 3x. That’s a healthy, scalable business, and his cost per lead is four times “worse” than Contractor A’s.
The number that separated them isn’t cost per lead. It’s the relationship between cost per lead, conversion rates, and job value. Ignore any one of the three and the other two will lie to you.
Typical ranges — use as sanity checks, not targets
These are broad ranges from working with home-service accounts. They vary enormously by city, season, competitiveness, and how good your offer is, so treat them as a way to spot something wildly out of line rather than a goal.
By channel:
- Meta / social: roughly $25–$80
- Google Search: roughly $80–$250
- Local Services Ads: roughly $40–$150, and paid per lead rather than per click
- Shared lead platforms: often $30–$120, but sold simultaneously to several contractors
By trade, paid search, competitive metro:
- Pressure washing, lawn, small exterior work: lower — small ticket, lower competition
- HVAC service calls: moderate, spiking hard in the first heat wave and first freeze
- HVAC replacement, windows, siding: higher
- Roofing: high, and it climbs sharply after a storm event
- Water damage / restoration: highest of the home-service categories
If you’re paying $300 a lead for pressure washing, something is broken. If you’re paying $60 a lead for storm-season roofing, either your tracking is wrong or you’ve found something worth protecting.
The number that replaces cost per lead
Stop asking what a good cost per lead is. Calculate your maximum allowable cost per lead and compare against that.
Step 1 — gross profit per job. Average job value × gross margin. Materials and labor out; overhead stays in for now.
Step 2 — pick your acquisition share. What portion of that gross profit you’ll spend to win the job. Most healthy home-service companies sit around 15–25%. Go higher when you’re deliberately buying market share and know you’re doing it; below 10% you’re likely leaving volume on the table.
Step 3 — leads per job. 1 ÷ (booking rate × close rate). This is where most contractors get an unpleasant surprise, because they’ve never measured booking rate separately from close rate.
Step 4 — divide. (Gross profit × acquisition share) ÷ leads per job = your ceiling.
Contractor A’s ceiling: ($358 × 20%) ÷ 10 = $7.16 per lead. There is no lead source on earth that sells at $7. His problem isn’t media buying — it’s that a $650 job with a 20% booking rate can’t support paid acquisition at all. He needs a higher average ticket (bundle services, add recurring contracts), a much better booking rate, or a different customer acquisition strategy entirely.
Contractor B’s ceiling at the same 20%: ($4,200 × 20%) ÷ 7.1 = $118 per lead. He’s paying $180, which is above his own ceiling — so he’s either running at a thinner acquisition margin than he thinks, or his close rate is better than 40%. Either way, that gap is now visible and arguable, which it never was while he was looking at cost per lead alone.
Run yours through the max cost per lead calculator, then check what you’re actually paying with the cost per lead calculator.
Why your cost per lead moves
Before you panic at a rising number, check whether it’s one of these:
- Season. Every trade has a period when demand spikes, every competitor bids up, and cost per lead climbs 30–50%. It’s also usually when leads convert best, so the higher price is often still a bargain.
- Market size. A metro of 4 million has far more searches than a town of 40,000. Small markets exhaust quickly and costs rise as you scale past real demand.
- Form friction. A three-field form produces far more, far cheaper leads than an eight-field form. It also produces worse ones. Neither is automatically right — but if your cost per lead just halved after someone “simplified” a form, expect booking rate to fall too.
- Offer. “Free estimate” is the cheapest and weakest offer in the trades. A specific, qualifying offer costs more per lead and converts better.
- New competition. A funded competitor entering your market lifts everyone’s costs. This shows up as a step change, not a drift.
The lag that catches people out
Cost per lead is known immediately. Cost per booked job is known in a week or two. Actual profit is known when the job is completed and paid — which for roofing or remodeling might be two months later.
That gap is where bad decisions live. A campaign whose cost per lead rose 40% looks like a disaster on day ten and can turn out to be the best month of the year once the jobs close, because the expensive leads were the serious ones. The reverse happens too: a cheap-lead month that produces almost nothing.
The discipline is simple and almost nobody does it: tag every lead with its source and revisit that cohort once the jobs have closed. Judge the month retrospectively, on jobs. Until you’re doing that, you’re managing on the one number that’s available early rather than the one that’s true.
When a rising cost per lead is fine
- Booking rate rose with it. Fewer, better leads. That’s an improvement, not a problem.
- You scaled budget. Costs rising as you reach deeper into your market is normal and expected. The question is whether cost per booked job stayed inside your ceiling.
- It’s peak season. Everyone’s cost went up. Yours going up less than the market’s is a win.
- You changed the offer to qualify harder. You bought this on purpose.
The only version that genuinely needs action is when cost per lead rises and booking rate falls at the same time. That means you’re paying more for worse — usually a targeting problem, a creative problem, or a competitor undercutting your offer.
If you’re weighing a budget change off the back of any of this, work out the whole chain first: what to spend on ads covers how these numbers roll up into a budget, and the cost per booked job calculator shows where in the funnel the money is actually going.
Frequently Asked Questions
What’s a good cost per lead for a contractor?
Whatever sits below your own ceiling — which is gross profit per job, multiplied by the share of it you’ll spend on acquisition (commonly 15–25%), divided by how many leads you need per job. For context, home-service leads typically run $25–$80 on Meta and $80–$250 on Google search, but those ranges say nothing about whether either is profitable for a specific business.
Why is my cost per lead low but I’m not making money?
Because cheap leads are only cheap if they convert. Ten leads at $45 that produce one job cost $450 to acquire that job — worse than four leads at $150 producing one job at $600 if the job is worth three times as much. Calculate leads-needed-per-job and multiply. That’s your real acquisition cost, and it’s the number that determines profitability.
Should cost per lead be compared across different channels?
Not directly. A social lead and a high-intent search lead convert at very different rates, so comparing their prices is meaningless. Compare cost per booked job instead, which normalizes for quality. Channels that look three times more expensive on lead price frequently end up within a few percent of each other on job cost.
How do I lower my cost per lead without hurting lead quality?
Improve conversion rate on the page the ads point at, tighten geographic targeting to the areas you actually want work in, and cut ad groups and audiences that generate clicks but no leads. Avoid the shortcut of stripping fields off your form — it lowers the number on the report and raises the number of unqualified conversations your team has to work through.
How many leads do I need before the number is meaningful?
Roughly 30–50 in a period before you should read anything into it, and even then look at the trend across a couple of months rather than a single figure. On ten leads, one unusually cheap or expensive one swings the average enough to trigger a decision that the underlying data doesn’t support.
Does cost per lead include agency fees and software?
It should, when you’re deciding anything. Media-only cost per lead is useful for judging campaign mechanics, but the number that determines whether the business works includes fees, call tracking, CRM, and anything else the operation requires. Track both, make decisions on the all-in figure.