The fair way to judge an HVAC marketing agency is in your own field service software, where every booked call, finished job, replacement estimate, sold system and maintenance agreement carries the source that brought it. Read those counts month by month against the same month a year earlier, because a heat wave or a mild winter moves your phones whatever the agency does.
Quick answer
- Open your field service software (the program that books, dispatches and invoices your jobs) and check that every job from last month has a source.
- Give every channel the agency runs its own tracking phone number, so the number dialed sets the source and nobody has to guess.
- Each month, pull five counts per source: booked calls, completed jobs, replacement estimates, sold systems and new maintenance agreements.
- Set each month beside the same month last year, never beside the month before it.
- Keep the Google Ads account and the tracking numbers in the company's name, with your own login as Admin.
Why should your software keep score instead of the agency's dashboard?
An agency's dashboard shows clicks, rings and form fills, because that is all its tools can see. Everything after the ring happens in your office. A CSR (customer service representative, whoever answers and books) puts the call on the board or doesn't, a tech finishes the job, and a replacement visit ends with a signature or without one. The gap between Google's count and your own records has its own post.
| Count | What it means | Recorded when |
|---|---|---|
| Booked calls | Calls and web requests that got a time slot | The CSR books the job |
| Completed jobs | Booked jobs a tech finished and invoiced | The invoice closes |
| Replacement estimates | Visits to quote a new system | The sales visit is booked |
| Sold systems | Estimates the homeowner signed | The estimate is marked sold |
| Maintenance agreements | New service plans signed | The plan is sold |
Keep repairs and replacements in separate rows, since a sold system and a repair call pay very differently. Agreements pay out over years, and reports can miss that. Jobber, for example, says its lead source report focuses on the first revenue a lead earns (Jobber, checked 2026-10-04). So the count of new plans per source is what credits the agency for them.
How do you stop the agency from grading its own work?
Four pieces, all held by you.
A source on every job. Housecall Pro tracks lead sources on customers, jobs and estimates, and reports jobs by job lead source under Reporting, then Reports (Housecall Pro, checked 2026-10-04). Jobber keeps a lead source on each client and can fill it in from UTM tags, the short labels on the end of a link that name where a click came from (Jobber, checked 2026-10-04). ServiceTitan calls it a campaign, and a CSR attaching one to a call attaches it to the job (ServiceTitan, checked 2026-10-04). These three are examples, not recommendations; how field service software fills the source in covers each in more detail.
A phone number per channel. ServiceTitan advises a unique tracking number for each campaign if you want accurate return figures (ServiceTitan, checked 2026-10-04). In its Marketing Pro add-on, when someone dials a number attached to a campaign, the incoming call shows the campaign and the booking screen prompts the CSR to book the job under it (ServiceTitan, checked 2026-10-04). Hold the numbers in an account the company owns, so they stay when the agency goes.
One owner for the source list. ServiceTitan ships with Manual Marketing Attribution on, which lets a CSR choose the campaign for a call. With Marketing Pro, switching it off under Settings, Marketing Pro, Digital Ads lets the system pick the campaign itself, using dynamic number insertion on your website, which shows each visitor a phone number tied to how they arrived (ServiceTitan, checked 2026-10-04). Either way, the agency reads reports; it does not edit sources or decide which number maps to which source.
Booked jobs sent back to Google. Without this, the ads learn to chase rings. ServiceTitan says its Marketing Pro Ads links ad spend to booked jobs and revenue, and its Ads Optimizer uses revenue and job data to steer Google's bidding (ServiceTitan, checked 2026-10-04). Without such a feature, an upload from your software to Google Ads does the same. Google calculates its main conversion columns by the time of the click, not of the conversion (Google, checked 2026-10-04), so a system sold in March from a January click lands in Google's January.
That wiring is the part I set up for owners, as a tracking specialist rather than an agency. From October 2023 to September 2025 I bought Google Ads and Meta Ads, nearly $700K in spend, so I know what an ad account sees and what only the office knows.
Which months can you fairly set side by side?
Set January beside last January and July beside last July. Heating and cooling searches are different markets, and how HVAC demand rises and falls through the year charts the swing. Google Ads Keyword Planner estimates for the US, October 2026, give "ac repair near me" an average click of $46.82 (top-of-page range $13.98 to $100.00) and "furnace repair" $28.38 ($10.55 to $68.76); local prices differ, and none of this is what a given company will pay. Cooling searches and heating searches start from different click prices before the agency touches anything.
Then add a weather gauge: a source the agency never touches, such as existing customers who dialed your main line, provided the agency does not email or text them. It climbs in a cold snap and sags in a mild spell. Divide the agency's change by the gauge's change, and what remains is closer to the agency's own doing.
Date every count by the first call, and read each month again at the end of the next, since replacement sales trail the estimate. Note what else changed: prices, a new tech, a truck off the road, the budget.
How does a year read with the weather taken out?
Illustrative: the four-truck HVAC company below is invented, as is each figure in its table, and no client's records sit behind any of them. The owner switched agencies last fall and kept the same tracking numbers.
| From the software | Jan, last year | Jan, this year | Jul, last year | Jul, this year |
|---|---|---|---|---|
| Ad spend plus agency fee | $9,000 | $10,500 | $14,000 | $16,000 |
| Booked calls, agency numbers | 60 | 84 | 150 | 165 |
| Booked calls, existing customers on the main line (gauge) | 80 | 96 | 140 | 168 |
| Replacement estimates, agency numbers | 14 | 20 | 30 | 33 |
| Sold systems, agency numbers | 5 | 7 | 12 | 10 |
| New maintenance agreements, agency numbers | 6 | 9 | 10 | 14 |
Season-adjusted change = (agency booked calls this year ÷ last year) ÷ (gauge this year ÷ last year).
- January: (84 ÷ 60) ÷ (96 ÷ 80) = 1.40 ÷ 1.20 = 1.17, about 17 percent more booked calls than the cold explains.
- July: (165 ÷ 150) ÷ (168 ÷ 140) = 1.10 ÷ 1.20 = 0.92. The raw count rose 10 percent and still fell about 8 percent short of what the heat alone predicts.
Spend per sold system = ad spend plus fee ÷ sold systems. It counts the spend that bought repair calls too. January went from $9,000 ÷ 5 = $1,800 to $10,500 ÷ 7 = $1,500. July went from $14,000 ÷ 12 = $1,166.67 to $16,000 ÷ 10 = $1,600.
Close rate = sold systems ÷ replacement estimates. January held: 5 ÷ 14 = 36 percent, then 7 ÷ 20 = 35 percent. July dropped from 12 ÷ 30 = 40 percent to 10 ÷ 33 = 30 percent. The agency's numbers brought three more estimate visits in July, and fewer of them sold. New agreements rose in both months, 6 to 9 and 10 to 14, each with later visits a first-revenue report will not credit. January belongs to the agency; part of July's question belongs to whoever quotes replacements.
How much of the agency's result happens in your own office?
Most steps between a ring and a signed estimate are yours, and splitting them shows which side moved.
| Step | Who controls it | Ratio to watch |
|---|---|---|
| The phone rings on an agency number | The agency | Calls per $1,000 of spend |
| Someone picks up | Your office, or the answering service after hours | Answered ÷ rung |
| The call gets a time slot | Your CSRs | Booked ÷ answered |
| The tech finishes the job | Dispatch and techs | Completed ÷ booked |
| A replacement sells | Your salesperson or tech | Sold ÷ estimates |
Set the agency's lines beside the main line. If both book worse in July, look at the office: a full board, a CSR pushing calls to next week, unanswered evenings. If only the agency's callers book worse, ask what they wanted. Callers after work you do not do, or from outside your service area, point to the agency's targeting. A few recorded calls settle it faster than any report.
What should the contract and the logins say?
The Google Ads account should be the company's, with your own login at Admin, the only access level that can give access, change access levels and unlink manager accounts (Google, checked 2026-10-04). The agency works through its manager account, a separate Google Ads account for managing many client accounts in one place, which Google requires for monthly invoicing (Google, checked 2026-10-04). So if the agency pays Google and bills you, ask now how billing moves to your card.
In the contract, read the term, the notice period, the fee shown apart from ad spend, and a written list of what comes back on exit: tracking numbers, website, past reports. Your field service software never changes hands; the agency gets a reporting login.
What do you bring to the monthly review?
- From your software: the five counts by source and the weather gauge, for last month and the same month last year, with the season-adjusted change and spend per sold system worked out.
- Per channel: what did the agency change in budget, ads or service area, and when?
- How many booked or sold jobs reached Google Ads last month, and did any upload fail?
- Which searches took the spend: replacement or repair, heating or cooling, your company's own name or new customers?
- What is the plan for the next shoulder month, the spring or fall weeks between peaks, when tune-ups and new agreements fill the board?
Tags
Frequently asked questions
How much should an HVAC company spend on marketing?
No percentage I can source fits every shop, so price it by the season. In a peak month the limit is how many jobs your techs can run, and spend past a full board only buys calls you push to next week. In a shoulder month the limit is what one booked job still leaves after parts and labor. Set both from your own invoices and let the agency spend up to whichever comes first.
Is hiring an HVAC marketing agency worth it?
It is worth it when spend plus fee, divided by the sold systems or finished jobs that came in on the agency's numbers, stays below what each of those jobs leaves you after parts and labor. Count the jobs in your field service software rather than in the agency's report, and read each month against the same month a year before. Give it one full heating or cooling peak before you decide.
Should my marketing agency get a login to ServiceTitan or Housecall Pro?
A login that can read reports by source helps it do the job. Keep the source list, the tracking numbers and the job records editable only by your office. In ServiceTitan a CSR can pick the campaign on a call by default; with Marketing Pro that can be switched off so the system assigns it.
How long should I give a new HVAC marketing agency before judging it?
Judge the setup in the first month and the results only once you can set a month beside the same month a year earlier, which takes at least one heating or cooling peak. In month one, check that every job has a source, that each channel rings on its own number and that booked jobs reach Google Ads. A month with blank sources cannot be graded at all.
Can an agency see which ads sold a new AC system?
Only if the sold estimate carries the source of the first call and the sale goes back to Google Ads with the click it came from. Some field service programs do this themselves; ServiceTitan's Marketing Pro Ads, for one, ties ad spend to booked jobs and revenue. Otherwise an upload from your software does it, and Google's main conversion columns then report each sale on the day of the click that led to it.