All articles

Lead Generation

Good Cost Per Lead for Contractors: 6 Trades

Your CPL ceiling is job gross profit times close rate times what you will spend. For 5 of 6 trades it lands below the median search CPL. Here is the math.

Om Patel 15 min read
Photo: Angelo Casto / Unsplash

The short answer

A good cost per lead is any number below your own ceiling, and your ceiling is average job gross profit multiplied by close rate multiplied by the share of that profit you will spend to acquire work. For most trades that ceiling lands between $30 and $300. Published benchmarks disagree by three times on the same trade, so they cannot answer the question for you.

A good cost per lead is any number below your ceiling. Your ceiling is average job value times gross margin times close rate times the share of that gross profit you are willing to hand over to acquire the work. Run those four numbers and the answer for most trades lands somewhere between $30 and $300, which is exactly why no benchmark article can tell you whether your $85 lead is a bargain or a slow leak.

That is not a dodge. It is arithmetic, and the arithmetic produces an uncomfortable finding: at ordinary margins, five of the six trades below cannot afford the median cost per lead that their own category currently pays on search ads.

Why the benchmarks cannot answer this

Start with the two most-cited datasets, because the gap between them is the whole story.

LocaliQ analysed 3,211 US home services search campaigns running from April 2024 to March 2025 and reported median cost per lead by subcategory:

TradeMedian cost per lead
Pools and spas$45.15
Cleaning and maid services$46.99
Handyman$54.05
Window cleaning$66.69
Garages$81.45
Electricians$93.69
Landscaping$117.92
Air conditioning install and repair$127.74
Plumbing$129.02
Heating and furnaces$129.02
Painting$138.38
Construction and contractors (general)$165.67
Doors and windows$200.34
Roofing and gutters$228.15

Now put an agency benchmark next to it. Watson and Co. published 2026 figures from 30-plus home services clients and roughly $2.1 million in managed ad spend: HVAC $45, plumbing $45, electrical $42, landscaping $30, roofing $70, general contractor $85.

Same trades. Same era. Roofing at $228.15 or roofing at $70. Landscaping at $117.92 or landscaping at $30. Neither party is lying. LocaliQ is reporting the median tracked conversion inside search ad accounts it manages. The agency figure is a blended average across Google Ads, Local Services Ads and organic, which drags the number down because organic leads carry no per-lead media cost.

Watch out

The two most quoted home services benchmarks are also the same company. WordStream's 2026 report across 13,474 campaigns puts Home and Home Improvement cost per lead at $90.92, the identical figure LocaliQ reports as its home services median. WordStream is LocaliQ. Treat them as one data point, not as independent confirmation.

It gets worse. CallRail's March 2026 statistics roundup cites that same LocaliQ benchmark page at $66.02 average cost per lead and $186.79 for roofing. The edition of that page live today reports $90.92 and $228.15. A reputable vendor, citing a reputable source, produced a roofing figure 22% below what the source now says. If you are trying to work out whether your number is good by comparing it to a published number, you are comparing yourself to a moving target measured with a different ruler.

The one thing all these datasets do agree on is direction. LocaliQ found cost per lead rose for 69% of home services businesses, up 10.51% year over year, while conversion rate fell in 10 of 16 subcategories by an average of 14.96%. Home and Home Improvement now carries the second highest cost per click of any industry WordStream tracks, $8.33, behind only attorneys. Prices are going up and the same click converts less often.

The formula that actually answers the question

Four inputs, one line:

Maximum cost per lead = average job value × gross margin × close rate × acquisition share

Read it right to left and it is obvious. You will spend some share of the profit on a job to win that job. You need several leads to win one job, so divide that budget across them. That is it.

The only input people argue about is acquisition share, because it is a decision rather than a measurement. Two independent reference points bracket it. Contractor Marketing Network, which has been answering this question for contractors since 2021, puts sustainable lead cost at 5% to 8% of the project value. A roofing owner posting in r/RoofingSales reported spending about $1,250 per sold deal against roughly $8,000 of profit per job, which is about 16% of gross profit, and defended it plainly: "if I told you if you gave me $1,250 I'd give you back $8,000 (average profit per job) 2 months later, how much money would you give me?"

For the table below I use 20% of gross profit, which sits at the aggressive end of that bracket. Edgestrat Finance's 2026 contractor benchmarks put a good gross margin at 20% to 35%, with most construction companies between 20% and 30%, so I use 30%. Both are assumptions. Swap in your own and the ceilings move proportionally.

What each trade can actually afford

Average job values and close rates below come from the Watson and Co. benchmark. The ceiling column is my arithmetic on those inputs. The market column is LocaliQ's median.

TradeAvg jobClose rateYour ceilingCategory median CPLVerdict
Plumbing$1,20040%$29$129.024.4x over
Electrical$1,80035%$38$93.692.5x over
Landscaping$2,50030%$45$117.922.6x over
HVAC$4,50035%$95$127.741.3x over
Roofing$9,50025%$143$228.151.6x over
General contractor$25,00020%$300$165.671.8x under

Five of six trades cannot pay the going rate for their own category on a single-job basis. Only the general contractor has room, and that is precisely why general contractor and remodel keywords get bid up by everyone with a truck.

This explains far more than it looks like it should.

It explains why "leads are too expensive" is the single most universal complaint in every trade forum, and why it is usually correct rather than whiny. It explains why plumbers push membership plans and why pest control lives or dies on recurring contracts: pest control's $350 average job supports a ceiling under $10 on the first job alone, which is below any price anyone will ever sell you a lead for. And it explains why the trades with the worst single-job math are the ones that talk most about lifetime value. They have to.

By the numbers

Change one input and watch the answer move. Roofing at a $9,500 job and 30% margin gives a $143 ceiling. The roofing owner quoted above runs roughly $8,000 of profit per job, which at a 25% close rate lifts his ceiling to about $312, comfortably above the $228.15 median. Same trade, same market, opposite conclusion, because gross profit per job moved. That input matters more than your cost per lead does.

When the ceiling is below the market price

You have four levers, and only one of them lives in the ad account.

Raise close rate. This is the highest-leverage input because it multiplies directly. Moving an HVAC shop from 35% to 50% takes the $95 ceiling to $135, which clears the category median with nothing else changing. Watson's data puts top performers 15 to 20 percentage points above average in every single trade, and attributes the gap to speed to first contact and follow-up, not to marketing.

Raise average job value. A minimum job size, a better options presentation, or simply declining the $400 call moves the first term in the formula. It is the slowest lever and the most permanent.

Raise acquisition share. If you are sitting at 8% of gross profit and your competitors are at 20%, you will lose every auction you enter. This is a decision, not a constraint, and it is the one most owners never consciously make.

Change channel. Referral and organic carry no per-lead media cost and close higher, but neither can be switched on during a slow week. That is the honest limitation, and it is why paid channels exist alongside them rather than instead of them.

Cutting your bid is the fifth option, and it mostly buys fewer leads of worse quality rather than the same leads cheaper.

If your ceiling is below what your market charges per lead, the fix is usually a different structure, not a lower bid. Pavado's lead generation service builds a dedicated conversion page, a qualifying form that arrives with the answers already attached, and lead-to-sale tracking, so you can see cost per booked job rather than guessing at cost per lead.
Get a lead plan

Cost per booked job ends the argument

Here is the number that makes lead price look like trivia. A 90-day breakdown of six roofing companies posted to r/RoofingSales tracked spend all the way to closed deals:

ChannelMonthly spendLeadsDealsCost per deal
Storm chasing plus cold calling$5,500n/a11$500
Cold calling team$4,300n/a6$716
Door knocking$8,400n/a9$933
Facebook ads$5,2001905$1,040
Google Ads and LSA$6,100875$1,220
Shared lead vendor$4,800321$4,800

Treat this as one operator's self-reported sample, not a study. The author also sells cold calling services, which is worth knowing before you read the ranking of channels. The internal arithmetic is still instructive, because it is consistent.

Facebook leads cost about $27 each. Google leads cost about $70 each. The cheap channel was 2.6 times cheaper per lead and only 15% cheaper per deal, because Google needed 17 leads per close and Facebook needed 38. The shared vendor's leads cost about $150 each and produced one deal from thirty-two, at $4,800 per closed job. That is what buying an enquiry that four competitors also bought looks like on a P&L, and it lines up with what operators say about exclusive versus shared roofing leads.

The pattern holds across the sample: lead price and cost per job were close to uncorrelated. If you only track one number, track total spend divided by jobs closed.

The costs that quietly inflate your real number

Your reported cost per lead is almost always lower than your actual one, in four specific ways.

Unanswered calls. If you pay for thirty enquiries and answer eleven, you did not buy thirty leads. You bought eleven conversations at nearly triple the reported price. This is the single most common reason a healthy-looking dashboard sits above a shop that is not booking work.

Speed. Watson cites the Harvard Business Review finding that responding within five minutes makes a firm 21 times more likely to qualify a lead than waiting thirty. The roofing owner put the window even tighter: "It's not 3-4 hours later that they've found someone else, it is 10 fucking minutes later. If we pick up the phone or call a form submission instantly and set an appointment for the following week, they stop calling other roofers." Speed does not just raise close rate, it removes you from the auction entirely. A follow-up system that runs without you is worth more than a bid adjustment.

Unqualified volume. Job applicants, DIY questions, out-of-area enquiries and material-only requests all count as leads in the dashboard and none of them can be sold. On r/PPC, contractors running $10,000 a month in Google Ads traced rising cost per lead directly to close variants and broad match pulling in informational traffic, with one commenter maintaining a standing negative list of terms like "how to", "DIY", "cheap" and "template" across every search campaign. Cost per qualified lead is the honest denominator.

Sharing. A lead sold to five contractors is not a lead, it is a race. Angi's own numbers show the pressure this puts on the pro side: in the quarter ended June 2026 the company reported leads down 13% year over year, average monthly active pros down 17% to 106,000, and average monthly churn of 6.0%. Compound 6.0% monthly and roughly half the professional base turns over inside a year. Whatever the sticker price on those leads, the people paying it are not staying. The same dynamic shows up in trade-by-trade experience with Angi leads in HVAC.

Nobody who actually knows will give you a number

This is the tell that matters most, and it is easy to verify yourself.

When an agency owner posted "Is $67 per Lead in Google Ads for Commercial Cleaning Too High?" to r/PPC, twelve people replied in the top thread. Exactly one offered an industry figure, $80 to $90. Nearly every other reply redirected the question straight back to his own economics: close rate, qualified rate, average contract value, lifetime value. One did the napkin math for him instead of answering: revenue per job $1,000, cost per lead $67, conversion 40%, therefore each lead is worth $400, therefore stop asking strangers.

On a parallel r/PPC thread asking the identical question about a different industry, the replies were blunter still. "This is not an answerable question," said one. "It's a nonsensical question to ask others. Only your client can answer this," said another.

They are right, and their unanimity is the strongest evidence in this article. The people who run these accounts for a living have collectively concluded that the benchmark question has no benchmark answer. Every article promising you a number is either selling something or has not done the arithmetic.

Your ceiling in fifteen minutes

Pull four numbers from the last twelve months of your own records. Not estimates, records.

  1. Average job value. Signed revenue divided by jobs completed. Use signed, not quoted, because scope changes between the two.
  2. Gross margin. Revenue minus direct job costs, divided by revenue. Include labour burden and equipment. Edgestrat's benchmark range is 20% to 35%, and most contractors who think they are at 35% are at 25% because change orders and field time never made it onto the job.
  3. Close rate. Jobs won divided by leads received. Count every enquiry, including the ones you never called back. That is the number your marketing is actually being judged against.
  4. Acquisition share. Decide it. 5% to 8% of job value if you want the conservative version, 15% to 20% of gross profit if you are growing.

Multiply. That is your ceiling. Then pull your actual cost per lead by channel over the same period, and your cost per booked job, which is total spend divided by jobs closed.

If cost per booked job is comfortably under job gross profit times your acquisition share, you are fine regardless of what any benchmark says. If it is not, the diagnosis is in which term of the formula is out of line, and there are only four of them.

Tip

Recalculate the ceiling seasonally rather than annually. Costs spike when demand spikes because every competitor bids at once, and your close rate rises at the same time. A ceiling that is honest in February is often wrong in July, in both directions.

What to track instead of cost per lead

Cost per lead is a channel efficiency metric that got promoted to a business metric it was never built for. Four numbers replace it, and each one has a different owner.

MetricQuestion it answersFix when it is bad
Cost per qualified leadIs the targeting right?Negatives, geography, service filters
Answer rateAre we capturing what we bought?Coverage, after hours, callback speed
Cost per booked jobIs the channel profitable?Channel mix, close rate, job value
Gross profit per acquired customerIs the business growing?Pricing, scope, repeat rate

Track all four for ninety days and the question "is $85 a good cost per lead" stops being interesting. You will know, from your own numbers, whether $85 clears your ceiling, and no benchmark article will be able to tell you anything you do not already know better.

The most expensive lead is the one you paid for and never called back. The second most expensive is the one four of your competitors also bought. Everything else is a rounding error next to those two.

Frequently asked questions

What is a good cost per lead for contractors?
Any cost per lead below your own ceiling. The ceiling is average job value times gross margin times close rate times the share of gross profit you are willing to spend on acquisition. At a 30% margin and a fifth of gross profit spent on acquisition, that ceiling is roughly $29 for a plumbing repair, $95 for HVAC, $143 for roofing and $300 for a general contractor. There is no single good number because those four inputs differ by an order of magnitude between trades.
What is the average cost per lead for home services in 2026?
LocaliQ's benchmark across 3,211 US home services search campaigns puts the median cost per lead at $90.92, ranging from $45.15 for pools and spas to $228.15 for roofing and gutters. WordStream's 2026 report across 13,474 campaigns puts Home and Home Improvement at the same $90.92 against an all-industry average of $66.69. Those two figures come from the same company, so treat them as one data point, not two.
Why do published cost per lead benchmarks disagree so much?
Because they measure different things and rarely say so. One counts a tracked conversion in Google Ads, another counts a qualified enquiry, another blends paid, organic and referral into one number. LocaliQ reports $228.15 for roofing while an agency benchmark from the same year reports $70 for the same trade. Both can be accurate about their own dataset and still be useless to you.
Is cost per lead or cost per booked job the better metric?
Cost per booked job, every time. In a 90-day breakdown of six roofing companies posted to r/RoofingSales, Facebook leads cost about $27 each and $1,040 per closed deal, while shared vendor leads cost about $150 each and $4,800 per closed deal. The cheapest lead produced the second worst cost per deal. Rank your channels by total spend divided by jobs closed, not by lead price.
How much should a contractor spend to acquire one job?
Most working answers land between 5% and 20% of the job. Contractor Marketing Network puts sustainable lead cost at 5% to 8% of the project value. A roofing owner posting in r/RoofingSales reported spending about $1,250 per sold deal against roughly $8,000 of profit per job, which is about 16% of gross profit. Pick your share deliberately, then let it set your lead price rather than the other way round.
Are cheap contractor leads ever a bad deal?
Frequently. A shared lead sold to four other contractors has its close rate cut roughly in proportion, so the effective cost per job multiplies even though the sticker price falls. Angi's own filings show the strain: average monthly active pros fell 17% year over year in Q2 2026, with monthly churn at 6.0%, which compounds to roughly half the pro base leaving inside a year.
What should I do if my cost per lead is above my ceiling?
You have four levers and only one of them is the ad account. Raise close rate by answering and calling back faster, raise average job value by changing what you sell or the minimum job you accept, raise the acquisition share you are willing to spend if your margins support it, or change channel. Cutting bids is the fifth option and usually just buys fewer, worse leads.
Does lifetime value change what I can pay per lead?
Massively, and it is the reason recurring trades survive prices that would bankrupt a repair-only shop. A pest control job averaging $350 supports a ceiling under $10 on the first job alone, which is far below any real market price. Counting the second, third and fourth service on a plan is what makes the number work. Only apply lifetime value if you can prove your repeat rate from your own records.
Done-for-you lead generation: a dedicated conversion page, a qualifying form that arrives with the answers attached, and lead-to-sale tracking, fed by targeted outreach and Meta ad campaigns we build and run.
Get a lead plan

Free tools

Find out what your site is costing you.

Enter your address and we check the real page. Scores are free and the itemised report lands in your inbox. No account, and we change nothing on your site.