From First Contact to Lasting Relationships.

Built for HVAC, roofing, plumbing, landscaping, and general contractors.

Blog

How to Track Marketing ROI as a Contractor (No Marketing Team)

Most contractors cannot prove which marketing dollars produce revenue. Learn the three-step system to track ROI without a marketing team.

Most contractors spend $1,000-$5,000 per month on marketing and cannot prove which dollars produce revenue. They know how much they spent on Google Ads, direct mail, and truck wraps. They know how many jobs they closed. The connection between the two is a gap filled with guesses and gut feel.

Tracking marketing ROI as a contractor does not require a marketing team. It requires three things: source tracking on every lead, a pipeline that carries attribution through to close, and a monthly review habit.

Why ROI tracking matters

Without ROI data, budget decisions default to three patterns:

  1. Keep doing what we did last year. The Google Ads budget stays at $2,000/month because it always has been, even if only $500 of it produces real jobs.
  2. Cut based on feelings. Direct mail "feels" expensive, so it gets cut — even though it may produce the highest-value referrals in the pipeline.
  3. Overspend on the obvious. The channel with the most visible activity (usually Google Ads) gets more budget while quieter channels that produce better leads go underfunded.

Contractors who track ad spend to closed jobs report 20-35% higher marketing ROI than those who track clicks alone. The improvement comes entirely from reallocating budget based on real data instead of assumptions.

The three-step ROI tracking system

Step 1: Tag every lead with its source

Every inquiry that enters the business — phone call, web form, WhatsApp message, referral, walk-in — needs a source tag before it enters the pipeline.

Common source categories for contractors:

SourceHow to tag
Google AdsGCLID auto-capture + UTM parameters
Google organicUTM or referrer tracking
Direct mailUnique phone number or URL per campaign
ReferralAsk "how did you hear about us?" and log it
WhatsApp directTag as WhatsApp + campaign if from an ad
Truck wrap / yard signUnique phone number or mention at intake

The key principle: if a lead cannot be attributed to a source, it is unattributable, and unattributable leads make the ROI calculation impossible. Even a manual "how did you hear about us?" question at intake is better than nothing.

Step 2: Carry attribution through the pipeline

Source data must stay attached to the deal as it moves through pipeline stages. When the deal closes (Won or Lost), the revenue maps back to the originating source.

This requires a CRM that preserves attribution through the full lifecycle. Spreadsheets lose this connection because there is no automated linkage between the lead record and the deal outcome.

Step 3: Calculate ROI monthly

On the first of every month, pull two reports:

Report 1: Revenue by source. Total closed revenue attributed to each marketing channel.

Report 2: Spend by source. Total cost of each marketing channel.

ROI = (Revenue - Spend) / Spend

ChannelMonthly spendClosed revenueROI
Google Ads$2,000$24,00011:1
Direct mail$800$8,5009.6:1
Referral program$200$15,00074:1
Facebook Ads$500$1,2001.4:1

In this example, the referral program produces the highest ROI by far, but it receives the smallest budget. Facebook Ads produce barely positive returns. The data suggests reallocating $500 from Facebook to referral incentives.

Without attribution, all four channels look the same: "we spent money and got jobs." With attribution, the budget decision is obvious.

What to track beyond ROI

Three supporting metrics make ROI tracking more actionable:

Cost per lead (CPL): Marketing spend divided by leads generated per channel. Useful for budgeting, but misleading without close rate data. A $75 lead that closes at 50% costs $150 per customer. A $25 lead that closes at 10% costs $250 per customer.

Cost per acquired customer (CAC): Marketing spend divided by closed jobs per channel. This is the number that actually matters for budget decisions.

Customer lifetime value (CLV): Total expected revenue from a customer over the relationship. For HVAC, CLV often exceeds $4,800 when maintenance contracts and repeat work are included. If CAC is under $200 and CLV is $4,800, the marketing is working.

For more metrics and benchmarks, see the home service business statistics page. For definitions of these terms, see the contractor CRM glossary.

Common mistakes

Tracking clicks instead of revenue. Google Ads tells you cost per click. That is not ROI. ROI requires connecting the click to a closed job.

Ignoring offline channels. A referral from a past customer does not have a GCLID, but it produces revenue. Manual source tagging at intake captures referrals and offline channels that digital tracking misses.

Calculating ROI annually instead of monthly. Seasonal businesses like HVAC and roofing need monthly ROI data because channel performance shifts with demand. The Google Ads campaign that works in July may underperform in December.

For a deeper look at Google Ads attribution specifically, see the contractor's guide to Google Ads attribution. For the complete revenue system, see the home service revenue machine guide.