Every week an owner asks us some version of the same question: “Is $80 a lead good or am I getting ripped off?” There’s no honest answer to that in the abstract. A lead has no universal price. $80 is a steal for a roofer closing $14,000 jobs and a disaster for a handyman doing $150 visits.
So let’s replace the guessing with arithmetic. Here’s the formula that tells you what you can afford to pay for a lead, the real 2025–2026 benchmarks by channel so you can sanity-check your numbers, and why cost per booked job — not cost per lead — is the only number that actually decides the question.
The formula: your CPL ceiling
Forget benchmarks for a second. The most you can afford to pay for a lead is set by two of your own numbers:
CPL ceiling = close rate × gross profit per job
That’s the break-even point — pay that much per lead and you make nothing on acquisition. Your real target sits below it, leaving room for profit.
Work an example. Say you book 1 in 5 leads (a 20% close rate) and each booked job throws off $400 in gross profit (revenue minus the cost of doing the work, before marketing). Then:
- Break-even CPL = 0.20 × $400 = $80 per lead
- You spend $400 to get 5 leads, book 1 job, earn $400 gross. Flat.
- To actually profit, you want leads well under $80 — say $40–$55 — so each booked job clears real margin after ad spend.
Flip the inputs and the answer flips with them. A roofer closing 25% of leads at $3,000 gross profit can pay $750 a lead and still win. A drain-cleaning outfit at 30% close and $120 gross profit can afford about $36. Same word — “lead” — wildly different ceiling. This is why “what’s a good cost per lead?” is the wrong question, and “what’s my ceiling?” is the right one.
These are illustrative numbers. Plug in your own close rate and gross profit and you have a ceiling no benchmark can give you.
Close rate is actually two rates
Most owners treat close rate as one number. It’s two, and conflating them is where the math quietly breaks:
- Contact / appointment rate — did you reach the lead and book an estimate or visit? This is mostly about speed to lead and answer rate, not sales skill.
- Appointment-to-close rate — of the people you actually sat in front of, how many bought? This is your sales process.
Why it matters for cost: leads that die at the contact stage and leads that die at the sales stage need completely different fixes, and they fail at different rates by channel. Shared marketplace leads (more below) mostly fail at the contact stage — three contractors racing to call the same person — while a high-intent exclusive lead that never answers is a contact problem, not a pricing problem. If your blended “close rate” is 8%, you can’t fix it until you know whether you’re losing people before or after the appointment.
Speed to lead: the cheapest lever you have
The single biggest multiplier on contact rate is response time. On paid and shared leads especially, the contractor who calls back in the first few minutes wins a wildly disproportionate share of the jobs — the lead goes cold fast, and on non-exclusive leads your competitors are dialing the same number. Improving speed to lead lowers your effective cost per booked job without touching your ad budget at all, because the same leads suddenly book at a higher rate. It’s the highest-ROI fix most home-service shops ignore.
Real benchmarks by channel (2025–2026)
Now the numbers — as ranges to sanity-check against, not targets to chase. These move with city, competition, trade, and season, so treat them as a gut-check, not gospel.
Local Services Ads (pay per lead)
Local Services Ads charge you per lead, not per click — you pay when a prospect calls (and stays on long enough to show genuine intent), texts, messages, or books through the ad. Google judges whether a lead is chargeable on signals like intent, relevance, and service-area match, and you can get lead credits for ones that don’t qualify. For trades like HVAC and plumbing, LSA leads often run roughly $25–$85 each depending on market and season — generally lower than non-branded search, but not always.
Two 2025 realities to plan around. First, Google consolidated the old Guaranteed/Screened/License-Verified badges into a single Google Verified badge in late 2025, and the manual lead-dispute flow was replaced by an automated credit system (AI reviews, credits typically within about 30 days) — if you don’t rate your bad leads, you can leave credits on the table. Second, and more painful: Google removed “job type not serviced” and “geo not serviced” as credit reasons, and many advertisers report weaker geo/industry targeting with no manual recourse. That’s the most actionable LSA caveat right now — budget for some unworkable leads you can no longer easily credit. (Verify current badge and credit details before quoting them; this area keeps changing.)
Google Search — and why branded vs non-branded changes everything
Google Ads search charges per click, so your cost per lead is driven by your conversion rate. But the headline trap here is mixing two very different kinds of lead:
- Non-branded (“ac repair near me”) — people who don’t know you yet. This is new demand, and it’s expensive. In HVAC, non-branded search CPL has run around $149; across trades the spread is wide — roofing lands roughly $120–$130, electrical near $128, and plumbing as high as $183. (These are trade-specific benchmarks, mostly HVAC-derived where a single figure is cited — don’t read them as one cross-trade average.)
- Branded (“Smith Heating & Air”) — people who already know you and were likely going to find you anyway. These convert cheaply, often around $30–$45.
Here’s the omission that wrecks most CPL math: if you blend branded and non-branded into one “average,” you make acquisition look far cheaper than it is. Branded leads drag the average down and hide what it actually costs to win a new customer. When you’re deciding how much new demand you can afford to buy, track non-branded CPL separately. Performance Max sits in between — typically around $64–$72 per lead in these benchmarks — useful, but watch that it isn’t quietly harvesting your branded searches and reporting them as cheap conversions.
Shared / marketplace leads
Yelp and lead-marketplace inquiries are usually non-exclusive — the same “request a quote” can be sent to up to six businesses at once unless the consumer opts out. The sticker price per lead can look low, but they close at low single-digit rates because everyone’s racing to the phone. A “cheap” $40 shared lead can easily cost more per booked job than an $80 exclusive one. This is the clearest case of why cost per lead lies and cost per job tells the truth.
Seasonality: your affordable CPL is a moving target
None of these numbers hold still across the year. HVAC CPL spikes during heat waves and cold snaps when demand and competition both surge; roofing follows storm season. Your ceiling moves too — in peak season jobs may close at a higher rate, so you can afford a higher CPL, while in the slow months the same lead price quietly turns unprofitable. Don’t set one CPL target in January and forget it; re-check your ceiling against your actual close rate each season.
The number that decides it: cost per booked job
Every benchmark above is a sanity-check. The number your business actually runs on is cost per booked job — total spend on a channel divided by jobs it actually produced. Two channels at the same $60 cost per lead can land miles apart on cost per job once close rates differ.
You can’t see this in any ad platform, because platforms report leads, not jobs. Closing the loop is the work: conversion tracking that tags every lead’s source and ties it to what happened next — contacted, booked, the ticket size — usually matched back by phone number. Only then can you rank channels by true cost per job, separate branded from non-branded, and see whether leads are dying at the contact stage or the sales stage.
From cost per job to ROAS and payback
Cost per booked job is the operating number; two more close the loop on profit. ROAS (revenue ÷ ad spend) tells you the return on a campaign in the moment. But many home-service customers are worth far more than one job — recurring maintenance, replacements, referrals — so when lifetime value is in play, the better lens is payback period: how long until the gross profit from an acquired customer repays what you spent to win them. A higher cost per lead can be the right call if those customers stick around and the payback lands inside a few months. That’s the difference between buying a transaction and buying a customer.
So — what should your lead cost?
Whatever clears your ceiling and books jobs at a cost per job your margins can carry. Run the formula on your own close rate and gross profit, separate branded from non-branded so you’re not fooling yourself, track every lead through to a booked job, and re-check the ceiling each season. Do that and “is $80 a lead good?” stops being a feeling and becomes a one-line calculation.
If you want that calculation run on your real numbers — your close rate, your ticket, your channels side by side on cost per booked job — that’s exactly what a growth audit is for.
FAQ
What is a good cost per lead for home services? There’s no universal number — a good cost per lead is any number below your CPL ceiling, which is your close rate times your gross profit per job. If you book one in five leads at $400 gross profit each, you can afford up to about $80 per lead and still break even on acquisition. A $90 lead is cheap for a roofer and expensive for a $120 drain cleaning, so the right answer always comes from your own job economics, not a benchmark.
How much does an HVAC or plumbing lead cost in 2025–2026? It varies widely by city, competition, and season. Local Services Ads for trades like HVAC and plumbing often run roughly $25–$85 per lead — usually cheaper than non-branded search but not always. Non-branded Google Search leads in those trades commonly sit near $100–$185, while branded search (people typing your name) can be $30–$45. Use these as ranges to sanity-check, not targets — your real number is what books jobs.
Why is cost per lead misleading on its own? Because two channels with the same cost per lead can have wildly different costs per booked job. Shared leads from a marketplace are sold to several contractors and close at low single-digit rates, so a “cheap” $40 shared lead can cost more per job than an $80 exclusive one. Cost per lead also hides whether leads fail at the contact stage or the sales stage. The only honest comparison is cost per booked job, which means tracking every lead to booked-or-not and ticket size.
Should I include branded leads in my cost-per-lead average? Be careful — blending branded and non-branded leads into one average makes acquisition look cheaper than it is. Branded leads are people who already know you and would likely have found you anyway, so they pull the average down and hide the true cost of acquiring new customers. Track non-branded cost per lead separately when you’re deciding how much new demand you can afford to buy.