How to Audit Your Lead Journey in 30 Minutes
Map your lead journey from capture to reactivation, answer 12 questions, score each stage and find the leaks costing you deals, in one sitting.
A contractor's 30-day plan to see which marketing produces booked jobs: call tracking, UTMs, CRM source fields, offline conversions, and revenue reports.
Marketing attribution for contractors is the practice of connecting every booked job back to the marketing that produced it, and most contractors can get 90% of the value in 30 days without an analytics team. The minimum usable system is four layers: call tracking so phone leads carry a source, UTM discipline so digital clicks carry a source, a clean lead source field in the CRM so the office asks once and records it, and an offline conversion import so booked revenue flows back to Google Ads instead of stopping at the form fill.
That last layer is where the money is. LocaliQ's 2025 home services report, based on 3,211 search ad campaigns, found cost per lead rose 10.51% on average year over year for 69% of home services businesses, and cost per click rose for 75% of them. When acquisition costs climb that consistently, budget decisions made on lead counts rather than booked revenue get expensive.
Four properties of home services make attribution harder than it is for e-commerce.
The conversion is usually a phone call. A call carries far less automatic tracking than a web form. If you cannot connect a call to a source, you are guessing about most of your pipeline.
Buyers research across channels before they act. A homeowner might see a truck wrap, read reviews, compare two quotes and then click an ad to call. Any model that credits only the last touch misreads that journey. Review research is a step in nearly every journey: BrightLocal's 2026 survey found 97% of consumers read reviews, 47% will not use a business with fewer than 20 reviews, and the average consumer consults six different review sites before choosing.
The office introduces noise. A lead source field that nobody fills is worse than no field at all, because it launders a guess into a data point.
Sales cycles are long. A roof replacement or remodel can take weeks from first touch to signed contract, which is longer than the default attribution windows in most tools.
None of this requires a six-figure analytics stack. It requires plumbing that matches how contractors actually sell.
You do not need dozens of numbers. You need six, calculated by channel.
| Metric | What it answers | Where it lives |
|---|---|---|
| Cost per lead | What inquiry volume costs | Ad platforms plus call tracking |
| Cost per booked job | What scheduled revenue costs | CRM joined to spend |
| Close rate by source | Which leads turn into signed work | CRM |
| Average ticket by source | Whether cheap leads are actually profitable | CRM job records |
| Call answer rate | How much paid demand rings out | Call tracking |
| Speed to first response | Whether you beat the market to the callback | CRM timestamps |
The reason cost per booked job is the headline: lead cost and job value move independently. A $228 roofing lead that closes at a healthy rate on a five-figure ticket can be a far better purchase than a $45 lead that never schedules. Only the revenue-joined view can tell you which is which.
Here is an illustrative example, using round numbers and the published benchmark averages above rather than any real contractor's books. Suppose you spend $6,000 a month on two channels. Channel A produces 60 leads at $100 each and books 15 jobs; Channel B produces 40 leads at $150 each and books 20 jobs. On cost per lead, A wins ($100 versus $150). On cost per booked job, B wins ($300 versus $400), and if B's average ticket is also higher, the gap widens further. That flip is the reason attribution projects pay for themselves: most contractors discover at least one channel they have been misjudging.
Install call tracking with dynamic number insertion so visitors from Google Ads, Local Services Ads, organic search and direct traffic each see a different number. Add static tracking numbers to the two or three offline channels that carry real budget, such as truck wraps and yard signs. This is unglamorous and it is the foundation; without it, phone-led demand stays invisible.
Also standardize UTMs this week: consistent source, medium and campaign naming for every ad, email and social link. Sloppy UTMs are the most common cause of "everything shows as direct traffic" a month later.
Add two fields to the CRM: original source, captured at intake, and last touch source. Train whoever answers the phone to ask "how did you hear about us?" and select from a fixed dropdown rather than typing an answer. Free-text source fields produce unusable data.
The intake script matters as much as the field. A question like "Was it a search, a review, a referral, or did you see one of our trucks?" is easy to answer and maps cleanly to your channel list. If your CRM hygiene is shaky generally, the CRM hygiene guide covers the cleanup work that has to happen before reporting can be trusted.
Set up offline conversions. When a lead becomes a booked or completed job, send that event back to Google Ads using the click identifier captured at form fill or call, or through enhanced conversions for leads, which uses hashed first-party data to match offline outcomes to ad interactions. Google's own documentation notes that advertisers using first-party data alongside GCLID imports saw a median 10% increase in measured conversions, and the bigger win is strategic: bidding starts optimizing toward booked revenue instead of cheap leads.
This is also the week to join spend and jobs in one place. A spreadsheet that pulls monthly spend per channel and matches it against booked jobs per source from the CRM is enough to start; the attribution reporting workflow covers the reporting structure we use, and the marketing attribution service is the done-for-you version if you would rather not wire it yourself.
One page, reviewed monthly. Per channel: spend, leads, cost per lead, booked jobs, cost per booked job, revenue, and revenue per lead. Then three standing questions:
Directional answers are fine in month one. Reliable answers need 60 to 90 days of clean data, because lead-to-job cycles for larger trades are long and early months are noisy.
Two places. First, data hygiene: AI-assisted tooling is good at normalizing messy source strings, flagging records with missing sources, and chasing the office to fill fields. Second, reporting: turning the monthly join into a plain-language summary that says what changed and why. The analytics dashboard service covers the reporting layer. Neither of these makes budget decisions; they make the decisions faster to make.
If your CRM choice is still open, the CRM comparison for AI agents explains which platforms expose the fields and events that attribution actually needs.
Pull your last 90 days of spend by channel and your last 90 days of booked jobs, then count how many jobs you can match to a source. If the match rate is under 80%, fixing that is the whole project for this month. Map your current lead flow through the 6-step intake to get a prioritized setup plan, or book a call and bring your channel list.
What is marketing attribution for contractors?
It is the practice of connecting every lead and every booked job back to the marketing that produced it, including phone calls, form fills, chats and repeat customers. For contractors, attribution has to survive phone-led journeys, multi-channel research and offline channels like truck wraps, which is why call tracking and CRM source fields matter more than any single analytics dashboard.
Why does last-click attribution mislead contractors?
Last-click gives all credit to the final interaction, which for contractors is usually a Google search or ad click. A homeowner who first found you through a review site, a neighbor or a yard sign and then searched your name before calling gets credited entirely to the last click. Attribution that ignores first touch systematically starves the channels that introduce new customers.
What is the one metric contractors should manage to?
Cost per booked job by channel. Cost per lead tells you what inquiries cost; cost per booked job tells you what revenue-producing work costs. A channel with a higher cost per lead can be far cheaper per booked job once you factor in close rate and average ticket, and that comparison is the entire point of attribution.
How long does it take to set up contractor attribution?
A practical minimum setup, call tracking, UTM discipline, CRM source fields and one offline conversion import back into Google Ads, is a four-week project, with the last week reserved for reporting. You will see directional data in the first month and reliable budget-shifting confidence after 60 to 90 days of clean collection.
Map your lead journey from capture to reactivation, answer 12 questions, score each stage and find the leaks costing you deals, in one sitting.
Why CRM data decays, the five hygiene jobs worth automating, a 30-day cleanup plan, and the guardrails that keep records clean once the project ends.
A practical comparison of HubSpot, Pipedrive and GoHighLevel for AI agent automation, covering API quality, webhooks, costs and lock-in, with sources.
More articles: browse the full Praktivo blog.