How Lead Source Attribution Works

CRM & Customer Management

How Lead Source Attribution Works

Most HVAC shops can tell you exactly what they spent on marketing and roughly nothing about which part of it produced revenue. The gap is not a reporting problem — it is a capture problem, and it happens in the first thirty seconds of a phone call.

Last reviewed: August 2026 Next review: August 2027

The short version

Attribution fails because the source is captured at the job stage instead of the lead stage. By the time a job exists, the leads that never converted are invisible and most of the information is gone.

The number worth measuring is not cost per lead. It is cost per booked job by source — because a channel producing cheap leads that never book is the most expensive channel you have.

Where attribution leaks

WHERE THE SOURCE INFORMATION DISAPPEARS MARKETING SPEND YOU KNOW THIS EXACTLY ENQUIRIES ARRIVE CALLS, FORMS, WALK-INS CAPTURED AS LEADS LEAK 1 · MISSED CALLS BOOKED AS JOBS LEAK 2 · SOURCE NOT KEPT REVENUE YOU KNOW THIS TOO THE LINK YOU NEED
You know the top of the funnel and the bottom. The two middle bands are where the connection between them is lost, and both leaks are fixable with capture discipline rather than software.

Leak one: enquiries that never become leads

A missed call is not recorded anywhere. Neither is a form submission nobody replied to, or a voicemail left at 7pm that nobody returned.

Those enquiries cost you exactly as much to generate as the ones you answered. If a channel produces calls at times you do not staff, it looks unprofitable in your figures — when the real problem is that nobody picked up.

Leak two: the source not carried forward

The larger leak, and the more insidious. Many shops capture the source when a job is created rather than when the enquiry arrives.

The consequence: your data shows the source of jobs you won and says nothing about the source of enquiries you lost. A channel with a 15% booking rate and one with a 60% booking rate look identical, because you only counted the bookings.

Why asking the customer does not work

“How did you hear about us?” is the standard approach and it is unreliable for three reasons that have nothing to do with honesty.

People genuinely do not remember. They saw a van, mentioned it to a neighbour, and searched your name three weeks later. Which of those was the source? All of them, arguably.

They answer with the last thing. “I found you on Google” is usually true and usually incomplete — they searched your business name because they had already seen it somewhere.

CSRs guess. Under pressure on a hot Tuesday, “Google” becomes the default entry for anything unclear, and your data acquires a large and meaningless bucket.

Use it as a supplement, never as the primary method. It is genuinely useful for catching sources you cannot track technically — referrals, van sightings, a neighbour’s recommendation.

The methods that do work

MethodWhat it capturesEffort
Tracked phone numbers A distinct number per channel, so the source is known before anyone speaks Low. The highest-value single change
Hidden form fields Which page and campaign a web enquiry came from, automatically Low, once set up
Distinct landing pages Traffic and conversion per campaign Medium
Unique offer codes Mailers and print, where nothing digital exists Low
Asking the customer Referrals and offline sightings Low, and unreliable alone
If you do one thing, do this

Use a different phone number for each marketing channel.

One number on your search ads, another on your local listing, another on the vans, another on mailers. All ring the same office. The source is recorded automatically, before anyone says hello, with no CSR judgement involved and no reliance on the customer’s memory.

It also records the calls you missed — which is the leak you currently cannot see at all.

What to actually measure

Three metrics per channel, and the third is the one that changes decisions.

Cost per enquiry. Spend divided by enquiries. Useful, and the number most shops stop at.

Booking rate. Of enquiries from this channel, what share became a booked job? This is where channels separate dramatically.

Cost per booked job. Spend divided by jobs booked. The number worth managing.

 Channel AChannel B
Monthly spend$2,000$2,000
Enquiries10040
Cost per enquiry$20$50
Booking rate15%60%
Jobs booked1524
Cost per booked job$133$83

Channel A looks twice as efficient on cost per enquiry and is substantially worse on the measure that matters. A shop optimising towards cheap leads would move budget in exactly the wrong direction.

And one more layer if you can reach it: average job value by source. A channel producing service calls and a channel producing replacement enquiries should not be compared on volume at all.

The multi-touch problem

Most customers encounter you more than once before calling. They see a van, notice a listing, ask a neighbour, then search your name.

Single-source attribution assigns all the credit to the last touch, which systematically undervalues everything that built recognition earlier — vans, signage, sponsorships, word of mouth.

Full multi-touch modelling is not realistic for a small contractor, and pretending otherwise leads to expensive tooling that nobody maintains. Two pragmatic adjustments instead:

Record branded search separately. Someone searching your business name did not discover you through search. They already knew you existed. Tracking that separately from generic searches tells you how much of your search volume is harvesting awareness built elsewhere.

Do not cut brand-building channels on last-touch data alone. If van wraps show almost no direct attribution but your branded search volume is high, the wraps may well be doing the work that search is getting credit for.

The simplest version worth building

You do not need a marketing stack. Four steps, achievable in a fortnight:

  1. A tracked number per channel. Four or five numbers covers most shops
  2. A source field on the lead record, populated automatically where possible, with a short fixed list where it is not — and no free-text option, because free text becomes unanalysable within a month
  3. Carry the source through to the job. This is the step that closes leak two, and it is usually a configuration setting rather than a feature
  4. One monthly report: enquiries, booked jobs and revenue by source

The capability to run that report is one of the clearest dividing lines between a customer database and a genuine pipeline, which is the distinction covered in the comparison of CRM and field service management.

Frequently asked questions

Why can’t I tell which marketing works?
Almost always because the source is captured when a job is created rather than when the enquiry arrives. That means you have the source of jobs you won and nothing about enquiries you lost, so channels with very different booking rates look identical in your data.
Is asking customers how they found you good enough?
As a supplement, yes — it catches referrals and van sightings that nothing else can track. As the primary method, no. People genuinely do not remember, they name the last touch rather than the first, and CSRs under pressure default to a catch-all answer.
What is the single most useful attribution change?
A different tracked phone number for each channel, all ringing the same office. The source is recorded before anyone speaks, with no reliance on memory or CSR judgement — and it also records the calls you missed, which is the leak you currently cannot see.
Should I optimise for cost per lead?
No. Cost per booked job is the number that matters. A channel producing leads at half the price with a quarter of the booking rate is substantially more expensive per job, and optimising towards cheap leads moves budget in the wrong direction.
How should I handle customers who found me through several channels?
Full multi-touch modelling is unrealistic for a small contractor. Two pragmatic steps: record branded search separately from generic search, since branded searchers already knew you existed, and do not cut brand-building channels like van wraps on last-touch data alone.
Do I need marketing software for attribution?
No. Tracked phone numbers, a fixed-list source field on the lead record, that source carried through to the job, and one monthly report by source covers most of what a small shop needs. The main requirement is that your system captures source at the lead stage, not the job stage.

What to do next

  1. Set up a tracked number per channel. It is the highest-value single change and it takes a day.
  2. Check whether your system captures source on the lead or only on the job. If it is the job, that is leak two and it is usually a settings change.
  3. Replace any free-text source field with a short fixed list. Free text becomes unanalysable within a month.
  4. Calculate cost per booked job by channel for last quarter. It will probably reorder your priorities.
Related reading

The channel figures in this guide are illustrative examples constructed to demonstrate a calculation, not measured data from any business. Run the same arithmetic with your own spend, enquiry and booking numbers.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top