HVAC

Cost Per Lead Formula Adwords: HVAC, Plumbing, Roofing

Cost per lead (CPL) is your total ad spend divided by the number of leads that spend produced. If you spent $4,200 last month and got 84 leads, your CPL is $50.

The GRNDWRK Team
·
October 28, 2026
·
10 min read
Key takeaways

Key takeaways

  • Cost per lead equals total Google Ads spend divided by total leads, so $4,200 spent for 84 leads is a $50 CPL.
  • Define what counts as a lead per trade, such as calls over 60 seconds or forms with a valid address, and count it the same way every month.
  • Cost per booked job, not CPL, decides whether Google Ads is profitable: $4,000 in spend with 20 booked jobs is $200 per job.
  • Slow response inflates effective CPL because leads you paid for die at voicemail, so recovering 25% of lost leads can drop effective CPL from $100 to about $81.
  • A high CPL is still profitable when cost per booked job stays well under your margin per job, like a $150 CPL on a $12,000 roof replacement.

The cost per lead formula for Google Ads is your total ad spend divided by your total leads: spend $3,000 and generate 60 leads, and your CPL is $50. The hard part is deciding what counts as a lead, because a 12-second abandoned call and a booked $400 job are not the same thing. This guide walks the math from ad spend to CPL to cost per booked job, with worked examples for HVAC, plumbing, and roofing.

What is the cost per lead formula for Google Ads?

The formula: spend divided by leads

Cost per lead (CPL) is your total ad spend divided by the number of leads that spend produced. If you spent $4,200 last month and got 84 leads, your CPL is $50. The hard part is counting leads correctly, not doing the math. A lead is a phone call, form fill, or message you can act on, and Google's conversion tracking for calls and form submissions is what feeds those numbers into your account (Google Ads Help). If call tracking is off, your CPL is fiction.

Worked example: $4,200 spend, 84 leads

Say your HVAC shop spent $4,200 across search campaigns and booked 84 leads: 61 tracked calls, 23 form fills. That is $4,200 ÷ 84 = $50 per lead. If only 50 of those calls were real leads and the rest were wrong numbers and spam, your true CPL is $84. Count honestly, because everything downstream (booked jobs, revenue per lead) depends on it. Tools like GRNDWRK plug into your CRM through integrations so leads get counted and answered fast, but the formula above stays the same.

How do I find my lead count and spend in Google Ads?

Pulling spend and conversions from the campaigns tab

Open Google Ads, click Campaigns, and set your date range to match the period you want to measure. Total spend is in the Cost column. For lead count, use the Conversions column, not clicks or form views, and make sure the conversion action you're counting is the one that actually matches a lead (more on that in the next section). If you run search, Local Services Ads, and Performance Max, check each campaign separately, because a blended number hides which campaign is draining budget.

Why call length settings change your lead count

Google counts a call as a conversion once it passes a minimum duration you set, often 30 or 60 seconds. A 25-second call from someone with a burst pipe gets excluded, which makes your lead count look worse than it is. Check Settings > Conversions for each call action before you trust the number.

Reconciling Google Ads numbers with your CRM

Google will report leads your CRM never received, and vice versa, because of missed calls, spam, and tracking gaps. Export the Google Ads conversions and compare them to booked and unbooked leads in ServiceTitan, Housecall Pro, or Jobber for the same window. If the gap is large, your real cost per lead is higher than the platform says, and speed of response is usually where those leads die. See how response workflows map to your trade at https://www.thegrndwrk.co/industries.

What counts as a lead in home services advertising?

Calls, forms, and booked jobs are not the same lead

Google counts a call as a conversion, but a conversion is not a booked job. Before you trust any CPL number, decide what a lead means for your shop and count it the same way every month. Otherwise you are comparing spend against noise.

HVAC, plumbing, and roofing lead definitions

TradeHonest lead definition
HVACCall over 60 seconds, or form with valid address and service need
PlumbingCall over 60 seconds mentioning an active problem (leak, no heat, clog)
RoofingForm or call with property address and inspection request

Emergency trades skew toward calls; roofing skews toward forms and scheduled inspections. Pick one definition per trade and stick to it.

Spam and wrong-number calls that inflate your numbers

Google's call reporting lets you set a minimum call length before a call counts as a conversion, so a 5-second wrong number does not pollute your CPL. You can adjust that threshold in Google Ads call reporting settings. Long calls that never book still count as leads here, which is why response speed matters. If your front desk answers in minutes, more of those paid leads turn into jobs; if calls sit in voicemail, your real cost per booked job climbs. That gap is what tools like GRNDWRK (https://www.thegrndwrk.co) exist to close.

What is a good cost per lead for HVAC, plumbing, and roofing?

Why benchmarks vary by trade and season

There is no single good CPL. A roofing lead in Phoenix in October costs more than a plumbing lead in a small Midwest market because search volume, ticket size, and competition differ. Emergency AC repair in July is a different auction than furnace tune-ups in November. Expect CPL to swing 2-3x across seasons in the same account, and treat any benchmark as a starting range, not a target. The honest check is your own account history month over month.

Judging CPL against job value, not against a chart

The number that matters is not CPL alone. It is CPL against average job value and close rate. A $150 lead that closes one in three on a $6,000 replacement job is cheap. A $40 lead that never answers the phone is expensive, because you already paid for it and the lead you already have is the cheapest lead you will ever get.

That is why response time changes the math: a lead contacted in seconds instead of the industry-average 47 hours closes at a higher rate, which lowers your effective cost per booked job even if CPL stays flat. We break that down further in our guide to speed to lead. Judge CPL by revenue per lead, not by a chart.

How does CPL differ from cost per booked job?

CPL tells you what a lead costs. Cost per booked job tells you what revenue actually costs you, and that is the number that decides whether Google Ads is worth running. A shop can have a $80 CPL and still lose money if only one in ten leads books.

The booked-job formula with a worked example

Cost per booked job = total ad spend ÷ booked jobs. If you spent $4,000 last month and booked 20 jobs, that is $200 per booked job. A $600 average ticket means each job still clears a margin after tech pay and truck costs. The same spend with 8 booked jobs is $500 per job, and the campaign is probably underwater.

Where leads leak between click and booked job

Leads die at three points: no answer, slow callback, and no follow-up after a voicemail. Industry data shows home services leads respond fastest to the first contact, and response time decays conversion quickly (LocaliQ home services benchmarks). Missed after-hours calls are the biggest silent leak for owner-operators without a front desk.

GRNDWRK attacks that leak directly: it responds in seconds and follows up until booked, so the CPL you already paid for converts at a higher rate. Pricing starts at $1,000/mo plus setup (https://www.thegrndwrk.co/pricing), so the math only works if your leak is costing more than that. Run your own numbers before assuming.

How can faster lead response lower your effective cost per lead?

The math of leads lost to slow response

Your CPL formula only counts leads that contact you. It ignores the ones you paid for and lost before you ever spoke to them. If a caller gets voicemail and dials the next shop on Google, that lead still shows in your ad spend but never shows in your booked jobs. A shop paying $80 per lead that books 40% of responded leads but misses 30% of calls after hours is effectively paying closer to $115 per lead it keeps.

Recalculating effective CPL after fixing response time

Run the formula with a new denominator: leads you actually engaged, not leads Google counted. If faster response and missed-call text-back recover 25% of previously lost leads, $3,000 in spend against 37 engaged leads instead of 30 drops your effective CPL from $100 to about $81. That is the same result as cutting ad spend, without touching your campaigns. This is the problem GRNDWRK targets: respond in seconds and follow up until booked. Be honest with yourself about the limit, though. Response time cannot fix leads that never wanted the job, and no automation books work your calendar cannot fit.

When is a high CPL still profitable?

CPL against average ticket: a roofing example

A $150 CPL sounds painful until you run the job-value math. If your average roof replacement is $12,000 and you close one job from every ten leads, ten leads cost $1,500 and return $12,000. Your cost per booked job is $1,500, and even at a 40% gross margin you clear roughly $3,300 on that job. Paying more per lead is fine as long as cost per booked job stays well under your margin per job.

When to cut CPL vs when to scale spend

Cut CPL when close rates are healthy and the leak is response time. Harvard Business Review's study of 2,241 US companies found most firms took far longer than an hour to respond, and slow responders lost leads that faster competitors booked. If you answer in minutes and still lose jobs on price, scale spend instead and protect your response speed.

How do you fix a CPL that is too high?

Campaign and targeting fixes

Start with the cheapest lever: tighten geography to the zip codes you actually serve. Every click from a county two hours away is spend with zero booked-job potential. Next, check your call settings. If you run call-only ads or call extensions with no one answering after hours, you are buying leads that go straight to voicemail. Missed-call text-back or an after-hours answering flow recovers those without raising spend.

Then audit search terms weekly. Add negative keywords for jobs you do not take, and shift budget toward the campaigns producing leads your CSRs can actually book. A lower CPL on leads that never book is worse than a higher CPL on ones that do.

Recovering leads you already paid for

The fastest CPL fix costs nothing in ad spend: answer and follow up on every lead you already bought. Speed to lead decides who wins the job, and most shops lose it at the voicemail stage, not the auction stage. Missed calls, form fills nobody called back, and after-hours leads are all paid leads leaking out of your funnel.

This is where a tool like GRNDWRK earns its keep. It responds in seconds, not the industry-average 47 hours, and follows up until the lead is booked, plugging into the Jobber, Housecall Pro, or ServiceTitan you already run. Run your own numbers honestly: if response time is your leak, lead recovery beats any bidding tweak. If your targeting is the leak, fix the campaign first.

See what slow follow-up is costing you
Remy runs a free 60-second audit and shows you exactly where leads are leaking, and what it costs you each month.
Get your free audit

How do I calculate cost per lead if I run Google Ads and LSA together?

Add the spend from both programs, then divide by leads from both. Keep them separate first: Local Services Ads report leads near the booking level, while Google Ads counts calls and forms. Pull each campaign's cost and conversion count, combine the totals, and divide. A blended number hides which channel actually produces bookable work.

Is a phone call that doesn't book still a lead?

Yes, if it was a real prospect with a service need, not spam or a wrong number. A lead is a contact you can act on; a booked job is a separate stage. Count honest leads in your CPL, then track close rate separately, because a lead that never books still cost you money and points to a response or follow-up problem.

What is the average cost per lead for a plumbing company?

There is no reliable single average. Plumbing CPL swings with market size, competition, and season, and emergency leak calls auction differently from water heater installs. Expect swings of 2-3x across the year in the same account. Judge your number against your own history, your average ticket, and your close rate, not against a benchmark chart.

How many leads should I get per $1,000 in ad spend?

That depends entirely on your CPL. At $50 per lead, $1,000 buys 20 leads; at $150 per lead, it buys about 7. Work backward from your average job value and close rate instead of chasing a lead count. A $40 lead that never answers costs more per booked job than a $150 lead your team contacts in minutes.

Does cost per lead include Angi and Thumbtack spend?

Only if you include it deliberately. CPL is your formula, so define the denominator: ad spend only, or all lead-generation spend. Most owners should calculate Google Ads CPL separately, then a blended CPL across every paid channel including Angi and Thumbtack. Mixing them into one number without labeling it hides which channel actually produces booked jobs.

Cost Per Lead Formula Adwords: HVAC, Plumbing, Roofing