Skip to content
Lead Junkie

Measurement

HVAC cost per lead vs cost per booked job

Owners Google “HVAC cost per lead” because agencies and blogs publish tidy tables. Those tables are not your P&L.

I grew an electric and HVAC shop with my own marketing spend. Real tests, not theory. How Lead Junkie got built.

CPL is a name. Cost per booked job is a calendar.

CPL tells you what you paid for a name, form, call, or chat. Cost per booked job tells you what you paid to get a job on the calendar. If you only manage to CPL, you will scale junk.

I’m Joey Donohue. I built Lead Junkie after spending $750k of my own money on marketing while growing an electric + HVAC shop from about $2.1M to $7M. On Meta, Joey’s shop booked 31 customers on $1,800 and 25 customers on $700 — that’s cost tied to customers, not a scraped industry CPL chart. Those are Joey’s shop results, not client case studies and not a promise of what you’ll pay. About.

This article teaches you how to calculate your numbers from your CRM. No invented benchmarks.

Why CPL lies to HVAC owners

A “lead” might be a bot or wrong ZIP, a tire-kicker collecting quotes, a real no-cool who called three shops and booked the first human who answered, or a changeout shopper six months out. Platforms celebrate the cheap ones. Your trucks need the bookable ones.

CPL also ignores speed-to-lead (slow follow-up inflates “lead count” that never had a chance), close rate and average ticket, channel mix (Google intent vs Meta conversations — Forms vs Messenger), and seasonal Southeast spikes where everyone bids on “AC not cooling” (AC not cooling ads).

Definitions you should actually use

Pick definitions. Write them down. Stop changing them every month to make a dashboard pretty.

  • Marketing-qualified contact: human in your service area with a job type you sell, who you successfully contacted.
  • Booked job: appointment or install date on the calendar (use your definition consistently — Housecall Pro job, etc.).
  • Cost per booked job: ad spend (and, if you want honesty, + agency fees) ÷ booked jobs attributed to that spend in a period.
  • Cost per won job / revenue: optional next step after show rate and close rate.

How to calculate cost per booked job from your CRM

Do this in a spreadsheet. Use your numbers only.

  • Step 1 — Pick a window. Last 30 or 90 days. Same window for spend and jobs.
  • Step 2 — Pull spend by channel. Google Search, LSA, Meta, TikTok, etc. Keep them separate. See channel roles on Facebook ads vs Google ads for HVAC and LSA.
  • Step 3 — Count leads the way the platform does (optional). This is your CPL = spend ÷ platform leads. Fine as a diagnostic — not the scoreboard.
  • Step 4 — Count booked jobs attributed to that channel. From Housecall Pro / ServiceTitan / your CRM: source / campaign fields, call tracking tags, “How did you hear” only if you trust it (usually weaker than tracking). If attribution is messy, fix tracking before you argue about creative. Site + tracking basics: HVAC website design.
  • Step 5 — Divide. Cost per booked job = channel spend ÷ booked jobs from that channel.
  • Step 6 — Add the leak metrics for the same window: time to first response, contact rate, book rate (booked ÷ contacted), show rate, close rate / average revenue per booked job.

The arithmetic — not a benchmark

The math is simple: take what you spent on a channel and divide it by the jobs that channel actually booked. That’s your cost per booked job. Your ticket size and margins decide whether that number is healthy — not a blog table.

You’ll often find the problem isn’t “Google is expensive” — it’s that nobody answered, or estimates died. Follow-up after the estimate.

Joey’s shop: how to read proof without turning it into a fake benchmark

When I say Joey’s shop booked 31 customers on $1,800 Meta spend, the useful lesson is count customers, not “Meta CPL is always X.”

Your market, offer, creative, and follow-up differ. Steal the measurement habit, not a fantasy target.

Same with $750k own spend and $2.1M → $7M growth — proof Lead Junkie was built by an operator, not a guarantee of your ROI. HVAC lead generation.

What to do when CPL looks “good” but the calendar is empty

If you need a human to pressure-test the stack: contact · 786-910-6062 · joeyleadjunkie@gmail.com. Google Ads, SEO, and Meta + TikTok Ads are $1,500/month each, no contract — see pricing.

  • Audit speed-to-lead and after-hours
  • Separate no-cool vs changeout vs maintenance campaigns
  • Kill DIY/out-of-area junk with negatives and form questions
  • Make the landing page phone-first
  • Recalculate cost per booked job weekly in season

FAQ

What is a good HVAC cost per lead?
There isn’t a universal honest number. Agencies publish tables; your booked-job math is the only budget that matters.
What is a good cost per booked job?
Whatever still leaves margin after tech cost, overhead, and close rate — calculated from your average ticket. I’m not going to invent a national benchmark for you.
Should I include salary for CSRs in the formula?
For true fully-loaded cost, yes. For channel comparison, many shops start with media spend only — just don’t mix methods.
Is LSA “cost per lead” the same as Search CPL?
Different billing and junk profiles. Compare on cost per booked job and close rate, not headline CPL alone.
Will Lead Junkie promise a CPL?
No. We talk booked work, dispatch reality, and whether ads should even run yet.

HVAC contractors · Southeast

Talk about your HVAC shop.

HVAC contractors in the Southeast — get a quote or call. I’ll tell you if ads, SEO, or the site even make sense yet.