Your Lead Count Is Not Your Scoreboard
Here is a conversation we have most weeks. A contractor forwards us his agency report. Sixty-two leads last month at a $71 cost per lead. Green arrows everywhere. Then we ask the only question that actually matters: how many of those became signed jobs? Long pause. He does not know. Nobody in the chain knows.
He is not unusual. Widely cited figures from the home services space put it at roughly 84 percent of contractors who cannot break down cost per lead by marketing source, never mind cost per booked job. They know what they spent. They know roughly what came in the door. Everything in between is a guess wearing a chart.
The issue is not that cost per lead is a bad number. It is that cost per lead measures activity, not results. In most reports a "lead" is any form fill, any call over thirty seconds, any chat window. It counts the tire kicker, the caller from three hours away, the guy pricing a job you do not even do, and the homeowner who signed a $14,000 contract, all as one identical unit.
Put dollars on it and the flaw is obvious. A $15 lead that never books is worth less than a $45 lead that turns into a $450 service call, and both are rounding errors next to a $150 lead that becomes a $12,000 roof. So when the report says leads are up while your bank account disagrees, the report is not lying to you exactly. It is answering a question you never asked.
The Four Numbers That Actually Tell You If Marketing Is Working
You do not need a dashboard with forty widgets. You need four numbers, tracked by source, reviewed monthly. Source means the real channel, separated out: Google Ads, Local Services Ads, your Google Business Profile, organic search, Meta, referrals. Blending them into one average is how bad channels hide behind good ones.
| Number | What it answers | How to calculate it |
|---|---|---|
| Cost per booked job | What does it actually cost to put one job on the calendar from this channel? | Channel spend divided by jobs booked from that channel |
| Close rate by source | Which channels send people who are ready to buy, and which send browsers? | Jobs booked divided by leads received, per channel |
| Average job value by source | Is this channel bringing you $400 repairs or $14,000 replacements? | Revenue from that channel divided by jobs booked from it |
| Marketing as a percent of revenue | Is the whole operation profitable, or just busy? | Total marketing spend divided by total booked revenue |
Look at what these do together. Cost per lead ranks your channels by how cheaply they generate noise. These four rank them by how much money they put in your account, which is a completely different order. Contractors who track spend all the way through to closed jobs rather than clicks consistently report meaningfully higher returns, in the range of twenty to thirty-five percent better, for the simple reason that they stop funding the channels that only look good.
Benchmarks are context, not a verdict
Published 2026 benchmarks put average cost per lead near $70 for roofing, around $45 for HVAC and plumbing, about $42 for electrical, and roughly $28 to $30 for landscaping and tree service. Those are useful for a sanity check and useless as a judgment, because they say nothing about what happens after the lead comes in.
Run it properly instead. A $150 cost per lead sounds like a fire until you close 25 percent of those leads at a $12,000 average job. That is a $600 cost per booked job on $12,000 of revenue, or five percent of the ticket, which is an excellent business. Meanwhile a $30 lead source closing at 3 percent on $900 jobs is costing you roughly $1,000 to book $900 of work. You are paying to lose money, and cost per lead told you it was your best channel.
This is also why rising ad costs panic contractors who are measuring the wrong thing. If your numbers have been drifting the wrong way, read our breakdown of why Google Ads cost per lead doubled in 2026 alongside this one, and check your cost per booked job before you cut budget.
Not Sure Which Channel Is Actually Paying You?
Book a free strategy call. We will map every lead source you have, show you what each one really costs per booked job, and set up the tracking so you never have to guess again.
→ Book Free Strategy CallHow to Connect the Click to the Cash
All four numbers depend on one capability: knowing which source produced each job. That is the whole game. Three pieces of plumbing get you there, and none of them are exotic.
1. A unique phone number for every channel
Somewhere between 60 and 70 percent of home service leads arrive by phone, and calls convert far better than form fills, by most measures ten to fifteen times better. If your tracking only counts form submissions, you are measuring the smaller and weaker half of your pipeline and drawing conclusions from it.
Call tracking fixes this by assigning a different phone number to each channel, so a ring tells you where it came from before you say hello. The tooling is cheap, in the range of thirty to fifty dollars a month for a small business. Set it up with dynamic number insertion, which swaps the displayed number based on how the visitor arrived while leaving your real number in the page code, and record every call so you can tell a real job request from a supplier calling about an invoice.
2. UTM tags on every link you control
Any link you place anywhere should carry UTM parameters identifying the source and campaign. Ads, email signatures, your Google Business Profile website link, social bios, a QR code on a yard sign. Then capture those parameters in hidden fields on your quote form so the tag rides along with the lead into your system. Untagged links are why so much revenue ends up filed under "direct," which is analytics for "we have no idea."
3. One source field, filled in on every single job
This is the unglamorous step that makes or breaks the whole thing. Your CRM, not the ad platform, is the scoreboard. Google will happily report sixty conversions. Only your CRM knows that six became jobs worth $71,000 and the rest were price shoppers. That means the source field gets filled in on every lead and the job gets marked won, lost, or dead with a real dollar value attached. Miss that habit and every number above becomes decoration.
It also compounds. Once source data is clean, you can see which channels produce customers who actually answer your follow-up, which pairs directly with the follow-up system that turns quotes into signed jobs.
Most of Your Best Leads Never Touch Your Website
Here is where contractor tracking quietly falls apart. A homeowner searches "roofer near me," sees your Google Business Profile in the map pack, taps the call button, and books a $9,000 job. Your website analytics recorded exactly nothing, because that person never visited your website. Zero-click journeys like this are a growing share of local demand, not an edge case.
Three sources need to be captured outside your website analytics:
- Google Business Profile calls, messages and direction requests. Your profile reports call volume natively, and you can route a tracked number through it correctly without breaking your listing. If your profile is the biggest lead source you cannot see, our Google Business Profile management exists for exactly this.
- Local Services Ads. LSA leads live in their own dashboard and never appear in standard Google Ads reporting. Worse, most contractors never disposition them, which throws away both your data and a ranking signal, since marking leads as booked feeds Google's understanding of your responsiveness. We cover the mechanics in Local Services Ads management.
- Anything answered by a human off-hours. Calls picked up by an answering service or forwarded to a cell phone at 7pm are real jobs that vanish from every report unless someone logs them.
And no, asking "how did you hear about us?" is not a tracking system. Ask it anyway, but understand that the average homeowner touches seven to twelve brand surfaces before dialling, so the answer you get is whatever they happened to remember last. That systematically over-credits your brand and word of mouth while quietly starving the paid channel that started the search.
Feed Booked Revenue Back Into Google and Meta
Once you know which clicks became jobs, you can do the thing that separates a well-run account from an expensive one: send that outcome back to the ad platform. This is called offline conversion import, and it lets you upload the booked job, and its dollar value, back against the original click.
The effect is bigger than it sounds. Automated bidding optimizes toward whatever you tell it is a conversion. Feed it form fills, and it will get very good at finding people who fill in forms, including the ones who never had a job to give you. Feed it booked revenue, and it starts hunting for the customers who actually sign. Google's own documentation on offline conversion imports walks through the mechanics.
Two practical notes before you ask your agency for this:
- Volume matters. Google's guidance is roughly thirty offline conversions a month before target CPA bidding stabilizes, and fifty or more for target ROAS. Below that the system does not have enough signal and will behave erratically. Small accounts should keep optimizing toward high quality leads first and layer revenue in as volume grows.
- Something changed in 2026. Google has moved offline conversion imports and enhanced conversions for leads onto its Data Manager API, with the older Google Ads API upload path deprecated as of June 15, 2026. If someone built you a custom feedback loop in the last couple of years, it may have stopped uploading without anyone noticing, because a broken import fails silently and simply shows fewer conversions. Ask your agency to confirm in writing that revenue is still landing in the account.
This is the layer we build into every account we run. If you want to see what it looks like on a live account, that is what our Google Ads management is built around: bidding toward booked revenue, not form fills.
How to Start This Week
You do not need a new platform or a new agency to begin. Do these five things in the next seven days:
- List every lead source you have. All of them, including the ones you never think about, like the yard signs and the referral partner.
- Add a mandatory source field to your CRM or job board. No job gets scheduled without it. This one habit unlocks every number in this post.
- Put one tracking number on your highest-spend paid channel. Start with whatever you spend the most on. You will learn more in thirty days than in the last year of reports.
- Calculate cost per booked job for last quarter. Even a rough version from memory and invoices will reorder your priorities immediately.
- Book a monthly thirty-minute review. Businesses reviewing marketing weekly average around 6x return versus about 4.8x for the ones checking in quarterly. Frequency itself is worth money, because it shortens how long you fund something that is not working.
None of this makes your marketing better on its own. It makes your decisions better, and that is what compounds. Once you can see cost per booked job by channel, the budget conversation stops being an argument about opinions and becomes arithmetic. If you want a straight answer about what your marketing budget should look like once you can measure it, we broke that down in what digital marketing really costs for contractors.