HVAC Google Ads resource

HVAC Google Ads cost and budget guide

A typical mid-sized HVAC shop on Google Ads spends $3,000 to $15,000 per month. Within that range, the math that decides whether the spend is profitable is the same regardless of total budget: cost per booked job has to land below the gross profit per job, and the lead-to-booking rate has to be high enough that the cost-per-click never gets a chance to look like the answer. Below is the formula, the inputs, and what changes the answer for an HVAC operator on the Boston North Shore.

Quick answers

Quick answers

A mid-sized HVAC shop running Google Ads in a Boston North Shore market typically sees CPCs of $8 to $25 on non-branded service queries (AC repair, furnace replacement, emergency HVAC) and CPCs under $1 on branded queries. Industry benchmark data from PPCChief and SearchLight Digital puts cost per lead at $80 to $150 in healthy accounts, and $300+ in accounts with broken conversion tracking or message-match issues. Branded campaigns convert at 2 to 4 times the rate of non-branded campaigns and should be tracked separately because pooling them hides the real economics.

The break-even formula starts with gross profit per job: average ticket multiplied by margin. At a 25% EBITDA on a $1,800 average ticket, that comes out to roughly $450. That number sets a hard ceiling: cost per booked job has to land below it for the campaign to pay for itself. With a 35% lead-to-booking rate (industry-typical for trades that answer the phone), the math works out to a cost per lead under about $158 and a non-branded ROAS over roughly 4.0x. Numbers shift with margin, ticket size, and close rate, but the formula is the same.

The clean decision metric is not CPC, and it is not raw cost per lead. It is cost per booked job, evaluated separately for branded and non-branded campaigns, with quality scored against the actual revenue from those jobs. An account that looks expensive on cost per click can be highly profitable; an account with a great-looking cost per click can be losing money on every booked job.

Budget planning

How to plan the budget

The right starting budget is the one large enough to produce statistically meaningful conversion data inside 60 to 90 days. Smaller than that, the account never reaches the data threshold where Google's bidder can optimize. Larger than that, money goes out the door before the account knows what to learn from.

Start from the job math, not from the click. Average revenue per job, gross margin, lead-to-booking rate. The break-even ROAS falls out of those three numbers; the rest of the campaign is built to hit it.
Separate branded from non-branded budget. Branded is cheap and high-conversion (defending the prospect's own name from competitor encroachment), non-branded is expensive and slower-converting (acquiring new customers). Pool them and the average obscures both.
Separate emergency from planned-service budget. Emergency intent (no heat, no AC, leak) converts at 2 to 3 times the rate of planned-service intent (tune-up, replacement quote) at similar CPCs. Different campaigns, different bid strategies, different landing pages.
Plan for 60 to 90 days of learning. The bidder needs roughly 30 conversions per campaign to optimize meaningfully. At a 35% lead-to-booking rate that is roughly 90 leads, which at a $120 cost per lead is roughly $10,800 of total spend before the account is producing reliable signal.
Reserve 10 to 15 percent of budget for negative-keyword and search-term cleanup. Without it, broad-match leakage to DIY queries, careers searches, and parts-supplier searches eats the budget that should be buying booked jobs.

ROI variables

What changes the math

The break-even ROAS for a typical HVAC shop is roughly 4.0x. Here is the formula that produces that number and why each input matters.

Break-even ROAS = 1/gross margin. At 25% EBITDA, that is 1/0.25 = 4.0x. Spend $1 in ads, the campaign needs to produce $4 in revenue from booked work just to cover the ad cost plus the rest of the cost-of-goods on those jobs. Below 4.0x, every booked job is paid for partly out of margin instead of growing it. Above 4.0x, the campaign is funding the rest of the business.

Two HVAC shops with the same CPC can land on opposite sides of break-even because of factors the click data does not show. The shop that picks up the phone in three rings, sends emergency clicks to a service-specific landing page, blocks the wrong queries with a tight negative-keyword list, and tracks calls from ads back into a CRM is converting clicks into booked jobs at 2 to 3 times the rate of the shop that sends everything to the homepage and trusts a forms-only thank-you page as the conversion event.

Numbers that move the answer:

- Gross margin (the input most operators underestimate). A 30% margin shop has a break-even ROAS of 3.3x; a 20% margin shop needs 5.0x. Margin is the floor of what the ad math can survive. - Average ticket size. Higher tickets tolerate higher cost per lead because the gross profit per booked job is bigger. - Lead-to-booking rate. A 35% close rate is a healthy operator answering quickly. A 15% close rate is leakage somewhere: voicemail, slow callback, untrained intake, or wrong-fit leads. - Branded vs. non-branded mix. Branded campaigns reliably hit 8x to 12x ROAS at $0.50-$1 CPCs. Non-branded campaigns at 3x to 5x ROAS pull the blended number up or down. Track them separately or the average lies. - Emergency vs. planned-service mix. Emergency converts faster but costs more in CPCs (more competition on "no heat" and "no AC" queries). Planned-service is cheaper per click but slower to close. - Conversion tracking integrity. An account that misses 30% of its real conversions because phone calls aren't tracked looks like it has a 5x cost per lead when in reality the cost is healthy and the math is broken at the measurement layer.

Want the budget checked against the account?

Send the account through the audit first. I will look for the tracking, search-term, budget, and landing-page issues that decide whether more spend is useful or just more expensive.

Get the audit
Focus
Specialist paid search
Pricing
$500/month flat
Reply time
Within 24 hours, weekends too
Direct line