How to Tell Which HVAC Marketing Brings the Jobs

Perry Lam · FounderPublished

HVAC marketing ROI tracking is the practice of tying each booked job back to the channel that produced the call, then judging that channel in revenue rather than in leads. Three records make it possible: a booking source captured at dispatch, a baseline taken before anything changes, and a window long enough for a quoted replacement to close.

None of the three needs new software. A dispatch board, a spreadsheet and twelve months of history are enough to rank your channels honestly. What follows is where each record comes from, what it can prove, and the two comparisons that will lie to you.

Why a lead count cannot tell you which marketing worked

A lead count cannot rank your channels, because leads convert at different rates and are worth different amounts. ServiceTitan's June 2022 platform data, drawn from more than 3,000 US and Canadian trade businesses, put HVAC call booking at 38% of inbound calls, and shops with fewer than five technicians at 24%. Two channels delivering fifty calls each can produce very different schedules.

The revenue side moves further than the booking side. A channel that brings no-cool diagnostics is not comparable to one that brings heat pump replacement quotes, and averaging them into a single cost per lead hides the distinction. Count booked jobs, split by repair and replacement, with revenue next to each.

The one field that does most of the work

A single booking-source field, filled by whoever answers the phone while the customer is still on it, does more for attribution than any analytics install. Give it a short fixed list rather than a text box, make it required before the job can be scheduled, and review the entries weekly so the list matches what customers actually say.

  • Keep the list under ten options, and write them the way a customer speaks: Google, Google ad, the map, a neighbour, a past job, the van, Facebook, the mailer, called us before.
  • Ask it as a question about how they found you, not which marketing they saw. People answer the first one and guess at the second.
  • Require it at booking, not at close-out. By the time the truck is back, nobody remembers.
  • Read the free-text entries every week for a month and fold the repeats into the list. A list nobody can fit an answer into gets filled with whatever is first.

What a tracking number proves, and what it does not

A tracking number proves which advertised number rang, and nothing beyond that. Give each channel its own number forwarding to the same line, and the call log shows that a call came from the Local Services ad rather than the van, without asking the customer anything. It cannot see the homeowner who called the number on a neighbour's invoice.

Leave the number your customers already have alone. It is on your invoices, your trucks, your Business Profile and every directory that copied it, and changing it in one place and not the others means months of chasing the mismatch. Put tracking numbers where a swap costs nothing: the ad, the landing page, the mailer.

Local Services Ads keep their own count, and it is a count of leads. Google's Local Services help says leads arrive as phone calls and messages sent through the ad, and that you pay only for leads related to your business and the services you offer. As of September 2026, its page on automated lead credits says leads are assessed when the customer first makes contact, that leads found invalid or low quality are not charged, and that charged leads are reassessed over time and may be credited back automatically. The invoice is a record of leads and credits; which of them reached the schedule is still the booking source field's job.

What each record can prove, and where it stops - as of September 2026
RecordWhat it provesWhere it stops
Booking source, captured by the person answering the callWhat the customer says brought themSelf-reported, and people name the last thing they saw
A tracking number per channelWhich advertised number rangBlind to the invoice magnet, the van and word of mouth
The Local Services Ads lead logWhat Google charged you for, net of creditsCounts leads, not jobs; you match them back yourself
Job type and revenue in the field softwareWhat the work was actually worthSays nothing about origin unless the source field was filled
The same month last yearMovement with the season taken outNeeds twelve months of history and a stable service area

The baseline nobody takes and everybody needs

A baseline is the history you write down before the first change, because every later claim is measured against it. Record twelve months of booked jobs and calls by month, average ticket split by repair and replacement, your booking rate, and your review count and rating on the day the work starts. It takes an hour.

Skip it and month three becomes an argument nobody can win. The jobs went up, and the explanations on offer are the new campaign, the heat wave, the technicians you hired and the competitor who retired. A baseline does not settle that alone, but without one there is nothing to settle it with.

Two things that make a month-to-month comparison lie

Season and lag both break the obvious comparison. On the first, ServiceTitan's data report on call booking rates is direct: "HVAC booking rates varied with the seasons, with higher booking rates in shoulder seasons and lower booking rates in summer." The same calls convert differently in April and July, so judge a month against the same month last year.

Lag is the second, and it punishes the channels worth keeping. A heat pump replacement quoted in March can sign in May, so a report that counts only jobs closed inside the month under-credits whatever produces quotes and over-credits whatever produces same-day repairs. Group leads by the month they arrived rather than the month they closed, and leave the window open a full quarter before you rank anything.

What attribution honestly cannot tell you

Attribution cannot tell you which single thing caused a job, because most customers touch several. The homeowner who found you in the map pack, read three reviews, passed your van twice and finally called the number on a neighbour's invoice is one job and four channels, and any system that hands the credit to one of them is guessing. Treat the numbers as direction.

  • Repeat customers and referrals belong in their own line, not spread across the paid channels that did not earn them.
  • A channel can produce searches for your business name and receive no credit for any of them, because the customer arrives by a route that looks organic.
  • Small numbers are noise. Ten jobs in a month cannot separate two channels, however confident the percentage looks.

What unit is the report in, and whose name is on the data?

What unit is the report in: booked jobs and revenue by channel, with the calls that produced them, never a blended cost per lead. Whose name is on the data: yours. The Business Profile, the ad accounts, the tracking numbers and the customer records stay in the client's name, so the history survives the end of the relationship.

What that looks like when it runs is a set of systems rather than a dashboard. A missed call gets a text back within seconds with a booking link, so the call that rang out still reaches the schedule and the log. Web inquiries are answered against real availability. Every unbooked quote is chased on a schedule rather than from memory, which is also what keeps the lag window honest. Those systems run in production for Charlotte businesses, and the report they produce opens with booked jobs by channel, including the channels that are not working.

Sources

  1. ServiceTitan - Data Report: Average Call Booking Rates - Published October 25, 2022 on June 2022 platform data from more than 3,000 US and Canadian trade businesses: HVAC 38% of calls booked, shops with fewer than five technicians 24%, and booking rates higher in shoulder seasons and lower in summer.
  2. Google Local Services Help - Getting started with Local Services Ads - Leads arrive as phone calls and messages sent through the Local Services ad, and advertisers pay only for leads related to the business and the services it offers.
  3. Google Local Services Help - About Automated Local Services Ads lead credits - As of September 2026: leads are assessed when the potential customer makes initial contact, leads determined invalid or low quality are not charged, and charged leads are reassessed over time and may be issued credits automatically. Lead disputes and automatic credits are United States and Canada only.
Questions

HVAC marketing roi tracking, answered.

Do I need call tracking software to do this?

No. The booking-source field and your existing call log cover most of it, and both are free. Tracking numbers are worth adding once you are running more than one paid channel at a time and need to separate them without relying on what the customer remembers. Buy the software when the question it answers is costing you more than the subscription.

How long before I can judge a new channel?

A quarter, grouped by the month the lead arrived rather than the month the job closed. Replacement quotes sign weeks after the call that produced them, so a thirty-day read systematically favours channels that bring same-day repairs. Seasonality is the other reason to wait: compare against the same month last year, not against last month.

Is asking how did you hear about us reliable?

Useful, not reliable on its own. People name the last thing they saw, and the map pack absorbs credit for everything that sent them searching. Run it alongside tracking numbers and the ad platforms' own lead logs, and treat agreement between two records as the signal rather than any single answer.

Keep reading
Guide

What a Missed Call Actually Costs a Charlotte HVAC Company

Every HVAC marketing agency quotes the same missed-call statistic. We went looking for the study behind it. It doesn't exist - so here's the real number, and the math you can run on your own business.

Read
Guide

Google Local Services Ads for HVAC Contractors in Charlotte (2026)

Pay per lead, not per click - but only if you pass Google's screening and answer the phone. What Local Services Ads are for an HVAC company, what moved into Google Ads in August 2026, and the North Carolina license check behind the badge.

Read
Cost guide

What HVAC Marketing Costs in Charlotte: The 2026 Numbers, Compared

Three vendors published an HVAC cost per lead in 2026 and two of them differ by 73% on the same channel. Here is what each one actually measured, what the rest of the budget costs, and which line item a small Charlotte shop should fund first.

Read
Charlotte

The Best HVAC Marketing Agencies for Charlotte Contractors (2026)

Search this query and most of page one was written somewhere else. Eight firms with a real Charlotte-area practice, seven running the same page for other markets, and the URL pattern that tells you which is which - disclosed, because we are on the list.

Read
Charlotte, NC

A marketing agency that actually lives in Charlotte

Mirastart is a marketing agency based in Charlotte, NC - not a city page run from another state. Local SEO, ads, and content built for the Charlotte market.

In Charlotte

Marketing services in Charlotte, NC

SEO, paid advertising, social management, content, local visibility, reputation and lead generation, measured against booked work rather than impressions.

The practice

AI automation for Charlotte businesses

Reliable systems that handle repetitive communication, qualification, scheduling, support and data work, each one shipping with a tested human escalation path.

The practice