GUIDE · CONTRACTOR MARKETING

Cost Per Lead by Trade: What Plumbers, HVAC, and Roofers Actually Pay

The number on the invoice matters less than the number that closes. Here's what a lead actually costs by trade and channel, and how to tell a cheap lead from a good one.

Be Seen, Contractors!9 min readUpdated 2026

The short answer

Cost per lead runs anywhere from $15 to $300 depending on trade and channel. Emergency trades (plumbing, HVAC repair, restoration) pay the most because the buyer is calling today. Project trades (roofing, remodeling, solar) pay less per lead but need more leads to fill a smaller number of high-ticket jobs. Google Local Services Ads and paid search cost more per lead but close faster; SEO and Google Maps rankings cost less per lead over time but take months to build. The number that matters isn't the lead cost, it's the cost per booked job.

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).

TradeLSA cost per leadPaid search cost per leadOrganic cost per lead (amortized)
Plumbing (emergency)$40-$90$60-$130Low once ranked; SEO investment amortizes over every future lead
HVAC (repair/install)$50-$100$70-$150Low once ranked
Roofing$60-$120$80-$200Low once ranked; storm-driven demand spikes cost further
Electrical$40-$85$55-$120Low once ranked
Landscaping/lawn$20-$45$25-$60Low once ranked
Remodeling/general contracting$70-$150$90-$250Low 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:

  1. Take your average job ticket (revenue per signed job, not per lead).
  2. 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).
  3. 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.

Key takeaways

  • Emergency trades (plumbing, HVAC, electrical) pay $40-$150 per lead; project trades like roofing and remodeling can run higher per lead but need fewer signed jobs to justify it.
  • LSA charges per lead, paid search charges per click regardless of conversion, and organic has no per-lead fee once you're ranked, usually 4-9 months to build for competitive terms.
  • Cost per booked job matters more than cost per lead. Answer rate, show rate, and close rate by source decide whether a cheap lead was actually a good deal.
  • Calculate your own break-even: average ticket x target marketing percentage x close rate. Compare vendor pricing against that number, not a generic industry chart.
  • Landing pages, Google Business Profile strength, and AI-search visibility are the levers that bring cost per lead down without cutting corners on volume.

STRAIGHT ANSWERS

Quick answers.

01What's a good cost per lead for a plumber?

Most plumbing businesses see $40-$130 per lead depending on channel, with Local Services Ads typically running cheaper than paid search clicks. Whether that number is "good" depends on your close rate and average ticket, run your own break-even math before judging a price in isolation.

02Why does roofing cost more per lead than lawn care?

Roofing has a much higher average ticket and a longer, more competitive sales cycle, so advertisers can afford to bid more per lead and still profit. Lawn care tickets are smaller and recurring, so the market keeps per-lead costs lower and relies on volume.

03Is SEO cheaper than paid ads for generating leads?

Over time, usually yes, because there's no per-click or per-lead charge once you're ranked. In the first several months while rankings are building, paid channels typically produce leads faster, which is why most contractors run both rather than choosing one.

04How do I know if my current cost per lead is too high?

Compare it to your break-even number (average ticket x target marketing percent x close rate), not to a generic industry chart. If a vendor can't tell you what their leads close at, that's a bigger red flag than the sticker price on the lead itself.

WANT THIS HANDLED FOR YOU?

Know What a Lead Should Cost You

Bring us your numbers and we'll run the break-even math for your trade and market, then show you where LSA, paid search, and SEO actually stack up. Call or text (407) 705-2452, or book a strategy call and get the real answer before you spend another dollar.

Start With the Free Audit
Call (407) 705-2452 Text