How to Measure Marketing ROI

Marketing ROI requires clean tracking, conversion definitions, and business context.

marketing ROIreturn on investmentmarketing attributionconversion trackingcost per leadcost per acquisition

Before you scale spend, a home-service owner needs to understand one thing: which channels put money in the bank, not clicks on a dashboard. Marketing ROI is not about reach or search rankings. It is a simple equation: the profit marketing generated, divided by what you spent on marketing. If the math says no, we say no.

This article is about how an HVAC, plumbing, cleaning, painting, or remodeling business should actually measure the return on its advertising. No hype, no invented numbers. Just the chain you can verify against your own CRM and bank statement.

The chain that actually matters

Advertising does not create profit directly. It starts a chain, and profit only shows up at the end. Every link has to be measured:

  • CPL (cost per lead) — what you pay for one inbound call or form.
  • Close rate — the share of leads that turn into a booked job.
  • Cost per booked job = CPL ÷ close rate. If a lead costs $40 and you close 1 in 4, a booked job costs $160.
  • Average ticket × gross margin = gross profit per job. A $1,200 ticket at 45% margin is $540 in profit before overhead.
  • Payback = gross profit per job ÷ cost per booked job. And the headline: ROI = profit ÷ marketing spend.

The core idea: you can only optimize what you see end to end. A cheap lead with a low close rate is an expensive job. An expensive lead with a high close rate and a solid ticket is profit.

Marketing spend Leads (CPL) Booked jobs Gross profit ROI Advertising creates profit only at the end of the chain Husky Digital
Measure each link separately: a gap in any one of them eats your ROI.

Why clicks, reach, and rankings are vanity metrics

Impressions, clicks, “reach,” and search position look nice in a report, but for a service business they are vanity metrics — numbers that go up without proving you made money.

10,000 impressions don’t pay the crew. A #1 ranking doesn’t mean the phone rings. You can double traffic and still go backwards if leads don’t turn into booked jobs at a healthy ticket. These metrics are useful as diagnostics (where the funnel leaks), not as the goal. The goal is profit per dollar invested.

Attribution: tie revenue back to the channel

To calculate ROI by channel, you need to know where each job came from. For a service business this is easier than it sounds — four simple tools:

  • Call tracking. A dedicated number per channel — Google Ads, LSA, organic, Meta. Each call ties straight to its source.
  • Form tracking. Website forms pass source, campaign, and keyword into the CRM.
  • A source field in the CRM. Every lead and every job is tagged with its channel — without this you can’t split revenue.
  • “How did you hear about us?” A simple dispatcher question catches what tracking misses: referrals, wrapped trucks, repeat customers.

The goal is one thing: push revenue down to the channel level. Then “is Google Ads even paying off?” becomes a number, not a feeling.

Four tools that tie revenue to a channel Call tracking a number per channel Form tracking source, campaign, keyword Source field in CRM every lead and job tagged "How did you hear?" catches what tracking misses Husky Digital
Together these push revenue down to the channel level — without them you're attributing jobs by gut.

Lag: today’s job started as a lead weeks ago

The most common reporting mistake is measuring same-day. A lead today may close in two or three weeks; a large remodel, in two months. Divide this month’s revenue by this month’s spend and the picture lies in both directions.

The right approach is cohorts and windows. Take the leads that came in during March and see how many became booked jobs by May and what they were worth. Now March’s spend is matched to the revenue of those specific leads, not random May closings. The longer the sales cycle, the longer the observation window.

CPL ÷ close rate= cost per booked job
2–8 weekstypical lead-to-job lag
Profit ÷ spendthe real ROI formula

LTV: repeat-service trades change the math

For repeat-service niches — HVAC maintenance, recurring cleaning, seasonal contracts — you can’t count only the first job. A customer who pays for service twice a year for several years is worth a multiple of that first visit.

This is where LTV (lifetime value) matters: average profit per customer over time × retention. When LTV is high, you can comfortably pay a higher CPL — the first job just covers acquisition, and the profit comes from the repeats. Companies that count only the first ticket systematically undervalue their best channels and cut budget exactly where it pays off.

What “good” looks like, and the common mistakes

“Good” is when you know cost per booked job and gross profit per job by channel, you measure in cohorts, and you make decisions on profit rather than lead volume.

The common mistakes:

  • Chasing a cheap CPL while close rate drops. Leads got cheaper but conversion fell — so the booked job got more expensive. A net loss dressed up as “optimization.”
  • Counting revenue, not profit. $50,000 in volume at a thin margin may not even cover the ad spend. ROI is measured on profit.
  • Running ads with no tracking. Without call/form tracking and a source field, you’re spending blind and can’t say later what worked. Tracking goes in before the first ad dollar, not after.

Measure the whole chain, work in cohorts, account for LTV — and the decision to scale spend rests on math, not hope. If the math says no, we say no.

We do this for you Request tracking review

Ready to fix the leaks?

Our diagnostic audit covers your tracking, ad accounts, and SEO architecture.

Request tracking review