What Your Cost Per Booked Job Is Really Telling You

Last week, an HVAC business owner in a Facebook group shared something that stuck with me. He uploads his weekly call tracking data to Claude every Monday and gets back a report in seconds: conversion rates, CSR booking performance, lead source breakdown, why calls did not turn into booked jobs. It used to take him hours to pull together. Now it takes minutes.

Here is what that tells me. He already knows his numbers matter. He built a workaround to get them. And he is doing it manually, every week, because nothing in his current marketing stack connects ad spend to booked jobs automatically.

That is the attribution gap. And it is costing DFW HVAC companies real money, quietly, every single month.

The metric everyone tracks — and why it is not enough

Ask most HVAC owners what their marketing is producing and they will tell you leads. How many calls came in. How many form fills. How many clicks on the Google ad.

Those numbers are not useless. But they are incomplete in a way that matters enormously.

Here is why. A lead is not a booked job. A booked job is not a completed job. And a completed job is not necessarily a profitable one. Every step between "someone clicked your ad" and "you deposited a check" is a place where the math changes.

  1. Cost per lead tells you what you paid to get someone's attention.

  2. Cost per booked job tells you what you actually paid to put a tech on a truck.

Those two numbers are almost never the same, and the gap between them is where most HVAC marketing budgets quietly disappear.

What the gap actually looks like

A typical $3M-$5M HVAC company in DFW is spending somewhere between $8,000 and $25,000 a month across Google Ads, Local Services Ads, Angi, and maybe a few other channels. The Google Ads dashboard tells them their cost per click. The Angi dashboard tells them their cost per lead. Neither one tells them their cost per booked job by channel.

So they make decisions based on incomplete information. They keep funding Angi because the lead volume looks decent, not realizing their CSR booking rate on Angi leads is 30% versus 70% on LSA leads. They cut the Google Ads budget because clicks feel expensive, not realizing those clicks convert to booked jobs at twice the rate of anything else they are running.

The numbers that drive budget decisions are the wrong numbers. The ones that actually matter are sitting in three different platforms that nobody has connected.

The real cost of flying blind

Angi leads in the HVAC market run $15-$85 per lead. That sounds manageable. But Angi sells the same lead to three to eight contractors simultaneously. Your CSR is competing against every other company that bought that same contact five minutes ago. When you account for the close rate on those shared leads, the effective cost per booked customer on Angi is closer to $1,400.

Compare that to Google Local Services Ads, where leads cost $45-$85 and go only to you. Or to organic search, where a homeowner who found you through a blog post or your Google Business Profile is already warm and not shopping four competitors at once.

That spread, $1,400 versus $300-$350 per booked customer, is not a rounding error. For a company booking 40 jobs a month, it is the difference between a marketing budget that pays for itself and one that quietly drains the business.

But you can only see that spread if you have closed-loop attribution. If you know, channel by channel, what you paid to get a job on the schedule.

Why closed-loop attribution is hard to build on your own

The data exists. It is sitting in your Google Ads account, your LSA dashboard, your call tracking software, and your field service management platform. The problem is that none of those systems talk to each other by default.

ServiceTitan's Marketing Pro is the closest thing to a real solution in the industry, and it is genuinely useful. But it depends on CSRs correctly tagging every call with the right source, and research shows they get it wrong 30-50% of the time. Even the best tool in the category has a significant human error rate baked in.

Most HVAC companies end up with a patchwork: Google Analytics on the website, a call tracking number they half-set-up two years ago, and a lot of gut feel. The owner knows roughly what they are spending. They have a general sense that Google is working better than Angi. But they cannot tell you their cost per booked job on LSA versus search ads versus organic. Not within a range that would actually change a budget decision.

That gut feel is expensive. Not because instincts are always wrong, but because the data to confirm or correct those instincts exists and is not being used.

What closed-loop attribution actually looks like

The setup is not complicated. CallRail puts a unique tracking number on every marketing channel, so you know exactly which channel drove each inbound call. Google Tag Manager connects your ad platforms to your website so form submissions are tracked back to their source. A Looker Studio dashboard pulls it all together into one place, updated in real time, showing you cost per booked job by channel.

Within 60 days of having this in place, the decisions get easier. You see that your LSA spend is producing booked jobs at $80 each and your Angi spend is producing them at $1,200 each. You shift budget. The math improves. You do it again the next month.

That is what marketing is supposed to feel like: a system you can read, adjust, and trust. Not a black box you keep funding because you are not sure what else to do.

The question worth asking this week

Before your next marketing invoice comes in, try to answer this: what is your cost per booked job, by channel, right now?

Not cost per click. Not cost per lead. Cost per job that actually got on the schedule.

If you can answer that question with confidence, your marketing system is in better shape than most. If you are estimating, guessing, or just not sure where to look, that is the gap worth closing first.

We do a free 20-minute revenue audit for HVAC companies in DFW that starts with exactly that question. No pitch, no deck. Just your numbers and an honest look at where revenue is leaking.

Ashish Joy

Ashish Joy spent ten years in B2B marketing at enterprise software companies, driving go-to-market strategy, content programs, and building marketing systems and growth teams. He co-owns Escaping Flatland with his wife Kaeli.

Next
Next

Your Lead Count Is Lying To You