Somebody quotes you 90 dollars a lead and your gut says that's robbery — because you remember paying 25 on the shared-lead platforms. Here's the uncomfortable truth: the 90-dollar lead is often the cheaper one, and the only way to see it is to stop looking at cost per lead and start looking at cost per booked job.
This post gives you both: the national benchmark ranges by trade so you know what "normal" looks like, and the two-line math that tells you whether your number is good. Because a good cost per lead isn't a number on a chart — it's any number that's a small fraction of what a booked job is worth to you.
One scope note up front: this is about the price of a lead. How much you should spend on marketing overall — as a percentage of revenue — is a different question, and we answered it in how much to spend on marketing for a home-service business.
National cost-per-lead benchmarks by trade
These are typical ranges drawn from published platform pricing and ad benchmarks — shared-lead marketplaces (Angi, Thumbtack and similar), exclusive lead sellers and Local Services Ads, and Google Ads cost-per-lead data for home services (see the benchmark compilations from LocaliQ's home services advertising benchmarks and The Media Captain's Local Services Ads cost data). Your market will land somewhere inside — or occasionally outside — these ranges:
| Trade | Shared leads | Exclusive leads | Google Ads (per lead) |
|---|---|---|---|
| HVAC | $12–80 | $75–150 | $60–200 |
| Plumbing | $15–60 | $75–150 | $90–180 |
| Roofing | $25–100 | $100–300 | $150–300 |
| Electrical | $15–70 | $60–150 | — |
| House cleaning | $10–40 | $30–80 | — |
| Landscaping | $10–50 | $40–100 | — |
| Water damage restoration | — | $70–300+ (calls) | $200–400 |
Three patterns worth noticing before you do anything with these numbers:
- Lead price tracks job value. Water damage and roofing leads cost 5–10x a cleaning lead because the jobs are worth 20–50x as much. Expensive trades have expensive leads, and that's fine.
- Exclusive costs 3–5x shared — on the sticker. Keep reading, because the sticker is lying.
- The ranges are wide because markets are wide. Roofing leads in a small Midwest metro and in Dallas are different products. If you want your state's numbers specifically, we're publishing a companion breakdown: what contractor leads cost in every state.
A quick definition check, because "lead" gets abused in sales pitches. In this table, a shared lead is a homeowner's contact info sold to multiple contractors at once — you're paying for a place in a race. An exclusive lead is sold to you alone, and the strongest form of it is an inbound phone call (which is what Local Services Ads and a good Google Business Profile produce). A Google Ads lead is a call or form fill from your own search campaign — exclusive by definition, priced by what clicks cost in your market divided by how well your website converts. Same word, three very different products, and the benchmarks only make sense once you know which one a vendor is quoting.
Why cost per lead alone is meaningless
Two leads, same trade:
- Lead A: 20 dollars, from a shared marketplace. Sold to you and three competitors. Homeowner is price-shopping, half the contact info is stale, and you reached them fourth.
- Lead B: 120 dollars, exclusive, called your number directly after finding you on the map.
If you close 1 in 12 of the Lead A type and 1 in 2 of the Lead B type, then:
- Lead A actually costs 240 dollars per booked job (20 × 12).
- Lead B actually costs 240 dollars per booked job (120 × 2).
Identical. And that's before counting the hours you burned chasing eleven dead Lead A's. Change the close rates slightly — 1 in 15 versus 1 in 2 — and the "cheap" lead becomes the expensive one by a wide margin.
Cost per lead is an input. Cost per booked job is the score. The formula is one line:
Cost per booked job = cost per lead ÷ close rate
And the sanity check is one more line:
A channel works when cost per booked job is a small slice — typically 5–15% — of average job revenue, at margins that leave room for it.
The worked math, by trade tier
Here's how the same math plays out across three tiers of trade economics, using the middle of the benchmark ranges above. Close rates are illustrative — plug in your own, because yours are the only ones that matter.
High-ticket, urgent (water damage restoration). Say 250 dollars per exclusive call, and you book 40% of calls: 625 dollars per booked job. Against an average mitigation job of, say, 5,000+ dollars, that's about 12% of revenue — steep but workable, which is exactly why restoration companies keep paying 300 dollars for a phone call. At those lead prices, a slow callback is a fire you lit yourself.
Mid-ticket (HVAC, plumbing, roofing). Say a plumber pays 120 dollars per exclusive lead and closes 45%: 267 dollars per booked job. If the average booked job runs 600 dollars, that's 44% of revenue — bad. If it's a 1,800-dollar average because the plumber steers toward water heaters and repipes, it's 15% — fine. Same lead cost, opposite verdicts: job mix decides whether a lead price is affordable. Roofing runs the same way at bigger numbers: a 200-dollar lead closing at 1 in 4 is 800 dollars per booked job — trivial against a 12,000-dollar roof.
Volume trades (cleaning, landscaping). Say 25 dollars per shared cleaning lead, closing 1 in 5: 125 dollars per booked job. Ruinous for a one-time 150-dollar clean; excellent if a new recurring client is worth 2,000+ dollars over a year or two. In volume trades, the deciding variable isn't the lead price — it's whether you sell one-offs or recurring relationships.
The pattern across all three tiers: the trades never got cheaper or pricier — the denominator changed. Close rate and job value swing the verdict far more than the lead price does. Run your own three numbers in our ROI calculator — it does this math per channel in about two minutes.
Revenue per lead: the number that sets your ceiling
Flip the formula and you get the most useful planning number you'll ever compute:
Revenue per lead = close rate × average job value
A roofer closing 25% of leads on 12,000-dollar jobs earns 3,000 dollars of revenue per lead — meaning a 300-dollar lead is a 10% cost, and this roofer should be outbidding everyone in town rather than complaining about lead prices. A handyman closing 30% of 300-dollar jobs earns 90 dollars per lead and cannot pay 60 for one, no matter what any benchmark table says.
Know your revenue per lead and every pricing conversation gets simple: any lead priced under about 10–15% of it is a buy; anything near a third of it is a pass.
When a "high" CPL is a bargain — and a "low" one is a trap
High CPL, good deal: exclusive leads and Local Services Ads calls look expensive on the sticker, but they close at multiples of shared-lead rates because you're the only contractor in the conversation and the intent is real. It's the same shared-versus-owned economics we walked through in the Angi and Thumbtack comparison, and it's why Local Services Ads are the first paid channel we recommend for most trades — a per-lead price that looks steep next to marketplace leads and still wins the booked-job math almost every time.
Low CPL, trap: a 15-dollar lead sold to four contractors, answered late, closes rarely — and quietly eats admin hours that never show up in the marketing spreadsheet. If a channel's leads feel cheap but the calendar isn't filling, run the booked-job math before buying more of them.
The zero-CPL asterisk: referrals, repeat customers, and Google Business Profile calls have near-zero marginal lead cost, which is why they dominate every "best channel" analysis ever run. Benchmarks are for the paid portion of your pipeline — the long game is shrinking that portion.
The cheapest way to improve CPL: don't touch the ads
Cost per booked job has two levers, and most owners only pull the first (pay less per lead). The second is bigger: close more of the leads you already pay for.
- Speed to lead. Calling back inside five minutes instead of a few hours is the single largest close-rate lever in home services. Every missed call is a lead you paid full price for and then threw away — our missed-call calculator puts a dollar figure on yours, and it's usually ugly.
- Answer the phone like a business. A real greeting, a booked time slot before hang-up, and a same-day text follow-up.
- Quote fast, follow up twice. Most "lost" quotes were never followed up even once.
Move a 25% close rate to 40% and every benchmark in the table above just got 37% cheaper for you — without renegotiating a single lead price.
How to get your own numbers this week
You don't need software to run this math — you need three numbers and a 90-day lookback:
- Leads by source. Count every call, form, and message from the last 90 days, tagged by where it came from. If you haven't been tracking, start the blunt way: ask every caller "how'd you find us?" and write it down. Imperfect beats absent.
- Booked jobs by source. Match your job list against that lead list. This is the step nobody does, and it's twenty minutes with a coffee.
- Spend by source. Pull the invoices — platform fees, ad spend, membership charges.
Then compute, per channel: spend divided by leads (your real CPL), spend divided by booked jobs (the score), and booked-job cost as a percentage of average job revenue (the verdict). Most owners who run this exercise for the first time find one channel quietly delivering jobs at a third the cost of another — and the fix isn't a new marketing idea, it's moving money from the loser to the winner.
Do it once a quarter and the benchmark table above becomes what it should be: a sanity check on your numbers, not a substitute for them.
If you'd rather have someone compute your actual cost per booked job across every channel you're paying for — and tell you which one to cut — that's the first thing we do in a Founders Resource growth checkup.
