Revenue per lead by channel: home services attribution that holds up

August 19, 2026 · Carlos · FIELD NOTES

You know you spent $8,000 on marketing last month. You know you booked 41 jobs. What you do not know, in most shops, is which channel actually produced the revenue, because the phone rings, the form comes in, and the source gets recorded as "the phone rang" or nothing at all. Here is the channel-by-channel math, and the tracking that survives contact with real crews.

The short answer

Revenue per lead varies by channel and by trade, but the attribution problem is usually not the math. It is the capture: home-service buyers call, and calls do not self-report a source. The fix is three-tier. Put unique tracking numbers on every channel, pass UTM parameters into your booking form, and score each lead on first-touch source rather than last click. When call tracking is added, home-service businesses typically attribute 25% to 30% more revenue to the channel that earned it, because phone leads finally get counted.

Why "the phone rang" is not an attribution model

Home services live and die on the phone call. Across the U.S., roughly 25% of inbound home-service calls go unanswered, and a missed call is a lead with a source and no owner. Most contractor CRMs still bucket every inbound as "phone call" with no channel attached, which means every channel that generates a phone lead gets credit for exactly nothing.

The pattern is consistent in the accounts we audit: the channels that show the highest cost-per-lead in a dashboard are often the ones doing the real work, because their leads convert at a higher rate than the cheap form-fill channels the dashboard rewards. Attribution that stops at "lead volume" punishes the channels that close, and it is the single biggest reason home-service owners keep funding the wrong media.

This is not a software problem. It is a plumbing problem. The capture layer has to be built before the reporting layer can mean anything.

Revenue per lead by channel: the honest benchmark

No two trades have the same ticket size, so revenue-per-lead benchmarks only hold within a trade. A plumbing service call might close at $400 while a roof replacement closes at $11,000, and comparing their cost-per-lead directly is meaningless. What holds up across trades is the shape of the data: which channels cost the most per lead, and which convert the highest share of what they send.

Channel Payment model Typical home-service CPL Close rate pattern Attribution risk
Google LSAs Pay per valid lead ~$53 (range $39-$59 by trade) High, if answered fast Low; Google reports the lead
Search Ads Pay per click $65-$120+ in competitive metros Medium; intent is strong Medium; phone clicks uncounted
Meta (Facebook and Instagram) Pay per impression or click $35-$95 form leads Lower; colder intent High; view-through ignored
Organic and Local 3-pack No media cost; SEO time $0 direct, real SEO cost Highest; branded trust Very high; rarely tagged
Direct, referral, repeat None $0 direct Highest; warmest Very high; no tag at all

Sources: Searchlight Digital 2026 benchmark (888 contractors, 126,650 leads); Google LSA support documentation; PipelineOn home-service benchmarks 2026. CPL ranges are averages across U.S. metros and move with trade and ZIP code.

The number that matters most is not in this table. It is the revenue-per-lead figure, and that requires you to attach a job value to each closed lead and divide by the channel. A channel sending 10 leads at $120 each that close at 40% produces more net revenue than a channel sending 30 leads at $35 each that close at 8%, and a last-click dashboard will fund the second one all day.

Where attribution breaks for every channel

1. Google LSAs: the lead is reported, the revenue is not

LSA is the easiest channel to attribute because Google invoices per valid lead and even allows disputes for invalid ones. But the revenue side still goes dark: an LSA lead that calls your shop directly and books does not automatically close the loop back to the LSA record unless your team logs it. Google reports a lead; only you can report a job.

2. Search Ads: the click is counted, the call is not

Google Ads counts clicks and, if you enable call reporting, calls from the ad. What it routinely under-counts is the phone number on your landing page: a buyer who clicks, reads, then dials the number on the page is often recorded as a click with no call event, so the conversion never fires. That under-count is typically 20% to 40% of phone conversions, which is why every landing page needs a call-tracking number tied to the campaign, not your main line.

3. Meta: the view-through problem

Meta's default reporting leans on view-through conversions, where an impression with no click is credited when a conversion happens later. For a home-service business, that produces two opposite errors. It over-credits Meta when a searcher saw your ad once and then Googled you, and it under-credits nothing, because the phone call Meta did influence is invisible. The fix is to read Meta as an awareness channel for home services, and to weight it by branded-search lift rather than by in-platform conversions.

4. Organic and Local 3-pack: the highest-converting channel you never tagged

Organic search and the Local 3-pack consistently produce the highest close rate in home services, because a buyer who finds you on the map already trusts you enough to call. But almost no contractor tags these calls. The result is the classic attribution inversion: the channel that closes best looks like it produces nothing, so budget shifts to paid, and the whole flywheel slows down.

5. Direct, referral, and repeat: the base load you are already standing on

Repeat and referral revenue is the most profitable revenue in the business, and it is invisible in every channel dashboard because there is no media spend attached. It is still revenue per lead. If you only measure paid channels, you will under-invest in the follow-up, review, and referral systems that make the base load grow, because those systems show up in no paid report.

The three fixes that make attribution hold up

Fix 1: unique tracking numbers per channel, routed to one line

Assign a distinct call-tracking number to each channel and surface it dynamically: one number on the LSA listing, one on your Search Ads landing page, one on your Google Business Profile, one in your email signature. When a buyer dials, the platform routes the call to your main line and records the source. This single change is what surfaces the 25% to 30% of revenue that phone leads represent.

Fix 2: UTM parameters that survive the form

Every paid link, every email, and every listing should carry UTM parameters, and your booking form should pass those parameters through as hidden fields. A form that does not carry source means every form lead reverts to "unknown." The technical lift is small; the discipline is what most shops lose by month three.

Fix 3: score first-touch, report last-touch, and read both

First-touch attribution tells you what started the relationship. Last-touch tells you what finished it. For home services, the honest read is both: first-touch shows which channels fill the top of the funnel, and last-touch shows which ones actually close. When the two diverge sharply for a channel, that is the signal to investigate, not the signal to cut.

The number that actually matters

Stop reporting cost-per-lead as the headline metric. Report revenue per lead, and hold every channel to it. A channel is worth funding when the revenue it produces, minus its media cost, beats the next-best channel you could fund instead, at the same total spend. That is the only comparison that survives contact with a real profit and loss statement.

And remember the speed variable: the median home-service business responds to a lead in 42 minutes, while the top 10% call back in under 5 minutes and close at roughly 21 times the rate. Attribution is moot if the lead goes cold before anyone picks up the phone. A well-attributed channel with a slow response is still a losing channel.

Related reading

Fair questions

Why should I fund a channel with a higher cost per lead?

Cost per lead does not show lead quality or closed revenue. A channel sending 10 leads at $120 each with a 40% close rate can produce more net revenue than one sending 30 leads at $35 each with an 8% close rate. Compare channels using revenue per lead minus media cost, not lead cost alone.

Will separate tracking numbers confuse callers or force us to manage multiple phone lines?

No. Each tracking number routes to the same main line while recording the channel that produced the call. Customers simply dial the number shown on the listing, landing page, profile, or email. The business keeps one answering workflow, while the attribution system connects each phone lead to its original source.

Can I rely on the conversion reports inside Google Ads and Meta?

Not by themselves. Google Ads can miss landing-page calls, while Meta may credit view-through conversions that another channel helped close. Use channel-specific call tracking, preserved UTM parameters, and recorded job values alongside platform reports. Read first-touch and last-touch attribution together so one platform does not receive too much or too little credit.