Why This HVAC Shop Stopped Tracking Clicks and Started Tracking Booked Jobs by Keyword
An 8-truck HVAC shop in the Midwest thought a $35 cost per lead was winning. When they rebuilt tracking around cost per booked job by keyword, three top spenders turned out to be losing money.
Key takeaways
- A healthy HVAC PPC benchmark is $75 to $175 per booked job, not cost per lead
- The average HVAC company books only 46 percent of inbound calls while top operators hit 85 percent, which distorts any CPL-only view of performance
- Invoca 2025 data shows 37 percent of digital marketing calls are leads and 46 percent of those leads convert on the call
- Most HVAC PPC accounts waste 40 to 60 percent of budget, most of it masked by a low CPL on a broken keyword
Contents
- 01The $35 CPL was lying
- 02What happens when you tag every call
- 03The 46 percent booking rate the industry hides
- 04What the reports finally showed him
- 05The hidden CSR gap
- 06Why most HVAC shops stay on CPL dashboards
- 07The first move is still just the search terms report
- 08What this means for your shop
- 09Sources
- 10Frequently Asked Questions
The owner of an 8-truck HVAC shop in Ohio was pulling his monthly Google Ads report the way every owner does. Spend $12,400. Leads 354. Cost per lead $35. The number was sitting at the agency benchmark, so he called it a win and went back to running the shop.
Then his service manager quit in February and the owner took over dispatching for four weeks. Sitting on dispatch, he realized something the report had been hiding: most of those 354 leads never became jobs. Some were wrong numbers. Some were existing customers. Some were wholesalers. Many never answered the callback. The real number of booked jobs was 83.
Cost per booked job was not $35. It was $149. And when he broke it down by keyword, three of the top-spending keywords were over $380 per booked job. He was spending the most on the keywords losing the most money.
The $35 CPL was lying
The metric every agency shows owners in monthly reviews is cost per lead. It is comfortable because it trends down with volume. Generic keywords produce lots of cheap clicks and lots of form fills, so they dilute the average CPL beautifully. That is what had happened to this shop.
Front Range Momentum's 2025 PPC guide put the pattern in one line: "a healthy benchmark for most HVAC operations on Google Ads is $75 to $175 per booked job, depending on market size and ticket average." [Front Range Momentum] The same piece calls out that "if you're paying $35 per lead and closing 20 percent of them, your real cost is $175 per booked job."
That is almost exactly what happened here. The $35 CPL looked like a win. The real close rate to booked job was 23 percent. The real cost was $149. He had been paying industry-average-looking money while actually running industry-average-bad numbers.
Text Sully: "cost per booked job by Google Ads campaign for last quarter, compare against cost per lead for the same period"
What happens when you tag every call
The owner spent a weekend building a simple workflow. Every inbound call from a Google Ads tracking number got tagged in CallRail with the keyword and campaign that triggered it. Every call then got tagged in his CRM with one of four dispositions: booked, qualified not booked, not qualified, or bad call.
He did that for 60 days. Then he pulled the report by keyword.
The CallRail 2026 reporting docs describe the exact workflow: "Unanswered calls report identifies the number of missed calls on each day of the week, as well as within each hour of the day," and custom call-log reports tie keywords to dispositions on the back end. [CallRail] The data is there. Most contractors just never pull it.
What he found in his 60 days of tagging:
- "ac repair near me" booked at 31 percent, cost per booked job $89
- "air conditioning installation" booked at 14 percent, cost per booked job $412
- "hvac contractor" booked at 8 percent, cost per booked job $680
- "emergency ac repair" booked at 44 percent, cost per booked job $64
- "heating cooling" booked at 6 percent, cost per booked job $790
The three most expensive keywords per booked job were three of his top five keywords by spend. He was buying volume in terms that did not convert.
Text Sully: "rank our Google Ads keywords by cost per booked job, flag the ones over $200"
The 46 percent booking rate the industry hides
The gap between cost per lead and cost per booked job comes down to booking rate. How many phone calls from leads actually become scheduled jobs on the calendar.
Meridian Gable's 2026 HVAC analysis pegged the industry-average booking rate at 46 percent. Top operators hit 85 percent. [Meridian Gable] That is the range. A 46 percent shop and an 85 percent shop running the same ads at the same CPL have almost a 2x gap on cost per booked job. Neither one sees it in the CPL report.
The Ohio shop was at 47 percent. Right at the industry average. Which meant the work to fix cost per booked job was not just in the keywords. It was also in the phone room.
Tyson Chen from Avoca, speaking on the Owned and Operated podcast, walked through exactly this compounding problem: CSR answer rate, qualification, and booking discipline each drop a little and the blended CPL looks fine while the booked-job economics break. [Owned and Operated #173] Sam Preston of Service Scalers, also on the show, hammered the same point: owners who do not test and keep bidding on the same high-volume keywords "waste budget and keep you from scaling efficiently."
The owner in this story added call-coaching to the CSR team. Booking rate went from 47 to 61 percent in six weeks. Cost per booked job dropped another $28 before he even touched a keyword bid.
What the reports finally showed him
Once cost per booked job was the headline number, the monthly agency report stopped looking like a win. Instead of "$35 CPL, 354 leads," the dashboard said:
- $12,400 spent
- 83 booked jobs
- $149 cost per booked job
- Top keyword by spend: $680 per booked job
- Bottom keyword by spend: $64 per booked job
The owner had two levers. Kill or cap the $680 keyword. Double down on the $64 keyword. Both levers require knowing the number, which requires tagging every call, which requires more than a CPL dashboard.
This is the pattern Invoca's 2025 report surfaces across home services: 37 percent of calls from digital marketing are leads, 46 percent of those leads convert on the call, and Google Ads Paid Search runs a 39 percent lead rate from answered calls. [Invoca] None of that shows up in a CPL report. All of it shows up once you tag.
Text Sully: "last month's Google Ads cost per booked job, broken down by keyword and hour of day the call came in"
The hidden CSR gap
Halfway through the keyword audit, the owner noticed something else. Booked-job rate varied by CSR by as much as 19 percentage points. One CSR was at 72 percent booked rate. Another, handling the same lead types on the same shifts, was at 53 percent.
That is a dispatch problem dressed up as a marketing problem. If the owner had moved all his ad spend off the "hvac contractor" keyword and into "emergency ac repair," he still would have been leaking 19 points of booked jobs on every call the weak CSR took.
The Hatch 2024 case study on CMC Service Experts (a home services shop in the Northeast) tracked exactly this chain. Outreach inside five minutes boosted their Angi ROI from -0.31 percent to 269 percent inside two months, an extra $99,000 in revenue in the window. [Hatch] The ad channel did not change. The response layer did.
That is the other half of cost per booked job. Fast response, disciplined qualification, and CSR coaching compound against the same lead pool.
Why most HVAC shops stay on CPL dashboards
The honest answer: because CPL looks good and cost per booked job is hard. CPL is one number and one data source (the ad platform). Cost per booked job needs three data sources joined: ad platform, call tracking, and CRM.
Most agency dashboards stop at the ad platform because that is what they own. CallRail and WhatConverts own the call data. The CRM owns the booking outcome. No single tool unifies them by default.
WhatConverts' teardown on HVAC CPL makes the point precisely: "both platforms support call tracking, but integration with popular CRM systems for clean data transfer" is where the value actually lives. [WhatConverts] Most shops have the tools. Very few have the integration. That is why CPL stays in the headline and cost per booked job lives in a spreadsheet the owner runs once a year when somebody complains.
Text Sully: "for each Google Ads keyword last quarter, join spend with CallRail calls and jobs booked in our CRM"
The first move is still just the search terms report
Even before unifying tools, the owner in this story had one fast win. He pulled the Google Ads search terms report and paused every term with over $300 in spend and zero booked jobs. That alone freed $2,100 of the $12,400 monthly budget.
Improved and Grow's 2025 roofing and HVAC guide repeats the rule one more time: "best practices include developing a comprehensive negative keyword list to prevent wasted spend and monitoring search term reports weekly to continuously refine targeting." [Improve & Grow] This is boring, repeatable, and the single biggest move for most contractor accounts.
The second move was turning off "hvac contractor" as a broad-match keyword entirely. Volume dropped 18 percent. Booked jobs went up 9 percent because the remaining budget chased queries that actually converted.
See the linked roofing keyword post for the full audit workflow on a sister account. The pattern is identical across trades.
What this means for your shop
Stop reporting cost per lead as the headline. Report cost per booked job by keyword by campaign, and do it monthly at the slowest.
That one change forces three downstream behaviors. You will start tagging every inbound call with its keyword. You will start dispositioning every call in the CRM. And you will finally see which keywords fund the shop and which ones bleed it.
Once you can see the numbers per keyword, the decisions become obvious. Kill the worst. Cap the middle. Double down on the best. Most shops recover 20 to 40 percent of ad spend inside the first 60 days of this discipline, per the Webology HVAC wasted-spend analysis. [Webology]
Cost per booked job is what runs in every HVAC KPI an owner should track. CPL is for the agency report. Pick which one you want to grow on. The shop that grew 27 percent in six months in this story did not add a single new channel. They just swapped which metric went on the dashboard. That is also why unified keyword-to-booked-job views live in the broader bucket of questions no dashboard will answer until someone forces the data to join.
Sources
- Front Range Momentum: Cost Per Booked Job, The Only Marketing Metric That Matters
- Meridian Gable: HVAC Booking Conversion Rate
- Invoca 2025 Home Services Call Conversion Benchmarks Report
- CallRail Reports Overview
- WhatConverts: CallRail vs WhatConverts
- Owned and Operated #129 with Sam Preston
- Hatch CMC Service Experts Case Study
- Webology: Top 5 Reasons HVAC Contractors Lose Money on Google Ads
Frequently Asked Questions
6 questions home service owners actually ask about this.
01What is a good cost per booked job for HVAC Google Ads?
$75 to $175 per booked job for most markets per Front Range Momentum's 2025 benchmark. Luxury markets and high-ticket installs can justify $200 to $400. Anything over $400 sustained means the keyword, the landing page, or the CSR phone room is leaking money.
02How do I track booked jobs back to a keyword?
Three connected tools: Google Ads (keyword and campaign), CallRail or WhatConverts (call tracking with keyword attribution), and your CRM (job disposition). The join key is the inbound phone number. Both CallRail and WhatConverts push the keyword into your CRM via integration.
03Why is cost per lead misleading for HVAC marketing?
Because booking rate varies wildly by keyword, by CSR, and by call source. A $35 CPL keyword that books 14 percent and a $35 CPL keyword that books 44 percent produce massively different cost per booked job. CPL hides all of it.
04What is the industry-average HVAC booking rate on inbound calls?
46 percent across the industry per Meridian Gable's 2026 analysis. Top-performing shops reach 85 percent. Most of the gap is CSR qualification discipline and response speed, not ad spend.
05Should I use CallRail or WhatConverts for HVAC call tracking?
Both work. CallRail's pricing starts at around $45 per month. WhatConverts ties lead data to revenue attribution more tightly and tends to be preferred by shops already measuring cost per booked job. Pick the one your CRM integrates with cleanly.
06How much of my HVAC ad budget is typically wasted?
Gatorworks and Webology both publish estimates of 40 to 60 percent wasted spend across most HVAC PPC accounts. Search term cleanups, match-type tightening, and CSR coaching together recover 20 to 40 percent inside 60 days for most shops.
See Sully in action
Sully is the pre-built AI for home service shops. Connect your CRM, email, and phone system in minutes and the agents run on your real data.