A campaign generating more leads can be losing money faster than one generating fewer. That statement runs against how most reporting decks get read, where a rising lead count is treated as proof the marketing is working. Lead volume by itself proves almost nothing. It tells an operator that something happened somewhere in a funnel, not which channel produced the call that turned into a booked repair, and not whether that job covered the cost of acquiring it.
The gap between activity and revenue is where most heating and cooling marketing spend disappears. Closing that gap requires a sequence, not a glance at a dashboard.
Define the Audit Scope Before Counting Leads
The counterintuitive part is worth restating plainly: a campaign report full of impressions, clicks, and form fills can still be a bad campaign, if none of those numbers can be traced to a completed, paid job. Volume answers “did people show up.” It never answers “did the business get paid.”
A defensible audit treats the review as five separate, non-overlapping dimensions rather than one blended scorecard. Each has its own proof requirement, and none can substitute for another.
- Objectives and KPIs: what the campaign was supposed to produce, stated specifically enough to be checked later, not just “more leads” or “more visibility.”
- Measurement and attribution: whether the systems in place can actually connect a visit to a call, a call to a booked job, and a job to reported revenue.
- Conversion paths: whether the website and landing pages give a visitor an obvious, trackable way to request service.
- Organic and local visibility: whether the business shows up for the searches tied to the services it wants to sell, and whether that visibility connects to inquiries.
- Paid search: whether ad spend is buying qualified intent, and whether that spend can be tied back to closed work.
Background on where these pieces typically sit inside a broader HVAC digital program is covered in a checklist on hvac internet marketing, useful as context for scope, not as evidence that any of the five dimensions above are actually functioning for a given account.
Each dimension gets its own verification pass in the sections that follow. Skipping straight to channel comparisons before these five are separately confirmed is how a report ends up praising a channel that never produced a paying customer.
Verify the Measurement Chain From Visit to Revenue
Before any channel gets credit or blame, the plumbing connecting a website visit to a dollar of revenue has to be checked link by link. This is the least glamorous part of the audit and the one most often skipped, because it does not produce a chart.
Does Analytics Record a Meaningful Visit?
Confirm that the analytics platform is capturing sessions on service pages, not just the homepage, and that goal or event tracking distinguishes a visitor who called a phone number from one who bounced after five seconds. Mark this done only if service-page-level events exist, not just aggregate traffic counts.

Does Conversion Tracking Capture Calls and Forms?
Verify call tracking numbers are live on every paid landing page and every service page that gets promoted, and that form submissions fire a trackable event tied to the page and campaign of origin. If a phone number on a landing page is the same static number printed on a truck, this check fails.
Do Lead Records Preserve Source and Campaign Detail?
Check that whatever intake system logs the lead, whether a CRM or a call log, retains which channel and campaign generated it, not just a generic “inbound call” tag.
Do Closed-Job Records Report Back to the Originating Channel?
This is the step most operations lose without noticing. Confirm booked-job status and revenue get written back to the same record that carried the original source and campaign detail.
Without that write-back:
- lead volume
- cost per lead
- lead-to-booked-job conversion
- average job revenue by channel
- return on investment
are all separate, disconnected numbers that cannot be reconciled to each other.
Finally, confirm that reporting definitions and date ranges match across analytics, call tracking, the CRM or job system, and the ad platform. A “lead” defined one way in Google Ads and another way in the CRM will produce two different truths from the same month of activity.
Trace the Website Path to a Booked Service Call
Traffic numbers say nothing about whether a visitor could act on intent. A service page that ranks well or draws paid clicks but gives no clear, trackable way to request a repair is a conversion failure dressed up as a visibility success.
The audit here has four checkpoints.
- Service pages need a clear description of the work and a direct request path, otherwise a visitor leaves without a way to act.
- The primary call action needs a trackable number visible above the fold, otherwise calls go untracked or unmade entirely.
- Every form needs a confirmation event that fires on submit, otherwise leads get submitted but never logged anywhere useful.
- And every landing page needs to match the ad’s offer and service, otherwise paid clicks get wasted on a bounce.
Mobile usability, service-area clarity, and whether paid-search landing pages preserve campaign parameters through to the thank-you event are each separate checks, not assumptions to make from the desktop view. A landing page that loads slowly on a phone or drops the campaign tag on redirect breaks the same chain described above, just further downstream.
Inspect Local Visibility Where HVAC Demand Starts
Local search visibility is its own audit lane, separate from whether any of it converts. A business can show up reliably for the searches that matter and still have no reliable way to prove those appearances turn into booked work, which is exactly why this gets checked on its own terms.
Is the Business Profile Complete and Conversion-Ready?
Confirm the Google Business Profile lists accurate service categories, service areas, and hours, and that call and click actions on the profile are tracked rather than assumed. A profile with strong review counts but no tracked call button is generating activity nobody can credit to revenue.
Do Service Pages Match What Visibility Is Being Measured Against?
Verify that organic visibility reporting is being measured against pages that actually exist and actually describe the services being ranked for. Reporting “visibility” for a service with no corresponding page, thin coverage across service areas, or profile actions detached from any inquiry record are the gaps to flag here, none of which say anything about how a competitor or a broader market performs.
Audit Paid Search Before Judging Google Ads
Google Ads only earns a verdict once search intent, landing-page experience, conversion capture, and closed revenue can all be inspected as one connected record. A cost-per-click number in isolation says nothing about whether the campaign is profitable.
- Confirm campaign structure aligns to actual services offered, not generic “HVAC” targeting.
- Review search-query reports for relevance against the services being promoted.
- Confirm geographic and schedule settings are documented, deliberate choices, not defaults left in place.
- Verify landing-page continuity between ad copy, offer, and destination page.
- Confirm call and form conversions are captured and attributed to the specific campaign.
- Check cost per lead is calculated and reviewed on a recurring basis.
- Check cost per booked call, separate from cost per lead, is being tracked.
- Confirm revenue or return on investment reporting exists and reconciles to the CRM or job record.
- Confirm a compliance review against Google advertising policies has occurred, without treating this as a substitute for the platform’s own policy documentation.
Each item is either verified or it is not. A campaign that fails item six but reports strong lead volume is not a working campaign, it is an unverified one.
Compare Performance Signals Without Inventing Benchmarks
Channel comparison only works when every channel is measured against its own stated objective, under the same definitions used earlier in the measurement chain check. A universal HVAC benchmark, a fixed spend percentage, or a tool’s built-in scoring is not a substitute for that comparison, because none of those account for the specific service mix, pricing, or market this business operates in.
The comparison that holds up is narrower.
- Organic visibility gets measured against its own visibility goal, Google Business Profile activity against its own engagement goal, paid search against its own cost and conversion goal, landing pages against their own completion goal.
- Cost per lead gets tracked separately from booked-job conversion and revenue, never blended into one composite score.
- Where a channel’s numbers cannot be reconciled to a booked job, that gap gets documented as an open question, not smoothed over with an average.
- No performance figure here should be read as an industry standard: none is being claimed.
Review the Competitive Evidence Without Copying Tactics
A look at how other businesses present themselves in search results gives useful context. It is not proof of an industry standard, and it is not a justification for copying a competitor’s page structure or ad copy without knowing whether that competitor is actually converting.
Four observation areas are worth checking against the business’s own setup, not against a rival’s scoreboard.
- Search-result presence varies in how businesses use service-specific listings, which should prompt a check that the business’s own service pages are indexed and specific rather than generic.
- Service-page coverage tends to be uneven in depth across observed sites, which is a reason to check own coverage against the services actually sold, not against what a competitor happens to have published.
- Business profile presentation is often a mix of complete and incomplete fields, which is a reason to verify the business’s own profile fields against booked services rather than assume parity with what shows up in search.
- And conversion-path clarity, meaning how obviously a call-to-action sits on the page, is inconsistent across the sites observed, which is a reason to confirm the business’s own path is trackable end to end.
This review reflects one specific location and language, observed at one point, and cannot support a claim about how businesses behave across an entire country or industry. Treat it as a prompt for questions about the business’s own setup, not as a scoreboard against rivals.
Schedule Seasonal and Compliance Review Checks
Seasonal offers, service-page alignment with paid search, and attribution readiness deserve a documented review before a seasonal push launches and again after it closes, checking that results were actually recorded, not assuming a seasonal lift occurred. Add a standing check that any email marketing tied to these pushes has been reviewed against the CAN-SPAM Act, and that data handling has been reviewed against GDPR where applicable, as confirmation reviews only, not as legal sign-off.
Complete the First Repair Before Expanding Spend
The single highest-priority failure in any of this is a break between a channel interaction and a booked, revenue-associated job, wherever in the chain it occurs. Nothing downstream, no channel comparison, no budget shift, is trustworthy until that break is found and closed.
Pick one active campaign today and try to trace a single booked job back to it. If that trace fails, the audit has already found its starting point. Work through the following in order, and treat each line as done or not done, nothing in between.
- Trace one path. Identify one conversion path that currently cannot be traced to a booked job. Skipping this leaves the entire audit built on an assumption instead of a record.
- Assign ownership. Name a specific owner and a specific evidence source for that path. Without an owner, the gap gets rediscovered next quarter instead of closed.
- Repair or document. Fix the tracking gap, or write down precisely why it cannot yet be fixed. An undocumented gap gets forgotten; a documented one stays visible until it’s resolved.
- Hold for one cycle. Review the repaired record for at least one full cycle before changing budget, channels, or tactics. Acting on a single week of patched data risks reacting to noise rather than to a real signal.