Logo
HVAC RESEARCH DIAGNOSTIC TOOLS THE DIAGNOSTIC WHY BUILT ON TENTH THE FIELD REPORT
ORDER THE DIAGNOSTIC — $200 →
Revenue Diagnostics

Cost Per Lead Is a Vanity Metric. Here's the Number That Actually Tells You If Your Marketing Is Working.

Cost Per Lead Is a Vanity Metric. Here's the Number That Actually Tells You If Your Marketing Is Working.
HVAC_INTEL
FIG. DATA_SPEC

Cost Per Lead Is a Vanity Metric. Here's the Number That Actually Tells You If Your Marketing Is Working.

AUDITOR’S OVERVIEW

Your agency sends you a report every month showing that your cost per lead came down from $148 to $119. They frame this as good news—your marketing is getting more efficient. Except the phone isn’t ringing any more than it used to, and the dispatch board looks identical. In the HVAC industry, the report is almost always measuring the wrong thing in a way that makes agency performance look better than it is while obscuring the information you actually need to make budget decisions.

THE BOTTOM LINE

Cost per booked job is the only number that connects marketing spend to revenue. For most contractors, calculating it reveals that the “cheapest” lead sources on paper are often the most expensive in practice once the conversion chain is included. Until you connect ad clicks to completed job invoices, your marketing spend is being managed for the agency’s margin rather than your profitability.

This research dossier breaks down the formula for calculating true acquisition costs and provides the benchmarks for every major lead channel in the trade.

Why Cost Per Lead Misleads

Here is the scenario that illustrates the problem precisely.

You are running Google LSAs at $65 average cost per lead. A competitor is running an aggregator like Angi at $38 average cost per lead. On cost per lead, the competitor looks more efficient. They are generating leads at 42% lower cost.

Now add the conversion chain.

Your LSA leads are exclusive. The homeowner called you directly. Your contact rate is 84%. Your booking rate on contacted leads is 62%. Your cost per booked job: $65 divided by (0.84 x 0.62) = $125 per booked job.

Their Angi leads are shared. The same homeowner contact goes to up to three contractors. Their contact rate is 52%. Their booking rate on contacts is 28% because the leads are lower-intent and more price-sensitive. Their cost per booked job: $38 divided by (0.52 x 0.28) = $261 per booked job.

The cheaper source is producing booked jobs at twice the cost. Cost per lead said one thing. Cost per booked job said the opposite. This is not a constructed example. It is the arithmetic outcome of how these channels work. The HVAC Cost Per Booked Job by Channel article shows this pattern repeated across every major lead source with current benchmark data. The metric contractors are most commonly given is the metric that most reliably produces the wrong conclusion.

The Formula

Cost per booked job has one formula:

Cost per booked job = Cost per lead divided by (Contact rate x Booking rate on contacted leads)

Three inputs. Each one matters.

Cost per lead: Total channel spend divided by total contacts generated from that channel in the period. Contacts means conversations: phone calls answered and spoken with, form submissions reached and spoken with. Not raw call volume. Answered conversations.

Contact rate: Of the contacts generated by the channel, what percentage did you actually reach and speak with? For inbound channels where someone called you, this is your answer rate on calls from that source. For channels with a form-fill or message component, it is the percentage of those you actually had a conversation with.

Booking rate on contacted leads: Of the leads you reached and spoke with, what percentage became scheduled, completed jobs? Not estimates sent. Not appointments set. Completed, invoiced jobs that trace back to that channel contact.

Run that formula for each channel every month. The results by channel rarely resemble the relative cost-per-lead rankings. The channel that looks most expensive on CPL is frequently the most efficient on cost per booked job. The one that looks cheapest on CPL is frequently producing jobs at three times the cost once the conversion chain is included.

Chris Lollini, owner of Reputation Igniter and a marketing advisor for HVAC contractors, stated it directly in an ACHR News analysis: “Cost per lead is often misleading in HVAC. Cost per booked job tells the real story. Clicks, impressions, and rankings are inputs. Revenue is the outcome contractors should evaluate.”

Chris Hunter, principal industry advisor at ServiceTitan, framed the consequence: “A $30 lead that never books is expensive. A $150 lead that turns into a replacement, a membership, and five-star reviews is profitable. The biggest marketing myth in HVAC is that more leads mean more revenue. Quality and booking rate matter far more than volume.”

REVENUE DIAGNOSTICS

Is Your Marketing Budget Hiding Your Real Cost Per Booked Job?

Identify which channels are actually producing booked revenue and which ones are just producing expensive leads.

AUDIT YOUR SPEND →

What the Calculation Reveals About Each Channel

Apply the formula to the major HVAC marketing channels using representative benchmark numbers. These are approximations based on documented channel economics. Your actual numbers will vary based on your market, CSR performance, and answer rate.

Google LSA: Cost per lead $65 to $130. Contact rate 75 to 85% (exclusive leads with high intent). Booking rate on contacts 55 to 65%. Estimated cost per booked job: $95 to $185. This is why LSA consistently appears as one of the most efficient paid channels on a booked-job basis despite its per-lead cost being higher than aggregators.

Google Ads (search): Cost per lead $80 to $200 depending on keyword competition and season. Contact rate 65 to 80% (varies by landing page and response speed). Booking rate 45 to 60%. Estimated cost per booked job: $130 to $280. The wide range reflects the significant impact of landing page conversion rate and CSR booking performance on the final number.

Lead aggregators (Angi, HomeAdvisor): Cost per lead $30 to $60. Contact rate 45 to 60% (shared leads, caller intent is lower). Booking rate 20 to 35%. Estimated cost per booked job: $150 to $300+. Despite the lowest CPL of any paid channel, these consistently produce the highest cost per booked job once the shared-lead dynamics and lower booking rates are applied.

The pattern across all four: CPL ranking and cost-per-booked-job ranking are often inverted. The most expensive lead source on CPL is frequently the cheapest on cost per booked job.

Why the Data Infrastructure Does Not Exist at Most Companies

Calculating cost per booked job by channel requires connecting three data sources that most marketing setups keep separate.

Ad platform data: How much was spent and how many leads were generated, by channel. Usually accessible from Google Ads, LSA dashboard, and aggregator portals.

Call tracking data: Of the contacts generated, how many became actual conversations? This requires call tracking (CallRail or equivalent) that tags calls by source and records whether they were answered.

CRM or field service platform data: Of the conversations, how many became booked and completed jobs? This requires source attribution in your scheduling system: a lead source field on each job that maps back to the channel that generated the contact.

When all three are connected, cost per booked job is calculable in a monthly report. When they are not, you have three islands of data that do not speak to each other. The ad platform shows clicks and leads. The call tracking shows calls and answer rates. The dispatch board shows jobs. Nobody has connected them.

Most agencies manage the ad platform data. Most do not have access to the booking and job completion data. This is the structural reason most agency reports stop at cost per lead: not because they are hiding something, but because the data connection does not exist in their workflow.

Building it requires a one-time setup: call tracking configured to tag calls by source, a lead source field on every job in your CRM or field service platform, and a monthly export that matches spend to booked jobs. Once the infrastructure exists, cost per booked job takes 20 minutes to calculate. Without it, you are operating on CPL and hoping the rest of the chain is working.

The 10% Rule

Every channel needs a defensible cost per booked job threshold. Without one, there is no clear basis for deciding when a channel is working and when it is not.

The rule that holds across HVAC channels and job types: cost per booked job should not exceed 10% of your average ticket for the job type that channel generates.

At $380 average HVAC repair ticket: maximum defensible cost per booked job is $38. At $1,850 average mid-ticket repair job: maximum is $185. At $2,800 average replacement lead set: maximum is $280. At $9,500 average full system replacement: maximum is $950.

Every channel gets measured against the threshold for the job type it generates, not a single blended threshold. A channel producing emergency service calls is held to a different standard than one producing planned replacement leads. This is why the channel comparison analysis segments by job type: the same channel can be defensible for one job type and indefensible for another at the same CPL.

Run this calculation for each channel monthly. Any channel above 10% of average ticket on cost per booked job either gets restructured or gets cut. Any channel below 10% gets more budget.

What to Do This Week

  1. Pick one channel and run the formula. Take your largest paid channel. Pull total spend last month, total contacts generated, contacts you actually reached, and completed jobs sourced from that channel. CPL divided by (contact rate x booking rate) equals cost per booked job. Compare that to 10% of your average ticket for that job type.

  2. Check whether you have call tracking. If you cannot separate calls by source and see which ones were answered, you are missing the contact rate input. CallRail is $45 per month and solves this. Without it, you are estimating the formula instead of calculating it.

  3. Check whether your jobs have source tags. Open your last 20 completed jobs in your field service platform. Does each one have a lead source assigned? If not, you cannot calculate booking rate by channel. Adding “how did you hear about us” to your CSR’s intake script is the manual version while you set up automated tracking.

  4. Run the Marketing Cost Calculator. Enter your CPL by channel, your contact rate, your booking rate on contacted leads, and your average ticket. The tool produces cost per booked job by channel and benchmarks it against the top 25% in your trade.

Frequently Asked Questions

What is cost per booked job and how is it different from cost per lead?

Cost per lead is what you pay to generate a contact. Cost per booked job is what you pay to produce a completed, invoiced job. The formula: CPL divided by (contact rate x booking rate on contacted leads). A $65 LSA lead that books at 52% effective rate costs $125 per booked job. A $38 aggregator lead that books at 15% effective rate costs $253 per booked job. The $65 lead is cheaper on cost per booked job despite being 71% more expensive on cost per lead.

What is a good cost per booked job for HVAC?

The target is below 10% of your average ticket for the job type the channel generates. At $2,800 average replacement lead: below $280. At $9,500 average full system replacement: below $950. At $380 average emergency repair: below $38. The threshold by job type is what determines whether a channel is defensible, not an industry average or a competitor’s number.

Why does my agency only report cost per lead and not cost per booked job?

Most agency reports stop at CPL because that is the data the agency controls. Cost per booked job requires connecting ad data to call tracking data to booking and job completion data in your field service platform. Agencies typically do not have access to the last two data sources. Building the connection requires call tracking configured to tag calls by channel, plus lead source attribution on jobs in your scheduling system.

How does phone performance affect cost per booked job?

Significantly and across all channels simultaneously. Contact rate and booking rate are both inputs to the formula. A 10-point improvement in contact rate reduces cost per booked job by roughly 13% on every channel. A 10-point improvement in booking rate does the same. Combined, moving from average to top-quartile phone performance reduces cost per booked job by 40 to 50% across your entire channel mix at zero incremental marketing spend.

What is the fastest way to know if my marketing is working?

Calculate cost per booked job for each channel you are running and compare it to 10% of your average ticket for the job types that channel generates. Any channel above 10% of ticket needs attention before the next budget cycle. Any channel below 10% deserves more investment. This calculation, done monthly, replaces the CPL column in your agency report as the primary basis for marketing budget decisions.


Built on Tenth is an independent HVAC market intelligence firm providing objective, data-backed diagnostic reporting for HVAC operators. We do not sell advertising, accept referral fees, or offer marketing agency retainers. Our loyalty is strictly to the data.

RELATED MARKET RESEARCH
Built on Tenth Article image
Revenue Diagnostics

HVAC Benchmarks 2026 — The 8 Key Performance Indicators Every Owner Should Know

Eight numbers that tell you whether your HVAC business is performing or just busy. From revenue per technician to map pack position, here is where each benchmark sits and what it signals.

DATE: 2026-03-29 READ →
Built on Tenth Article image
Revenue Diagnostics

HVAC Close Rate Benchmarks — Service Calls, Estimates, and Replacements

A tune-up close rate of 98% and a replacement close rate of 35% can both be true at the same company. One looks fine. The other is leaving 50-65% of replacement revenue on the table. Most owners track one blended number and miss both signals.

DATE: 2026-03-29 READ →
The Next Step

Stop Guessing. See Your Exact Market.

The Market Diagnostic shows who is outranking you, what they are doing differently, and exactly what that gap is costing you in missed calls.

Order The Full Diagnostic — $200 →