How to Build an HVAC Marketing Plan (With a Sample and Seasonal Calendar)

By Christoph Olivier, Founder, CO Consulting
Last reviewed: July 2026
Most HVAC marketing plans are just a list of tactics. Run some Google Ads, post on Facebook, buy a few Angi leads. That is not a plan. A plan starts with your numbers, decides what a booked job is allowed to cost, and paces spend across the year so you are not broke in April and buried in July. Here is how to build one a technician-owner can actually run.
What an HVAC marketing plan actually is
An HVAC marketing plan is a written system that ties your marketing spend to booked jobs and revenue, not clicks or leads. It sets a budget as a share of revenue, picks a small number of channels, assigns a target cost per booked job, and schedules that spend against your seasonal demand. The goal is a full board year-round, not a busy summer and a dead fall.
Skip the vanity. You are not buying impressions. You are buying confirmed appointments on the board and, from those, replacement sells and membership signups.
Start with two numbers: average ticket and cost per booked job
Before you pick a single channel, know your average ticket and your cost per booked job. Average service ticket for residential HVAC runs $400 to $700, while a system replacement runs $4,800 to $13,000 or more. Cost per booked job is what you paid in marketing to put one confirmed appointment on the board. Those two numbers decide how much you can afford to spend and still profit.
Cost per lead lies. Cost per booked job tells the truth. A $140 Local Services Ads call becomes a $240 cost per booked job at a 90% answer rate and 65% booking rate. The same $140 call becomes a $514 cost per booked job at a 68% answer rate and 40% booking rate. Same ad spend, double the cost, and the difference is how your office answers the phone. That is why HVAC marketing has to include the booking step, not just the ad.
Blended customer acquisition cost across HVAC lands around $296 to $350. Top operators hold it under $350 while spending 8% to 12% of gross revenue on marketing. If you cannot measure cost per booked job yet, that is your first project. Put call tracking on every number and tag booked jobs in your CRM.
The seven parts of every HVAC marketing plan
- Budget: a fixed share of projected revenue, usually 5% to 8% in maintenance mode, 7% to 10% for growth, and 12% or more for aggressive expansion.
- Targets: a cost-per-booked-job ceiling and a monthly booked-job goal, split by service calls and replacements.
- Core channels: Local Services Ads, Google Business Profile, and reviews. These carry the plan.
- Membership growth: a monthly target for new maintenance agreements.
- Speed to lead: missed-call text-back and a booking process that converts the call.
- Seasonal pacing: a month-by-month budget that funds peak and defends shoulder season.
- Measurement: booked jobs, cost per booked job, close rate, average ticket, and membership count.
The core channels, ranked by booked-job value
Put money where high-intent buyers already are. For HVAC, that means Local Services Ads and the map pack first, then reviews to feed both, then a membership engine that lowers next year’s acquisition cost. Everything else is secondary.
| Channel | What it delivers | Rough economics |
|---|---|---|
| Local Services Ads (Google Verified) | Top-of-page, pay-per-lead, high intent | ~$51 per lead, 44% book rate, ~$168 per booked job |
| Google Business Profile and map pack | “Near me” visibility, compounding, cheapest long run | Ranks on relevance, distance, prominence |
| Reviews (volume and recency) | Map-pack ranking factor and trust signal | 6 to 10 new reviews per month hold positions |
| Membership reactivation (email/text) | Cheapest revenue you own | Maintenance-customer acquisition ~$100 vs $300 to $500 for install |
| Shared leads (Angi/HomeAdvisor) | Same lead sold to several contractors | ~$542 per booked job, over 3x Local Services Ads |
The move is simple. Shift budget out of shared leads at roughly $542 per booked job and into Local Services Ads at roughly $168, plus your own Google Business Profile and reviews. Measure it in cost per booked job, not cost per lead. A specialist in local SEO for HVAC contractors can build the map-pack and review-velocity side so it compounds instead of resetting every month.
Membership growth is the engine, not a nice-to-have
Maintenance agreements are the strategic core of the whole plan. They run $15 to $30 a month, carry 50% to 65% gross margin, and pull through $1 to $3 of repair and replacement work for every $1 of contract. Members generate about 2.1x the repair revenue and far higher lifetime value than one-time callers. A membership-attached customer is worth roughly $47,200 over the relationship versus about $15,340 for a non-member.
A strong membership base can cover 40% to 60% of fixed costs and fills truck time in the dead months. Set a monthly signup target and put it in the plan next to your booked-job goal. This is also what raises your sale multiple if you ever exit, because recurring revenue is what buyers underwrite.
Do not lose the calls you already paid for: missed-call text-back
You paid $51 for that Local Services Ads lead. If the phone rings while a tech is under a house and no one picks up, that money is gone. Missed-call text-back fires an automatic text the second a call goes unanswered, so the homeowner gets “Sorry we missed you, can we book you in?” instead of dialing the next contractor. In a no-heat or no-cool emergency, the buyer is in pain and calling three shops at once. First to respond usually wins the job.
Note the rules. Marketing and review-request texts generally need clear opt-in and opt-out language under the TCPA, so build consent into your intake.
A sample HVAC marketing plan
Here is a worked example for a five-truck residential shop doing $1.5M a year. At 8% of revenue, the marketing budget is $120,000 a year, or about $10,000 a month before seasonal pacing.
| Line item | Monthly (average) | Target |
|---|---|---|
| Local Services Ads | $3,500 | Cost per booked job under $200 |
| Google Search Ads (repair intent) | $2,500 | Feed replacement sells |
| Local SEO and Google Business Profile | $1,800 | Map-pack top 3 in core towns |
| Reviews and reputation system | $700 | 8 or more new reviews per month |
| Membership email/text reactivation | $500 | 20 or more new agreements per month |
| Website, tracking, missed-call text-back | $1,000 | 90% or higher answer rate |
Targets for the year: hold blended cost per booked job under $300, grow the membership base by 240 agreements, and keep the close rate above 55%. Those are goals, not promises. Real numbers depend on your market, your pricing, and how your team runs the call.
The seasonal calendar: fund peak, defend shoulder season
HVAC demand is not flat, so your budget should not be flat either. Cooling peaks June to August, heating peaks December to February, and the shoulder seasons of April to May and September to November are the killers. Emergency-only shops see revenue drop 50% to 75% from peak to shoulder. The plan funds peak to capture urgent demand and defends shoulder season with membership and tune-up campaigns so the trucks stay full.
| Season | Months | Focus | Budget posture |
|---|---|---|---|
| Winter peak | Dec to Feb | No-heat emergency capture, replacement sells | Fund heavy, max Local Services Ads and search |
| Spring shoulder | Apr to May | AC tune-ups, membership drive, pre-summer list warmup | Defend, push maintenance agreements |
| Summer peak | Jun to Aug | No-cool emergency capture, fast mobile booking | Fund heavy, protect answer rate |
| Fall shoulder | Sep to Nov | Heating tune-ups, membership renewals, reviews | Defend, note the October furnace-failure spike |
Timing matters. Launch spring AC campaigns in February or March and fall heating campaigns in August or September, at least a month before demand rises. October often spikes on its own as dormant furnaces get fired up and fail, so keep emergency budget live through fall instead of cutting it. The owners who say “I am slammed in July anyway” are missing the real gap, which is April and October, and that is exactly where a paced plan earns its keep.
What changed in 2025: the Google Verified badge
Your trust story changed on November 7, 2025. Google consolidated Google Guaranteed, Google Screened, and License Verified into a single “Google Verified” badge and ended the money-back Google Guarantee. The old badge reimbursed unhappy homeowners up to about $2,000 per market. The new blue badge signals vetting and legitimacy only, with no money-back promise.
What that means for your plan: lean your trust story on reviews, warranties, and your own written guarantees to replace the Google-backed one that vanished. Keep the badge by renewing your license and insurance on schedule. It still requires a verified Google Business Profile, license verification, insurance, and background checks, which is a real barrier and a moat once you clear it.
How to know the plan is working
Track five numbers monthly: booked jobs, cost per booked job, close rate, average ticket, and membership count. If cost per booked job climbs, look at answer rate and booking rate before you blame the channel. If membership count is flat, your recurring revenue and your shoulder season are both at risk. Review the plan every quarter and shift budget toward whatever produces the cheapest booked jobs.
Building and running this while also running trucks is a lot. If you want an owner-level operator to set the targets, pace the budget, and hold the channels accountable, a fractional CMO for HVAC contractors gives you that layer without a full-time hire. Book a consultation to map your numbers to a plan.
Frequently asked questions
How much should an HVAC company spend on marketing?
Most HVAC companies spend 5% to 8% of revenue in maintenance mode, 7% to 10% for steady growth, and 12% or more when pushing hard. Top operators hold blended customer acquisition cost under $350 while spending in the 8% to 12% range. Set the number as a share of projected revenue, then pace it across the season.
What is a good cost per booked job for HVAC?
Aim for under $200 to $300 per booked job on high-intent channels. Local Services Ads average about $168 per booked job, while shared Angi leads run around $542. Your actual number depends heavily on answer rate and booking rate, so a $140 call can cost $240 or $514 depending on how your office handles it.
When should I start seasonal HVAC campaigns?
Launch about a month before demand rises. Start spring AC tune-up campaigns in February or March and fall heating campaigns in August or September. Keep emergency budget live through October, because dormant furnaces often fail then and create a spike. Do not wait for peak to start advertising, since your competitors are already there.
Do HVAC maintenance memberships really matter for marketing?
Yes, they are the engine. Memberships carry 50% to 65% gross margin, pull through $1 to $3 of work per $1 of contract, and produce roughly 2.1x the repair revenue of non-members. A membership-attached customer is worth about $47,200 versus $15,340 for a one-time caller, and the base fills shoulder-season truck time.
What replaced the Google Guarantee money-back badge?
On November 7, 2025, Google ended the money-back Google Guarantee and folded Google Guaranteed, Google Screened, and License Verified into one “Google Verified” badge. The new badge signals vetting only, with no consumer reimbursement. Shift your trust story to reviews, warranties, and your own guarantee, and renew license and insurance to keep the badge.
Can a marketing plan guarantee more booked jobs?
No honest plan guarantees results. Markets, pricing, and how your team answers the phone all move the numbers. What a good plan does is set targets, measure cost per booked job, and pace budget so spend follows demand. That discipline improves your odds, but treat any firm promising guaranteed jobs with caution.
