← All posts
home service marketingmarketing attributionMay 11, 2026Clint Research Team

How to Track Marketing Attribution for a Home Service Business

Marketing attribution connects a specific channel to a specific booked job. Without it, budget decisions are based on feel. Here is how to set up the full attribution stack for a home service business.

8 min read

Key takeaways

  • Phone call attribution requires one dedicated tracking number per channel. One pooled number for all paid ads makes attribution impossible at the channel level.
  • UTM parameters on landing pages pass source data into the CRM lead record only if the form is configured to capture and store the UTM values. Most forms discard them by default.
  • Last-touch attribution understates early-funnel channels like Facebook and direct mail. It is the industry standard because it is the most consistent to implement, not because it is the most accurate.
  • A 'how did you hear about us?' intake question is the single highest-signal attribution input for referral and repeat business. It is also frequently omitted from booking flows.
Contents
  1. 01Why attribution matters
  2. 02Phone call attribution: tracking numbers
  3. 03Form submission attribution: UTM parameters
  4. 04Referral and repeat customer attribution
  5. 05Organic attribution
  6. 06The multi-touch problem
  7. 07The CRM field setup
  8. 08How Clint Tracks Attribution Across Your Channels
  9. 09Sources
  10. 10Frequently Asked Questions

Marketing attribution is the process of connecting a specific marketing channel to a specific booked job. Without it, marketing budget decisions are based on feel. With it, they are based on cost per booked job by channel, and the channels that do not produce booked jobs get cut.

Most home service businesses running $1M to $5M are spending $4,000 to $15,000 per month on marketing and have no reliable answer to "which of these channels is actually booking jobs?" They track spend. They track leads. The conversion from lead to booked job by channel is missing.

Attribution does not require expensive software. It requires a clear data structure, one tracking number per channel, and a CRM configured to store source information on every customer record. Here is how to build it. See how to track lead source in a service CRM for the CRM-side setup and call tracking for home service businesses for the phone layer.

Why attribution matters

The cost-per-lead number most marketing vendors report does not tell you the cost per booked job. A Google LSA that delivers 40 calls at $45 each looks worse than a direct mail campaign delivering 20 calls at $30 each. If the Google LSA books 70 percent of calls and direct mail books 25 percent, the actual cost per booked job is $64 versus $120. The cheaper lead source is more expensive when booked jobs are the unit.

Attribution closes this gap. For every job that reaches "completed" status in the CRM, there should be a source field that traces back to the channel that originated the customer. When that field is populated consistently, cost per booked job by channel is a simple calculation: channel spend divided by booked jobs from that channel.

Text Clint: "cost per booked job by lead source for the last 90 days"

Phone call attribution: tracking numbers

Inbound phone calls are the primary conversion event for most home service businesses. The standard attribution method is one dedicated tracking number per marketing channel, forwarded to the main business line.

The setup: buy a tracking number for each channel (Google Ads, Google Local Services Ads, Facebook Ads, Yelp, direct mail, yard signs, vehicle wraps). When a call comes in through that number, the call tracking software logs which number was dialed and appends the source to the CRM lead record.

Without this setup, all calls land on the same number and the only attribution available is asking the customer. A 7-number tracking setup through CallRail, WhatConverts, or a CRM-native call tracking tool typically costs $40 to $90 per month. A business spending $8,000 per month on ads cannot reliably cut or expand channels without it. The Google Ads-specific version of this attribution chain is in how to track Google Ads ROI for contractors.

Common errors: using one pooled number for all Google Ads campaigns (channel-level attribution exists but keyword-level does not), not routing tracking numbers through the CRM (calls are tracked but not tied to the customer record), and not training CSRs to confirm the source at booking.

Text Clint: "how many calls came in from each lead source last month, and how many converted to booked jobs?"

Form submission attribution: UTM parameters

For any paid channel that drives traffic to a website landing page, UTM parameters capture the source in the URL. A Google Ads click adds ?utm_source=google&utm_medium=cpc&utm_campaign=hvac-repair to the landing page URL. If the booking form is built to read and store those URL parameters, every form submission arrives in the CRM with source data attached.

The implementation has two pieces. First, the ad platform must be configured to append UTM parameters to destination URLs (standard in Google Ads, Facebook Ads, and LSA). Second, the form must pass the UTM values as hidden fields into the form submission, and the CRM must store them on the lead record.

Most CRM booking forms (Jobber, HCP, ServiceTitan) do not do this by default. It requires either a form plugin that reads query parameters, a JavaScript snippet that fires on form load and captures URL parameters, or a landing page builder (Unbounce, HighLevel) that handles UTM capture natively.

If the form does not capture UTMs, form-sourced leads arrive in the CRM with no channel data and accumulate as "unknown source," which erodes attribution quality across every report.

Text Clint: "what percentage of new leads this month have a source field populated vs unknown?"

Referral and repeat customer attribution

Two of the highest-value lead sources in home services are referrals from existing customers and repeat customers calling back. Neither comes through a phone tracking number or a UTM parameter. Both require manual entry at the time of booking.

The intake question "how did you hear about us?" captures this data when CSRs are trained to ask it consistently and when the CRM has a structured source field (not a freeform notes box). The source field should have a defined picklist: Google Organic, Google Ads, Google LSA, Facebook Ads, Yelp, Angi, direct mail, referral (with a secondary field for the referring customer), repeat customer, vehicle/yard sign, door hanger, other.

Referrals deserve specific tracking because they have the highest conversion rate and lowest cost of any lead source. A referral from an existing customer books at 60 to 80 percent, compared to 25 to 45 percent for paid search. Cost per booked job for referrals is near zero. A business that does not track referral volume cannot measure whether its customer base is generating organic growth or not. The full referral program build is in how to build a referral program in home services.

Text Clint: "how many booked jobs came from referrals in the last 6 months, and who are the top referring customers?"

Organic attribution

Organic search attribution is the hardest to track precisely. A customer who Googles "plumber near me," finds the business website, and calls the main number could be attributed to organic search, but only if the main number is different from all tracking numbers, and only if the CSR records the source at booking.

Google Search Console shows which queries are driving clicks to the site. It does not connect those clicks to individual booked jobs. For businesses with significant organic traffic, tagging inbound calls from the main line as "Google Organic" in the CRM is an approximation, not an exact attribution. It is still worth doing because it separates organic from "unknown."

A practical approach: use the tracking numbers for all paid channels, keep the main business number for organic and direct traffic only, and train CSRs to record "Google Organic" for callers who say they found the business through a web search with no specific ad mention.

Text Clint: "how many jobs this year are attributed to Google Organic vs Google Ads vs LSA?"

The multi-touch problem

A customer who clicks a Facebook ad on Monday, searches Google and clicks an LSA ad on Wednesday, and then calls from a yard sign number on Friday is one customer with three touchpoints. The CRM typically attributes the job to the last touch (the yard sign number), because that is the number that rang.

This is last-touch attribution. It is the standard in home services because it is the easiest to implement consistently. It has a known limitation: it understates early-funnel channels. The Facebook ad that produced the first awareness gets no credit. The Google search that moved the customer to consideration gets partial credit only if a UTM was involved.

For most home service businesses at $1M to $10M, the operational priority is getting last-touch attribution working consistently before worrying about multi-touch modeling. Consistent last-touch data beats inconsistent multi-touch data every time.

Text Clint: "which channels have the highest booked job volume and which have the lowest cost per booked job?"

The CRM field setup

Clean attribution requires the CRM to have a structured lead source field on every customer record and job record. The field should be required at booking, not optional. It should have a defined picklist, not a freeform text box. And it should carry forward from the customer record to every job, so the source attribution is visible on repeat jobs too.

For CRMs that allow custom fields (ServiceTitan, Housecall Pro, Workiz), this is a 30-minute configuration. For Jobber, lead source tracking requires the referral source field plus a custom field for paid channel specificity. The exact field setup varies by platform, but the data requirement is the same: every customer record must have a source that maps to a known channel.

Without this structure, marketing attribution reporting is impossible regardless of how well the tracking numbers and UTMs are configured upstream.

Text Clint: "show me all leads from the last 90 days where the lead source field is empty or unknown"

How Clint Tracks Attribution Across Your Channels

Clint connects to your CRM lead records, ad platform spend data (Google Ads, Facebook Ads, LSA), and call tracking logs, then joins them into a single attribution picture. Ask "what is my cost per booked job from Google LSA vs Facebook Ads?" and Clint pulls the spend from the ad platform, the booked job count by source from the CRM, and returns the calculation. The ad platform reports cost per lead. Clint reports cost per booked job, which is the number that drives budget decisions.

Sources

Frequently Asked Questions

4 questions home service owners actually ask about this.

  • 01How many tracking numbers do I need?

    One per channel you want to measure independently. At minimum: one for Google Ads, one for Google LSA, one for Facebook Ads, one for Yelp or Angi, one for direct mail. Yard signs and vehicle wraps can share a number if they are the same geographic area. Most businesses need 5 to 8 numbers.

  • 02What CRM should I use for lead source tracking?

    Any major home service CRM can track lead source if configured correctly. ServiceTitan has the most native marketing attribution tooling. Housecall Pro and Jobber support lead source fields with some configuration. The platform matters less than whether the field is required, has a defined picklist, and is consistently filled by whoever books the job.

  • 03What is a good cost per booked job by channel?

    It varies by trade and market. For residential HVAC, Google LSA typically books jobs at $85 to $180 per booked job. Google Ads (standard) runs $120 to $250. Facebook Ads runs $90 to $200 but with lower job size averages. Referrals cost near zero. Yelp varies widely. The useful comparison is not to an industry benchmark but to your own channels relative to each other.

  • 04What should I do if my CRM has no lead source data for historical jobs?

    Backfill what you can from call logs and memory, then make attribution a required field going forward. Historical data gaps do not prevent you from getting clean data starting today. A 90-day clean window gives enough data to make channel budget decisions.

See Clint in action

Clint is the pre-built AI for home service shops. Connect your CRM, email, and phone system in minutes and the agents run on your real data.