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:
| Trade | Median 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.
| Trade | Avg job | Close rate | Your ceiling | Category median CPL | Verdict |
|---|---|---|---|---|---|
| Plumbing | $1,200 | 40% | $29 | $129.02 | 4.4x over |
| Electrical | $1,800 | 35% | $38 | $93.69 | 2.5x over |
| Landscaping | $2,500 | 30% | $45 | $117.92 | 2.6x over |
| HVAC | $4,500 | 35% | $95 | $127.74 | 1.3x over |
| Roofing | $9,500 | 25% | $143 | $228.15 | 1.6x over |
| General contractor | $25,000 | 20% | $300 | $165.67 | 1.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.
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:
| Channel | Monthly spend | Leads | Deals | Cost per deal |
|---|---|---|---|---|
| Storm chasing plus cold calling | $5,500 | n/a | 11 | $500 |
| Cold calling team | $4,300 | n/a | 6 | $716 |
| Door knocking | $8,400 | n/a | 9 | $933 |
| Facebook ads | $5,200 | 190 | 5 | $1,040 |
| Google Ads and LSA | $6,100 | 87 | 5 | $1,220 |
| Shared lead vendor | $4,800 | 32 | 1 | $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.
- Average job value. Signed revenue divided by jobs completed. Use signed, not quoted, because scope changes between the two.
- 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.
- 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.
- 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.
| Metric | Question it answers | Fix when it is bad |
|---|---|---|
| Cost per qualified lead | Is the targeting right? | Negatives, geography, service filters |
| Answer rate | Are we capturing what we bought? | Coverage, after hours, callback speed |
| Cost per booked job | Is the channel profitable? | Channel mix, close rate, job value |
| Gross profit per acquired customer | Is 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.
