Why cost per lead varies so much by trade
A lead isn't a lead. A homeowner with a burst pipe at 11pm is a different animal than a homeowner comparison-shopping three roofing quotes over two weeks. The urgency, the ticket size, and how many competitors are bidding on the same keyword all move the price.
Emergency service trades (plumbing, HVAC repair, electrical, garage door, restoration) sit at the high end of cost per lead because the searcher converts fast and the average job still pays out. A $200 diagnostic call or a $600 repair covers a $60-$90 lead with room to spare. Advertisers know this, so they bid the keyword up.
Big-ticket project trades (roofing, siding, windows, solar, whole-home remodeling, kitchen and bath) often show a lower cost per lead in the ad dashboard, but that number is misleading on its own. These leads take longer to close, need more touches, and a meaningful share never sign. The real math is cost per lead multiplied by however many leads it takes to land one signed job, which is why we push contractors to track cost per booked job instead of cost per lead in isolation.
Maintenance and recurring trades (lawn care, pest control, pool service, cleaning) usually run cheapest per lead because the ticket is small and the market is less aggressive on paid search, but volume has to be high to make the math work. Location matters too: a plumber in a dense metro with six national franchises bidding on "emergency plumber near me" pays more than a plumber in a smaller market with two real competitors.
Cost per lead ranges by trade and channel
These are the general bands we see discussed across the industry for the three channels most contractors run: Google Local Services Ads (pay per lead, screened calls), Google Ads paid search (pay per click, you build the landing page), and organic (SEO plus Google Maps rankings, no per-click or per-lead fee once you're ranked).
| Trade | LSA cost per lead | Paid search cost per lead | Organic cost per lead (amortized) |
|---|---|---|---|
| Plumbing (emergency) | $40-$90 | $60-$130 | Low once ranked; SEO investment amortizes over every future lead |
| HVAC (repair/install) | $50-$100 | $70-$150 | Low once ranked |
| Roofing | $60-$120 | $80-$200 | Low once ranked; storm-driven demand spikes cost further |
| Electrical | $40-$85 | $55-$120 | Low once ranked |
| Landscaping/lawn | $20-$45 | $25-$60 | Low once ranked |
| Remodeling/general contracting | $70-$150 | $90-$250 | Low once ranked; long sales cycle regardless of source |
Read these ranges as a starting point for your own market, not a guarantee. Metro size, storm season, franchise competition, and how tight your ad account is run all move the number 20-40% in either direction. If you're paying well outside these bands, either your account needs a tune-up or your competitors are overpaying and you have room to win the auction. Our team can pull your actual numbers and tell you which one it is.
LSA vs. paid search vs. SEO: how the cost structure actually differs
Local Services Ads charge per lead, not per click. You get billed when someone calls or messages through the Google Screened badge, and Google's algorithm decides how leads get distributed among bidders in your area. It's the closest thing to a fixed cost per lead a contractor can buy, which makes budgeting simple but gives you less control over volume.
Paid search (Google Ads on keywords like "emergency plumber [city]") charges per click, not per lead. You pay whether or not that click turns into a phone call or form fill, so your true cost per lead depends entirely on how well your landing page converts. A page that converts at 8% will cut your effective cost per lead in half compared to a generic homepage sending the same traffic. This is why a fast, focused landing page matters more in paid search than in LSA.
Organic (SEO and Google Maps map pack rankings) has no per-click or per-lead charge once you're ranked. You pay for the work to get and hold the ranking, and that cost gets spread across every lead the ranking produces for as long as it holds, typically 4-9 months to build meaningful ranking movement for competitive terms. Month one, your amortized cost per lead from SEO can look worse than paid options because you're paying for work with no leads landing yet. By month twelve, if the rankings hold, SEO is usually the cheapest lead source you have, because you stop paying per lead entirely and start paying only to maintain the ranking.
Most contractors we work with end up running LSA or paid search for the leads they need this month, while SEO and map pack work builds the channel that gets cheaper every month it compounds. Running both isn't redundant, it's how you cover today's schedule while building next year's.
Why cost per lead is the wrong number to obsess over
Cost per lead tells you what you paid. It doesn't tell you what you got. A $35 lead that never answers the phone, isn't in your service area, or wants work you don't do is worth less than a $110 lead that books, shows, and signs a $9,000 roof.
The number that actually predicts profit is cost per booked job: total spend divided by jobs signed, not leads generated. Two contractors can pay identical cost per lead and end up with wildly different results if one closes 40% of leads and the other closes 15%. The gap is rarely the marketing, it's what happens after the phone rings: how fast someone answers, how the estimate is presented, and whether there's a follow-up system for the leads that don't book on the first call.
- Track answer rate. Missed calls are leads you already paid for and threw away.
- Track show rate. A booked estimate that no-shows costs you the lead price plus the appointment slot.
- Track close rate by source. LSA, paid search, and organic leads often close at different rates for the same trade.
- Track average ticket by source. A cheaper lead source that also brings a smaller average job isn't automatically the better deal.
Two contractors in the same trade, same metro, buying leads from the same LSA account can post entirely different results a quarter later. The one who wins usually isn't outspending the other, they're answering faster, quoting sooner, and following up on the leads that didn't book on call one instead of letting them go cold. The lead cost was identical. The system behind it wasn't.
Any contractor comparing marketing vendors on cost per lead alone is comparing the wrong column. Ask what a vendor's leads close at, not just what they cost to generate. A vendor who can't answer that question, or won't, is telling you they've never tracked it either.
How to calculate your own break-even cost per lead
Your break-even cost per lead isn't a number you look up, it's a number you calculate from your own job economics. The formula is straightforward:
- Take your average job ticket (revenue per signed job, not per lead).
- Multiply by your target marketing spend as a percentage of that job (most contractors target somewhere in the 5-12% range depending on trade and growth stage).
- Multiply by your typical close rate (leads that convert to signed jobs).
Example math: if your average HVAC install tickets at $8,000, you're targeting 8% of revenue on marketing, and you close 25% of qualified leads, your break-even cost per lead is roughly $8,000 x 0.08 x 0.25 = $160. Paying $100 per lead against that math is a good deal. Paying $180 per lead is a problem even though it might look reasonable on a generic industry chart.
This is also why the same cost per lead means different things to different contractors in the same trade. A roofer doing mostly insurance-restoration work with a $14,000 average ticket can afford a much higher cost per lead than a roofer doing small repair jobs at $600 average ticket, even though both are "roofers" on a generic comparison table.
Run the same formula for both a repair-focused month and an install-heavy month if your trade swings between the two. A plumber who does $250 drain-clearing calls in January and $6,000 water heater and repipe jobs in July doesn't have one break-even number, they have two, and budgeting to a single blended average leaves money on the table in the slow months and overpays in the busy ones.
Run your own numbers before you accept or reject a vendor's pricing. A number that looks high in isolation can be cheap against your real ticket size, and a number that looks cheap can be a loss if your close rate or average job doesn't support it.
What makes cost per lead go up (and what actually brings it down)
Cost per lead climbs when competition for the same keywords and service area increases, when storm or seasonal demand spikes (roofing after a hailstorm, HVAC in the first heat wave), when your landing page or call handling converts poorly and you're effectively paying for wasted clicks, and when your Google Business Profile has thin reviews or slow response times that push you below competitors in the map pack.
Cost per lead comes down, sustainably, from a small list of levers: a landing page built to convert the specific search intent instead of a generic homepage, a Google Business Profile that's fully built out and earning reviews so you rank in the map pack without paying per click, content and local pages that earn organic rankings for the searches your buyers actually run, and increasingly, showing up in AI-generated answers (ChatGPT, Google AI Overviews, Perplexity) when someone asks for a recommendation instead of typing a search. That last one doesn't show up on a traditional cost-per-lead chart yet, but it's shifting where free, high-intent leads come from, and contractors who aren't structured for it are invisible in a growing share of searches.
None of these levers are instant. They're also not billed per lead, which is exactly why they eventually get cheaper than anything you're paying for by the click.
Building a lead mix instead of chasing one cheap channel
Contractors who ask us "what should a lead cost" are usually one step behind the better question, which is "what mix of channels gets me a full schedule at a cost I can sustain." Chasing the single cheapest lead source almost always backfires, because the cheapest channel is rarely the most reliable one, and volume dries up right when you need it most (a slow month, a competitor outbidding you, an algorithm update).
A workable mix for most trades looks like this: paid channels (LSA, paid search) carry the leads you need booked this week, while a Google Business Profile built out with real reviews and service-area pages, plus SEO content that answers the questions your buyers are actually typing, builds the channel that doesn't charge per lead at all. As the organic side compounds, you can dial paid spend up or down depending on how full the schedule already is, instead of being locked into one fixed monthly cost regardless of demand.
The trades that get this wrong tend to make one of two mistakes. Some go all-in on paid because it's fast and measurable, then panic when a seasonal spend increase from a competitor doubles their cost per lead overnight with no organic floor underneath them. Others try to skip paid entirely and wait for SEO to "kick in," and starve the schedule for the 4-9 months it takes competitive rankings to build. The trades that scale steadily run both, tracking cost per booked job across each channel so they know exactly which lever to pull when.
This is also where AI search visibility is becoming a third leg of the stool rather than a nice-to-have. When a homeowner asks ChatGPT or a Google AI Overview to recommend a plumber, HVAC company, or roofer, the businesses that show up are the ones with structured, consistent information across their site, Google Business Profile, and review footprint, not the ones bidding the most per click. It's an emerging channel, but it's a free one for contractors positioned for it, and it's worth building toward now rather than after competitors already own it.