The short version

  • Typical managed-campaign ranges: HVAC $50–$150, plumbing $40–$125, electrical $40–$125, roofing $100–$250.
  • CPL is meaningless alone — divide it by your booking rate to get cost per job, and compare that to your average ticket.
  • A "high" CPL can be your best channel if those leads close into big tickets; a "cheap" CPL can quietly bankrupt a schedule with junk.
  • The biggest CPL levers: response speed, landing page quality, negative keywords, review velocity, and seasonal budget pacing.

"What should a lead cost?" is the most common question we get from contractors — and the most commonly misused number in trade marketing. Here are honest benchmark ranges, and more importantly, the math that tells you whether your number is good.

Benchmark ranges by trade

From managed Google Ads, Local Services Ads, and Meta campaigns across the trades, qualified-lead costs typically fall in these ranges. Your market's competitiveness, your service area's size, and the season all push you toward one end or the other.

TradeTypical qualified CPLWhat moves it
HVAC$50–$150Season (peak heat/cold drops CPL), service vs. replacement mix
Plumbing$40–$125Emergency share of demand, LSA availability in your market
Electrical$40–$125Service calls vs. project work (EV chargers, panels) mix
Roofing$100–$250Storm activity, insurance vs. retail jobs, metro competition

Channel matters as much as trade. LSA leads usually come in at the low end. Search-ad leads cost more but include the high-intent project searches. Meta leads are often cheapest of all but need qualifying questions to keep quality up. Across our contractor campaigns, the blended average runs under $85 per qualified lead.

The math that actually matters: CPL → cost per job → ROI

Cost per lead is the start of a chain, not a verdict. Walk it through:

  1. Cost per job = CPL ÷ booking rate. An $80 lead booked at 50% is a $160 job acquisition. A $40 lead booked at 20% is a $200 one. The "cheaper" lead is more expensive.
  2. Compare cost per job to average ticket. A $160 acquisition against a $450 service ticket is a healthy ~35% marketing cost on first revenue — before any upsell, maintenance plan, or repeat business.
  3. Factor lifetime value. A service customer who joins a maintenance plan or returns for a replacement in three years makes that $160 look trivial. This is why high-CPL roofing economics still work: a $200 lead closing at 15% is a $1,333 acquisition on a $12,000 job — about 11%.

Rule of thumb: if total marketing cost per booked job is under 20% of the average ticket for project work, or under 40% for service calls (where lifetime value does the heavy lifting), your numbers are healthy. Above that, fix the funnel before adding budget.

How to lower CPL without lowering quality

1. Answer faster

Response speed is the cheapest optimization that exists. Leads that get contacted within minutes book at dramatically higher rates, which slashes your cost per job even when CPL stays flat. Instant alerts and missed-call text-back are step one in our full playbook.

2. Fix the landing page before the bids

Doubling a landing page's conversion rate from 5% to 10% halves your CPL — an improvement no amount of bid tweaking can match. Fast load, click-to-call above the fold, reviews visible, and a page that matches the search ("water heater replacement" traffic should not land on a generic homepage).

3. Cut the junk with negative keywords and qualifiers

"Free," "DIY," "how to," job-seeker terms, and out-of-area searches quietly drain budgets. On Meta, qualifying questions on lead forms (homeowner? zip code? timeline?) cost a little volume and save a lot of wasted dispatch time.

4. Build review velocity

Reviews lower CPL twice: they raise LSA rankings (cheaper leads) and raise conversion everywhere your reviews appear (more leads per dollar). A steady stream of recent reviews beats a big stale total.

5. Pace budget with the season

Spending evenly year-round means underbuying during peaks (when leads are cheap and plentiful) and overbuying in dead weeks. Seasonal pacing is one of the biggest structural advantages in trades like HVAC and roofing — and one of the rarest, because it takes active management. Channel choice matters here too; see our Google Ads vs. LSA comparison for where each shines.

When a high CPL is the right call

One warning against optimizing CPL into the ground: the cheapest leads are rarely the best ones. Shared leads from marketplaces cost little and convert worse because four competitors got the same phone number. Ultra-broad targeting drops CPL while filling your CSR's day with unqualified calls. The goal is the lowest cost per booked, profitable job — and sometimes that means happily paying more per lead for exclusive, high-intent inquiries.

That's how we run campaigns for HVAC, plumbing, roofing, and electrical clients — weekly reporting on the whole chain from CPL to booked jobs, month-to-month, so the numbers have to keep proving themselves.