Most HVAC companies decide their social ad budget by gut feel: "let's try $500 and see." That rarely produces a useful answer, because $500 is either too little to learn anything or spent without a way to tell what it did. This guide shows how to work out a budget from your own numbers, how to set a test with a clear stop rule, and how to read the results honestly.
Step 1: Know what a booked job is worth
Start with the value of the job you are advertising, then add the follow-on work it tends to bring. Use your own records; the figures below are only examples.
| Job type | Example ticket | Follow-on value | Total value per booked job |
|---|---|---|---|
| Fall tune-up | $169 | One in eight leads to a $600 repair: about $75 | About $244 |
| Maintenance plan | $240 a year | Kept for three years on average: $720 | About $720 |
| Heat pump replacement | $14,000 | Future service and plan sign-up | $14,000 plus |
Two adjustments matter:
- Use gross margin, not revenue, if you want a true picture of what you can afford. A $169 tune-up might leave $90 after the tech's time, travel and materials.
- Count lifetime value carefully. A maintenance plan customer is often worth much more than one visit, but only if they renew.
Step 2: Set an affordable cost per booked job
Decide what share of each job's margin you are willing to spend to win it. A common starting point for HVAC is 25% to 40% of the first job's gross margin for tune-ups, and a much smaller share of the ticket for replacements.
Worked example for tune-ups:
- Tune-up gross margin: $90
- Plus follow-on repair margin (one in eight repairs at $300 margin): about $37
- Total margin per booked tune-up: about $127
- Spend no more than 40% of that: an affordable cost per booked tune-up of about $50
For a heat pump replacement with $4,000 of gross margin, an affordable cost per booked install might be $400 to $800, but replacements take longer to close, so the test needs to run longer.
Step 3: Set a test budget that can actually teach you something
A test needs enough results to be meaningful. Aim for at least 15 to 20 booked jobs (or tracked calls, if bookings take longer) in the test period.
Test budget = affordable cost per booked job × target number of results.
- Tune-ups: $50 × 20 = $1,000 over four to six weeks
- Maintenance plans: $80 × 15 = $1,200 over six weeks
- Heat pump assessments: $150 × 15 = $2,250 over eight weeks
These are planning figures, not predictions. Your actual cost could be lower or higher, which is exactly what the test is for.
Step 4: Write the stop rule before you start
Decide in advance what result means "stop", "change" or "keep going". Writing it down protects you from two common mistakes: quitting too early and spending too long on a failing campaign.
A simple stop rule for the tune-up test:
- After two weeks: if there are zero tracked calls, check that tracking works and the ads are approved. If both are fine, change the creative and offer.
- After four weeks: if the cost per booked tune-up is above $100 (twice the target), stop or rebuild.
- After six weeks: if the cost per booked tune-up is under $50, increase the budget in steps of 20% to 30% while watching whether it holds.
Meta and TikTok need different expectations
The two platforms behave differently, so judge them differently.
Meta (Facebook and Instagram) reaches homeowners who are often at the decision-making age for HVAC purchases, and it offers retargeting of website visitors. For tune-ups, maintenance plans and retargeting, it usually produces trackable calls within weeks. See our Meta ads service.
TikTok can cost less per view, and reaches younger homeowners and future technicians. But the path from view to call is longer. Many people see a clip, remember your name and search for you days later. That makes direct tracking weaker. Judge TikTok over a longer period, track branded searches and direct calls as softer signals, and treat recruiting as one of its stronger uses. See our TikTok ads service.
A sensible order for most HVAC companies: run Meta first, measure it properly, then test TikTok with a separate budget and its own stop rule.
Step 5: Track calls without complicated software
You need three things to connect ad spend to booked jobs.
- A tracked phone number on each campaign's ads and landing page, so calls can be counted by source.
- The platform pixel on your website, so visits and calls from the site can be tied to ads.
- A weekly tally. Your office notes the source of each booked job. A simple spreadsheet is fine.
If messages from social ads turn into text or email conversations, remember that Canada's anti-spam legislation requires consent for commercial electronic messages. Replying to someone who contacted you is normal; adding them to a promotional list without consent is not.
Step 6: Read reports honestly
Weak campaigns are often made to look good with the wrong numbers. Watch for these:
- Reach and impressions presented as results. They measure how many people saw something, not whether anyone called.
- "Leads" that include every click or form open. Ask how many became booked jobs.
- Cost per lead without cost per booked job. A $10 lead that never books is expensive.
- Short date ranges chosen to flatter. Ask for the whole test period.
- Attribution claimed for calls that would have happened anyway, such as existing customers calling a number they already had.
Ask for one number above all: cost per booked job, by campaign, for the whole period.
Advertise prices honestly
If an ad shows a price, it must be the price. The Competition Bureau's rules on drip pricing prohibit advertising a price that leaves out mandatory fixed fees. A "$79 tune-up" that becomes $129 with a mandatory trip charge creates legal risk and bad reviews. Show the full price, or describe the offer without one.
A worked example from start to finish
Here is the whole process for a single-location company planning a fall campaign.
- Value. Tune-up margin $90, plus about $37 of follow-on repair margin: $127 per booked tune-up.
- Affordable cost. 40% of $127: about $50.
- Test budget. $50 × 20 = $1,000 over five weeks, starting in mid-August.
- Stop rule. Rebuild if cost per booked tune-up is above $100 at week four; scale if under $50 at week five.
- Result (example). $1,000 spent, 24 tune-ups booked: $42 each. Three repairs followed.
- Decision. Increase the budget by 25% for September and keep watching the cost per booked job.
If the result had been 8 tune-ups at $125 each, the decision would be to change the offer or creative, or to stop.
Where to go next
If you want this done for you, our Meta ads service builds the plan, tracking and stop rules in writing before launch. For content to feed the ads, see the job-site video playbook. To talk through your numbers, see pricing or contact us.
Frequently asked questions
What is a reasonable test budget for Meta ads?
Enough to produce at least 15 to 20 tracked calls or booked jobs within the test period, so the result means something. Work it out from your expected cost per booked job rather than picking a round number.
Should we count leads or booked jobs?
Booked jobs, wherever you can. A lead that never books costs money and produces nothing. Counting booked jobs keeps campaigns honest.
Do we need expensive tracking software?
No. A tracked phone number per campaign, the platform's pixel on your website, and a simple weekly tally of booked jobs by source are enough for most HVAC companies.
Sources
- Competition Bureau: Drip pricing (2026-10-22)
- CRTC: Frequently asked questions about Canada's Anti-Spam Legislation (2026-10-22)