Analytics

Cost Per Lead Is Lying to You: Track the Numbers That Actually Pay

Your ads report says 62 leads. Your bank account says four jobs. Here are the four numbers that tell you whether your marketing is actually making money, and exactly how to track them.

By Osprey Solutions·July 27, 2026·10 min read
Contractor reviewing marketing ROI and cost per booked job on a tablet at a job site

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.

NumberWhat it answersHow to calculate it
Cost per booked jobWhat 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 sourceWhich channels send people who are ready to buy, and which send browsers?Jobs booked divided by leads received, per channel
Average job value by sourceIs 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 revenueIs 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 Call

How 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:

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:

  1. 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.
  2. 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:

  1. List every lead source you have. All of them, including the ones you never think about, like the yard signs and the referral partner.
  2. 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.
  3. 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.
  4. Calculate cost per booked job for last quarter. Even a rough version from memory and invoices will reorder your priorities immediately.
  5. 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.

Frequently Asked Questions

Can't I just ask every customer how they heard about us?
Ask, but never rely on it as your tracking system. Homeowner recall is genuinely poor, and the average buyer touches seven to twelve brand surfaces before picking up the phone. What they name is usually the last thing they remember, which systematically over-credits word of mouth and your brand name and under-credits the paid channel that started the search in the first place. Treat the answer as flavour on top of real tracking, not as a substitute for it.
Will call tracking numbers hurt my Google Business Profile or local SEO?
Only if you do it the lazy way. Replacing your real number everywhere with a tracking number breaks the name, address and phone consistency that local rankings depend on. Done properly it is safe: use dynamic number insertion so the tracking number is shown only to visitors from a specific campaign while your real number stays in the page code and in your structured data, and on Google Business Profile put the tracking number in the primary slot with your real number as the secondary. Google explicitly supports that setup.
Do I need expensive software, or can I track this in a spreadsheet?
A spreadsheet plus one tracking number already beats what most contractors have today, so start there if you need to. The software is not the expensive part. Call tracking runs roughly thirty to fifty dollars a month for a small business. The real cost is discipline: someone has to tag the source on every single job, every time, or the numbers quietly become fiction. That habit is what Osprey builds and maintains for the contractors we work with.

More From Osprey Solutions

Stop Guessing Which Marketing Works

Book a free strategy call. We will map your lead sources, work out what each one really costs per booked job, and build the tracking that turns your marketing budget into arithmetic instead of an argument.

Or call: (778) 910-0756