Field Notes
Strategy9 min read

The HVAC Revenue Leak Is Usually Between Tools, Not Inside Them

Your phone, your forms, and your field-service software can each work exactly as designed while the job still dies in the seam between them.

Eric MooreEric MooreFounder, Airtight Revenue
Tool handoffRevenue ownershipWorkflow gap

An owner told me last month that he could not have a software problem, because he had just spent a year and real money getting his software right. ServiceTitan in the office. A clean website with a quote form. A phone system that never drops a call. A CSR who knows the trade. He listed it like a defense, and he was not wrong about any single piece of it.

Then I asked him what happened to the after-hours quote request that came in through the website form last Tuesday night. He did not know. Not because his form was broken. The form worked. It captured the request and emailed it somewhere. The question was where somewhere went next, and who picked it up, and whether it ever became a job. That is the part no tool on his list actually owned, and that is where his money was going.

This note is about that gap. It is almost invisible, because every tool you bought is innocent. The leak is not inside any of them. It is in the seam between them.

The mental model that hides the leak

The instinct, when revenue feels like it is slipping, is to look at the tools. The phone system, the booking widget, the CRM, the answering service. You ask which one is failing, you find that each one mostly works, and you conclude the problem must be somewhere else, maybe marketing, maybe the market.

The mental model underneath that is "a business is a set of tools, and if each tool is good, the business is tight." It is how the software is sold to you, one capable box at a time.

The trouble is that an HVAC business does not run inside any one box. It runs across the handoffs. A homeowner with a dead system does not experience your phone system or your CRM. They experience a chain: a call or a form, then a person, then a decision about urgency, then a callback, then a slot, then a truck, then an invoice. Every one of those arrows is a handoff, and every handoff is a place the request can be set down and never picked back up. You can buy the best tool for each station on that chain and still have no one who owns the spaces in between. It is an ownership failure, not a tooling one, and no new tool closes it.

Trace one request and the seams show up

Walk a single after-hours quote request through a shop that has good software, and watch where it actually stalls.

It comes in through the website form at 8pm. The form works, so it lands in an inbox, or pushes into the CRM as a lead. Fine so far. Now the seam. Who reads that inbox tonight. If the answer is "the office sees it in the morning," the request just sat eleven hours next to a homeowner already calling three other companies. The CRM did not fail. Nobody owned the gap between "captured" and "answered."

Say someone does see it and calls back. They reach the homeowner, it is a real job, they want to book it. Next seam. The callback happened on a cell phone, in a hallway, and the details need to land in ServiceTitan as a dispatchable job with the address, the system type, the urgency, and the access notes. If that retyping happens later, from memory, or not at all, the request is now half-alive: promised to the customer, invisible to dispatch. Both tools worked. The handoff between the call and the dispatch board is where the job blurred.

Now add the estimate that went out and the follow-up nobody owns, the maintenance agreement that expired with no touch, the voicemail that never made it into any system. None of these are tool defects. Each is a request no single tool was responsible for carrying to the next one. The sharpest question in the business is not "is my software good." It is "for each handoff, who owns the request at that exact moment, and how do you know it got picked up."

What the seams look like from the outside

The free, public side of this can show you some of the seams before anyone gets access to the inside, because a few of them face the homeowner directly.

From the outside, looking the way a customer does, we can see whether your phone number is the same one on Google, the website, and the social profiles, or whether they quietly disagree, which is itself a seam between tools. We can see whether the website form or booking path tells the homeowner anything about a response time, or whether it just says "thanks" and goes quiet, which tells the homeowner nothing about whether the handoff on your end even exists. We can see whether an emergency or after-hours claim on the site has any visible route standing behind it once the office closes, or whether the promise and the actual path pull in different directions. Those are public seams. They are the ones a homeowner trips over without ever knowing your CRM is excellent.

What the outside cannot prove

What the public view cannot do is tell you what happens after the request crosses into the building. It cannot confirm whether that form email gets read the same night, whether callbacks reliably become dispatch notes, or how many estimates go out and never get a second touch. If a public read turns up no after-hours route, we write "not detected in the public pass," not "missing," because a working route can live behind a system we have no window into. Seams you can see from outside are worth raising. Whether the inside handoffs actually leak is something only your own numbers and team can confirm. Keeping those two apart is the difference between a real diagnosis and a guess dressed up as one.

Where the money actually leaks between tools

Once an owner brings us inside, we are not auditing the tools. We are inspecting the eight handoffs where HVAC revenue tends to fall through, and every one lives between two things that each work fine on their own.

Walk the same chain the homeowner started, but from the inside. An urgent call gets answered: does it get triaged, logged, and turned into a booked job or a tracked callback, or die as a message stranded between the phone and the dispatch board. The estimate goes out: who owns the touch at 24 hours, 72 hours, and a week, and which maintenance agreements expire with nobody reaching out. The job gets dispatched: did the intake arrive complete, or did a CSR retype it and lose a detail. The work finishes: is there a clean path to get paid, and come Friday, can the owner account for every request that came in, the booked ones, the missed ones, and the ones that simply vanished.

Most shops are not leaking at all eight seams. They leak badly at one or two and are fine on the rest. The point of looking is to find which seam is costing this business real jobs, instead of buying another tool and hoping it lands right.

The doctrine for closing a seam

Once a seam is named, closing it follows a discipline, not a shopping list.

Plain rules carry the load first. A model or a voice layer earns its place only where the work truly needs language or judgment, like telling an emergency no-cool call apart from a routine quote. The judgment-heavy calls stay with a person, since those are exactly the ones nobody should hand to a machine. We capture an honest before-number first, so the fix has something real to be measured against. Then a single seam gets closed each sprint, scoped by who owns it, what trips it, the fields it requires, the actions it permits, how it escalates, how exceptions route, and the one metric that says it worked. One handoff made dependable beats five integrations the whole crew quietly works around.

Before any seam earns a build it has to pass a short interrogation. Name the seam. Name who owns that handoff. State the baseline and the first metric you will move. Spell out the exception path. Point at the single change that closes it. Miss any of the six and it waits in the diagnostic until it is ready. The completed map of which seams your shop is leaking, the order we would close them in, and the filled-in record of what we found are the paid part. None of the thinking is hidden, and any owner can have me walk them through the whole method. The mapped, scored picture of your own business is the thing you would be buying.

Trace one request across your own tools first

None of this needs us in the room. Take one request from the past week and follow it across every tool it touched, out loud. At each arrow, the form to the inbox, the inbox to the callback, the callback to the dispatch board, the estimate to the follow-up, ask one thing: who owned the request in that exact moment, and how would you know if it got dropped there.

The arrow that makes you say "well, it depended on who was working" is your most likely leak. Nine times out of ten it lands on one specific seam, not a bad tool and not the whole operation. Pinning it down that tightly is where most of the payoff sits, and you can do that first pass yourself, with the software you already own.

The point

Good tools are not the same as a tight business. An HVAC shop loses revenue in the handoffs between its tools and its people, in the spaces no box was sold to own. "We already have software" is true and beside the point, because the leak was never inside the software. The work is not buying another tool. It is finding the one seam where jobs are quietly set down, naming who owns it, and making that single handoff reliable before touching anything else.

If you want, I will map the public seams on your after-hours line and point out which ones a homeowner actually runs into, leading with the single handoff worth questioning first. That walk is the free Call-Path Snapshot, straight about which site claims it can verify and which sit beyond its reach, and it leaves you knowing whether mapping the inside earns the next step.

Request a Free Call-Path Snapshot. It reads the public seams first, so the call on whether to map what happens inside stays yours, made with evidence.

Eric Moore

Written by

Eric Moore

Founder, Airtight Revenue

I help owner-led Houston HVAC companies verify and tighten what happens to urgent calls after hours, before they buy more leads.

Request a Free Call-Path Snapshot

Start with the route

Before building another workflow, check where the request goes.

Request a Free Call-Path Snapshot