You already know lead generation isn’t free. What you don’t know is whether you’re throwing $3,000 or $30,000 a month at something that might not book a single job. Most HVAC operators guess. That ends today.
The Four Pricing Models (And What You Actually Get)
There are roughly four ways to buy HVAC leads. Each has a different cost structure, unit economics, and failure rate. Understanding the difference is the only way to stop overpaying.
Model 1: Local Service Ads (LSA) Only
Monthly spend: $800–$3,500.
You pay per booked job. That’s the entire pitch. Google owns the intake, the scheduling, the handoff. You never see the lead before it’s an appointment on your calendar.
What’s included: Your company shows up in the local pack. Google handles phone routing. You pay only when someone actually books a service call with you (Google’s definition, not yours). No ad spend disappears into impressions or clicks that don’t convert.
Why operators use it: It’s the lowest-risk entry point. You spend $15–$35 per booked job, depending on your market (seasonal swings are brutal here—more on that later). No contract. No agency overhead.
Why it stops working: You have zero control over how many leads you get or when. Google decides your spend cap. You can’t scale beyond what the algorithm allocates. Most operators on LSA alone hit a ceiling around 8–12 jobs per week and can’t break through.
Model 2: In-House Hire (One Full-Time Lead Gen Person)
Monthly cost: $4,500–$7,500 (salary + tools).
You hire a dedicated person to run Google Ads, Facebook, maybe SEO content. They own your pipeline from cold click to scheduled appointment.
What’s included: One full-time employee. Google Ads platform account and management. Facebook and Instagram ads. Basic website landing pages. CRM integration (usually Jobber, ServiceTitan, or Housecall Pro). Email follow-up automation.
Why operators choose this: You own the data. You see every lead, every call, every conversion metric. If it fails, you fire the person, not the contract. Your cost is predictable.
Why it breaks: One person can manage ~$8,000–$12,000 in monthly ad spend effectively. Beyond that, quality drops and you’re overpaying for click-through rates. They’ll also spend 40% of their time on admin, CRM cleanup, and reporting instead of optimization. Turnover is high in this role (it’s lonely, it’s boring, it’s heavily scrutinized).
Model 3: Generalist Digital Agency
Monthly spend: $3,000–$8,000 (ad spend) + $1,500–$3,000 (management fee).
A traditional digital marketing agency (the kind that handles dentists, roofers, and tax firms) runs your HVAC ads alongside 30 other clients.
What’s included: Campaign setup and optimization. Ad copy creation. Landing page design. Monthly reporting. Likely some SEO and organic social (often mediocre). Account manager assigned to your account (who touches it 2–3 hours per week).
Why you hire them: You wanted to avoid the in-house headache. You thought outsourcing meant hands-off.
Why they fail HVAC operators: They optimize for clicks and impressions, not booked jobs. They don’t understand your seasonality (shoulder seasons spike cost-per-lead). They’ve never dispatched a crew or managed a technician calendar, so they don’t know what a “warm” lead looks like. Churn is the business model (they replace 40% of clients yearly).
Model 4: Full-Stack HVAC Lead Partner
Monthly spend: $5,000–$15,000 (ad spend) + $2,000–$5,000 (management fee) or hybrid cost-per-booked-job model.
A partner built specifically for HVAC operators manages paid channels, organic search, phone intake, lead qualification, and dispatch integration. You’re not a line item on their spreadsheet; HVAC is their entire business.
What’s included: Campaign management across Google, Facebook, and display networks. Real-time lead scoring (hot lead vs. wrong zip code). Phone intake training for your dispatcher or front desk. CRM setup and integration. Seasonal bid adjustments. Ongoing optimization tied to your dispatch calendar. Weekly check-ins focused on cost-per-booked-job, not vanity metrics.
Why operators pick this: Your lead flow is tied to your crew’s actual capacity. No overspending in slow season. No underspending in peak. You talk to someone who’s seen 200+ HVAC companies book jobs the same way you do.
Realistic trade-off: You’re paying for expertise and accountability. The fee is higher. But cost-per-booked-job typically lands in the $18–$28 range, and the operator controls the volume. You can pause. You can scale. You’re not guessing.
Why Monthly Cost Is the Wrong Metric
Every operator asks: “How much should I spend per month?” It’s the wrong question. You should ask: “How much am I paying per booked job?”
A $2,000 monthly spend at $45 cost-per-booked-job = 44 jobs per month (realistic for a 3–5 tech crew). A $6,000 monthly spend at $22 cost-per-booked-job = 273 jobs per month. Same market, different outcomes.
Cost-per-booked-job is the only number that matters because it scales with your crew size. If you have five technicians, you need 25–30 booked jobs per week. If you have two, you need 10–15. Your lead gen cost should flex with that, not fight against it.
Realistic cost-per-booked-job ranges by model:
- LSA only: $15–$35 per booked job (higher in cold months, lower in peak summer).
- In-house hire: $20–$40 per booked job (depends heavily on the person’s skill).
- Generalist agency: $30–$55 per booked job (they’re not optimizing for your metric).
- Full-stack HVAC partner: $18–$28 per booked job (at scale and consistent optimization).
The Seasonality Math (Why Winter and Fall Cost More)
Every HVAC operator knows their busy season. Most don’t account for seasonality in their lead gen budget. That’s why they panic in November.
In shoulder seasons (fall and early spring when people are fixing or replacing systems before the extreme season hits), competition for ad inventory spikes. More roofers, plumbers, and electricians are running ads. More homeowners are searching “HVAC contractor near me.” The cost per click goes up 30–60%. Your cost-per-booked-job jumps accordingly.
Peak summer (June–August)? You have fewer competitors, but also fewer people thinking about HVAC repair (they’re dealing with the heat). Cost per click is lower, but fewer clicks convert. The math evens out, but the lead volume feels thinner.
Winter (December–February)? Dead. No one replaces their furnace in January. Spend here is money on fire unless you’re an emergency-only shop. Most HVAC operators should pause or cut ad spend to LSA-only during winter (you’ll still catch emergency calls).
Realistic seasonal cost-per-booked-job swing:
- Summer peak (June–August): $18–$25 cost-per-booked-job.
- Fall shoulder (September–November): $28–$42 cost-per-booked-job (highest).
- Spring shoulder (March–May): $22–$35 cost-per-booked-job.
- Winter (December–February): $35–$55 cost-per-booked-job or pause paid ads entirely.
If you’re budgeting for lead gen, you need a seasonal budget, not a flat monthly one. Set aside 25–35% more in Q4 (fall shoulder season). Dial back by 40–50% in winter unless emergency service is your bread and butter.
What Kills Your Payback Math
Most HVAC operators think lead gen is expensive because they’re measuring it wrong. Here are the three silent killers:
No-Shows and Cancellations
You book 50 jobs but 8 cancel before the appointment. That’s 8 leads you paid for that never converted to revenue. If you’re paying $25 per booked job, you just paid $200 for nothing. This is the intake problem. Your dispatcher is overworking leads, not qualifying them hard, or your response time is slow.
Wrong Lead Source Mix
You’re running $2,000 in Facebook ads that book 5 jobs and $1,000 in Google Ads that books 20 jobs. But because the Facebook ads “feel” cheaper, you keep scaling them. You’re optimizing the wrong channel. Track by source. Kill what doesn’t work.
Slow Follow-Up
A lead sits in your CRM for 48 hours before someone calls. By then, they’ve called three other HVAC shops. You’ve paid for a lead you didn’t close because your process is slow. Most operators need 2–4 hours from lead to first call. Anything slower than that kills close rates by 25–40%.
What to Budget for Right Now
If you’re a $5–$20M HVAC operator and you don’t have a dedicated lead gen system, here’s what to expect to spend:
- If you’re small (1–2 crews, 6–12 jobs per week desired): $2,000–$4,500 per month. LSA-only or one part-time in-house person. Target cost-per-booked-job: $28–$35.
- If you’re mid-size (3–5 crews, 15–25 jobs per week desired): $5,000–$9,000 per month. Full-time in-house or mid-tier agency. Target cost-per-booked-job: $22–$28.
- If you’re scaling (5+ crews, 25+ jobs per week desired): $8,000–$16,000 per month. Full-stack partner with optimization. Target cost-per-booked-job: $18–$24.
These ranges assume your closing rate is solid (40–60% of booked appointments become paid work), your dispatch schedule can handle the volume, and you’re following up within 4 hours.
The Bottom Line
HVAC lead generation costs $18–$40 per booked job when done right. Your monthly budget is a side effect of how many jobs you need, not the other way around. Stop asking “How much should I spend?” Start asking “What’s my cost per booked job, and can I handle the volume?”
Pick a model. Commit to it for 90 days. Track cost-per-booked-job obsessively. Season your budget up and down with the market. Fire what doesn’t work. That’s how operators at your level stop guessing and start scaling.
Receipts
Three operators. Three numbers that didn’t exist before us.
Operator confidentiality means we don’t name names publicly. We’ll connect you with the operator on a 1:1 reference call after the diagnostic.
$9M HVAC operator with two underutilized markets. We rebuilt local SEO + LSA + speed-to-lead in 45 days. Q1 booked 842 jobs above prior-year baseline.
Multi-market HVAC · LLL since 2025
Plumbing operator leaning 90% on referrals. We launched paid + programmatic SEO across two metros. Q1 added $1.9M attributable.
Multi-metro plumbing · LLL since 2025
Roofing operator with $480 cost-per-booked-job. We rebuilt LSA + landing pages around storm triggers. CPBJ down 43% in 90 days, same spend.
Regional roofing · LLL since 2025
Common questions
Why is cost-per-booked-job the number?
Because booked jobs are revenue. Everything else is a proxy.
Ready to swap dashboards for a calendar full of jobs?
30-minute strategy call. We pull your numbers, find the bottleneck, give you the plan. No deck. No pitch. No follow-up sequence.