If you’re spending 10% of your gross revenue on marketing and your cost per booked job is above $350, you’re not growing. You’re burning cash.
I’ve watched too many HVAC owners hand $3,000-$4,000 a month to marketing agencies and get nothing back but a PDF report. The phone doesn’t ring. The jobs don’t book. But the agency keeps sending that invoice like clockwork.
Let me show you what’s actually happening to your money.
The biggest lie in HVAC marketing. “spend more to grow more”
The bottom-quartile HVAC firms spend 10-18% of revenue on marketing. The top-quartile firms spend 8-12%. The worst performers spend more and get less. That’s not a coincidence.
The difference isn’t how much they spend. It’s where they spend it.
Bottom-quartile firms throw money at the same channels every month. Google Ads, Angi, Thumbtack, without tracking cost per booked job by channel. They don’t know which source actually pays for itself. They just know the credit card gets charged.
“A budget is not a strategy,” as Tracy Paul put it. Real strategy starts with knowing what each dollar buys you in booked jobs, not impressions or clicks or whatever vanity metric the agency puts in that PDF.
You’re probably thinking your marketing is fine. Pull up your Google Ads dashboard right now. Filter by channel. Write down your cost per booked job for each one. If you don’t have that number, you’re the problem.
Your best customer isn’t a new one, it’s the one who already paid you
Most HVAC owners obsess over new customer acquisition. Google Ads. Angi. Thumbtack. The chase for fresh leads.
Here’s the data that should change your mind.
Database marketing to lapsed customers delivers $8-12 ROI per $1 spent. New customer acquisition returns $3-4 per $1. The people who already know you, already trust you, already paid you, they’re three times more profitable to market to.
Think about what that means for a $400 service call. If you spend $100 on Google Ads to get a new customer, you’re hoping that one job covers it. If the customer doesn’t convert, you’re in the hole. But if you spend $100 on a reactivation campaign to a lapsed customer who already had you replace their system two years ago, you’re probably getting $800-$1,200 back.
Yet most owners have a customer database of 1,000, 2,000, 5,000 names sitting there untouched. No emails. No mailers. No service reminders. Just silence.
The sweet spot for HVAC email marketing is two to four emails per month per subscriber. That’s frequent enough to stay top of mind without annoying anyone. A simple three-email sequence. “It’s been a while,” “Here’s a seasonal maintenance offer,” “Last chance before we book up”, can pull 10-15% of lapsed customers back into your pipeline. No ad spend required.
What's your database worth?
That calculator assumes a conservative 3% reactivation rate. Direct mail for service providers has a 3.16% response rate with a 37.57% open rate. A simple postcard to 500 past customers reminding them it’s time for spring maintenance could book 15 jobs before you even open your Google Ads dashboard.
The peak-season money trap, why spreading your budget evenly is stupid
Here’s a question. Do you spend roughly the same amount on marketing every month?
If you said yes, you’re leaving money on the table.
Customer acquisition cost is lowest during peak months, spring, summer, fall. That’s when demand is highest, so your ads convert better, your close rates are higher, and every dollar works harder. Front-loading 60-70% of your annual budget into those 4-6 peak months maximizes efficiency.
Spreading it evenly across 12 months dilutes your impact. You’re spending money in January when nobody’s thinking about AC to get the same cost per lead you could get in May for half the price.
The math is simple. If your Google Ads cost per lead in July is $50 and in January it’s $80, why would you spend the same amount both months? You wouldn’t. But most owners do, because that’s how they’ve always done it.
The seasonality data backs this up hard. In July, online searches for air conditioning repairs jump by 266%., while furnace repair peaks at 137% above baseline in January. HVAC services show 250% to 600% variance between peak and off-peak months. If you’re spending the same in February as you do in July, you’re paying peak-season prices for off-peak attention.
The channel that’s quietly eating your budget. Angi, Thumbtack, and the 14% mistake
Top-quartile HVAC firms allocate only 4-8% of their marketing budget to aggregators like Angi and Thumbtack. The industry average is 14-22%.
That’s a 14-point gap. If you’re spending $50,000 a year on marketing, that’s $7,000 that top performers are spending somewhere else.
Where do they put it? Google Local Service Ads (28-35% of budget vs. 12-18% industry average) and SEO/organic (12-18% vs. 6-10%).
Why does this matter? Because aggregators own the customer relationship. The homeowner called through Angi. They don’t know your name. They know Angi’s name. When they need service next year, they’ll call Angi again, not you. You’re paying to rent a customer you’ll never own.
Local Service Ads and SEO build equity. Every dollar you put into ranking your Google Business Profile or getting your website on page one is an asset that keeps paying. The customer who finds you through Google Search and calls you directly is your customer. They’ll remember your name. They’ll call you next time.
The one metric that separates winners from everyone else
If you track only one number from now on, make it cost per booked job. Not cost per lead. Not impressions. Not clicks. Cost per booked job.
Here’s why it matters. The average HVAC cost per lead across all channels in 2026 is about $153. But that’s a lead, not a job. If your close rate is 30%, your cost per booked job is $510. If your close rate is 50%, it’s $306. The difference between those two numbers is your entire margin.
Top-quartile shops aim for $100 to $250 per booked job on service and repair work with average tickets of $300 to $800. If you’re above $350, you’re not in the game. You’re subsidizing Google’s quarterly earnings.
And here’s the part that hurts. Your close rate on replacement jobs from existing maintenance customers is typically 70-85%. From cold LSA leads researching new systems? 25-35%. That’s not a marketing problem. That’s a relationship problem. And you can’t fix it with more ad spend.
What to do Monday morning
Pull every lead source from last month and divide what you spent by the jobs that actually invoiced. Not leads. Jobs that produced a check. If your top source is a shared lead service charging $75-$100 per lead and converting at 3%, you’re not running marketing. You’re paying ransom. Specifically, BirdEye and Podium hook into ServiceTitan and do the invoice matching for you. If cost per booked job appears nowhere in your agency’s report, the report is telling on itself.
Export your customer database from ServiceTitan or Housecall Pro. Filter for anyone who hasn’t booked in 18 months. That’s your reactivation list. If you have 500 names on it, you’re sitting on $60,000 in potential revenue at a 3% response rate and a $400 average ticket. Mail them a postcard this week. Not next month. This week. Customer reactivation campaigns targeting 12-18 month lapsed customers typically achieve 8-12% response rates, so that 3% is conservative.
Open your Google Business Profile. Check if your primary category is “HVAC Contractor” and your secondary categories include “Air Conditioning Contractor” and “Air Duct Cleaning Service.” If those aren’t set, you’re invisible for half the searches in your market. Google Business Profile optimization directly impacts Local Service Ad performance and organic rankings. Fix it in ten minutes.
Cancel your evenly-spread monthly ad budget. Redo it with 65% of your annual spend allocated to April through September. If you’re spending $4,000 a month now, that means $2,600 in May and $1,400 in November. Google doesn’t care about your monthly budget comfort. It cares about who bids highest when demand spikes. HVAC services show 250-600% variance between peak and off-peak months. Your budget should reflect that, not your accountant’s preference for consistency.
Audit your agency using the 5 Tests to Evaluate Marketing Agency Performance. If they can’t tell you your cost per booked job by channel, your customer lifetime value, and your reactivation campaign ROI, they’re not a marketing partner. They’re a subscription you forgot to cancel.
One more thing. If your agency sends you a monthly report with impressions, clicks, and a “leads generated” number but no cost per booked job, fire them. Not next quarter. This week. There are agencies that will show you real numbers. The ones that won’t are the ones hiding something.
The phone either rings or it doesn’t. The jobs either book or they don’t. Everything else is just noise in a PDF.