HVAC lead flow has a rhythm no other trade has: eleven months of steady demand punctuated by two weeks — the first heat wave, the first hard freeze — when every homeowner calls at once and every contractor pays triple for the same clicks. The companies that win aren't the ones who spend the most in July; they're the ones whose pipeline was built in April. Here's the full picture.
The seasonality trap (and the shoulder-season play)
When the first 95° week hits, search volume for emergency terms explodes — and so do CPCs, because every HVAC company in the metro floods the auction the same morning. Accounts that cold-start in peak week pay maximum prices with uncalibrated bidding (why that matters).
The counter-play runs through the shoulder seasons:
- Spring/fall: maintenance and tune-up campaigns at the year's cheapest CPCs. A $89 tune-up isn't the profit — it's the relationship, the review, and first look at every aging system in the service area.
- Pre-season: Smart Bidding stays warm on steady budgets, so when the weather turns you're scaling a calibrated account, not launching a cold one.
- Peak weeks: budget headroom rules pre-agreed (2-3x within 48 hours of a heat event), emergency campaigns with same-day messaging, and answer-speed discipline — emergency HVAC goes to whoever picks up.
Repair vs replace: split them or misprice both
A repair ticket runs $150-600; a replacement runs $6,000-15,000+. Homeowners search them differently ("ac not cooling today" vs "ac replacement cost"), and one shared campaign misprices both. Separate campaigns, budgets, and landing pages — and a repair-to-replace process in the truck, because a technician at the kitchen table with financing options is the highest-converting "campaign" in HVAC. Feed booked replacements back into bidding as high-value conversions and the account learns to find them.
The owned stack
- Local Services Ads — HVAC is a core Google Guaranteed category: exclusive leads at $20-60, top placement, ranked by reviews and response speed. Get verified before the season, not during.
- Search, intent-split — emergency/repair, replacement (with financing messaging), and maintenance campaigns, each with matched landing pages and negative keywords tuned weekly.
- Maintenance agreements as the LTV engine — recurring revenue, smoothed seasonality, and a database of future replacements you already have a relationship with. Marketing that feeds an agreement program compounds; marketing that feeds one-off repairs rents.
- Reviews + GBP — feeds the map pack and your LSA rank simultaneously.
- Shared marketplaces last, under the same rule as every trade: five-minute response or don't bother, and cut them when their cost per booked job loses to your own channels (the full contractor-leads math).
The number to run monthly
Cost per booked job by channel and job type — repairs and replacements tracked separately, because a channel that's expensive per lead can be the cheapest per replacement. Current ranges are on the benchmarks page; the campaign structure is in the home-services playbook.
Want the seasonal engine built properly — LSAs ranked, intent-split Search, a pre-season calibration plan, and booked-job tracking that knows a replacement from a repair? Book a free audit and a senior strategist will map your market's real numbers.