How to read your HVAC marketing ROI without a data person

If you run an HVAC or plumbing business, you already know the uncomfortable question: of all the money you spend on Google, Meta, and the local directories, which of it actually comes back as booked jobs? Most owners can’t answer it, not because they’re careless, but because the numbers live in three different places and none of them were built to talk to each other.

Here’s how to think about marketing ROI honestly, without hiring an analyst.

Why marketing ROI is hard for trades shops

The math looks simple, revenue divided by ad spend, but the trap is in the word “attributed.” To divide revenue by spend per channel, you have to know which jobs came from which channel. And that link is weak in most field-service setups:

  • Lead source is self-reported. The “how did you hear about us?” field is filled in by a customer who genuinely doesn’t remember, or by an office manager guessing.
  • Campaign tags are sparse. The clean way to attribute, tagging each job with the campaign that produced it, is rarely done consistently in Jobber or Housecall Pro.
  • Ad-platform IDs don’t match your job IDs. Google’s campaign IDs and your FSM’s campaign records are different systems. They only line up at the channel level (Google vs. Meta vs. TikTok), not job-by-job.

So any single ROI number is built on shaky attribution. The fix isn’t a fancier model, it’s honesty about what you can and can’t know.

Read two views, not one

The most useful thing you can do is look at marketing ROI two ways and pay attention to the gap:

  1. The attributed view: revenue from jobs you can tie to a specific campaign, divided by that channel’s spend. This is precise but understates ROI, because untagged jobs are excluded.
  2. The spend view: revenue attributed through the broader, coarser lead-source field, divided by spend. This is more generous and can over-attribute.

Neither is “the” answer. The distance between them tells you something more valuable: how well your jobs are actually being tagged. A huge gap means your attribution is mostly guesswork, which is itself worth fixing before you make any budget decisions.

The one number worth watching: cost per booked job

If you only track one marketing metric, make it cost per booked job: total ad spend divided by jobs booked in the period. It blends paid and organic demand, so don’t read the absolute number too literally. But the trend is gold: when cost per booked job climbs while your close rate holds steady, your advertising is getting less efficient, and it’s worth a look before you spend more.

The trap: don’t reallocate budget on ROI alone

Here’s the part most “AI marketing dashboards” get dangerously wrong. Say Channel A shows a higher ROI than Channel B today. The tempting conclusion, “move money from B to A”, does not follow. High ROI at current spend tells you nothing about ROI at double that spend. Diminishing returns and attribution noise mean the channel that looks best at $1,000/month can be your worst at $3,000/month.

Marketing ROI is a diagnostic signal, a prompt to look closer, not a prescription to reallocate budget. The right move when a channel’s cost per job spikes is to review the campaigns, not to blindly cut or pour more in.

A simpler way to keep an eye on it

This is exactly what Guidepost was built to handle for trades shops. It reads the numbers already in your Jobber or Housecall Pro and QuickBooks accounts, shows both ROI views with their caveats, watches cost per booked job as a trend, and writes you in plain English when something shifts, every figure traced to its source. It won’t pretend last-click attribution is precise, and it won’t tell you to move budget on a noisy month; that call stays yours.

If that sounds useful, see it on your own numbers: a 20-minute walkthrough on your real data. There’s more on how it works for an HVAC shop.

Written by Guidepost

Guidepost reads the numbers a home-service shop already has across its tools, then sends the few that need attention, each traced back to its source. The whole job is telling a real signal from noise: the line between a number worth acting on and one that’s only worth a closer look. More about Guidepost →

See it watch your numbers

Guidepost reads your Jobber, Housecall Pro, and QuickBooks numbers and tells you what needs attention, in plain English. Want to see the output first? Look at a sample digest.