HVAC

The HVAC Owner Who Mistook Loyal Customers for Recurring Revenue

An owner thought 22 years of loyal customers meant a premium. A buyer asked one question — how much is actually under contract — and re-priced the deal. Here's the gap, and how to spot it in your own books first.

The owner had been doing HVAC for 22 years. Steady revenue, five-star reviews, a customer list a mile long — folks who'd called him for a decade. When a buyer came knocking, he figured the loyalty alone was worth a premium. Then the buyer asked one question that took the air out of the room: "How much of this revenue is actually under contract?"

That's the gap between loyal customers and real HVAC recurring revenue — and it's the quietest thing that costs trade owners money at the table. (The story here is illustrative; the way a buyer pulls it apart is not.)

"They love us" is not the same as "they're contracted"

To the owner, the math felt obvious: most customers had used him before, so the business was repeatable. To the buyer, repeatable and recurring are two different words with two different prices.

  • Repeat — a customer comes back. They liked you, so when the unit died in August they called you again. Good. But it's their decision, on their timing, usually years apart.
  • Recurring — revenue that's scheduled in advance, usually under a signed agreement, with renewal behavior a buyer can measure. A maintenance plan billed spring and fall that renews and survives a change of ownership.

A buyer pays the premium for the second one, because it's the slice of cash flow that doesn't depend on the seller, the brand, or this year's weather.

What an HVAC buyer actually counts as recurring revenue

Here's where it gets concrete — and where our own engine looks first. When offers.ai reads a QuickBooks file, it doesn't take "they're loyal" on faith. It counts invoices per customer:

  • One-time — a single invoice in the window.
  • Repeat2 or more invoices.
  • Core repeat5 or more invoices.

That's the behavioral picture — and it's the part the books can always show. Telling true contracted maintenance revenue apart from it depends on how your books are kept: if your maintenance plans are labeled or billed on a schedule, the contracted share is clear; if they're not, the engine can still flag the repeat behavior and show where revenue needs cleaner classification. Either way, buyers like to see a meaningful maintenance base — often 20–30%+ of revenue in stronger, service-oriented shops. You can score high on repeat behavior and still be well short of that. That's the trap.

Illustrative: a $3M HVAC shop whose owner believed "70% of our customers are repeat." The invoice counts backed that up — plenty of 2+ and even 5+ invoice customers. But contracted maintenance-agreement revenue? Under 10%. The buyer's read: loyal, yes; durable, not yet. Most of that "repeat" was replacement and break-fix on the customer's timeline — not income the new owner could bank on.

What it costs in the multiple

This isn't a soft point — it moves the number. HVAC trades in roughly a 3.0×–8.0× EBITDA band (typically ~5.0×), and where you land inside it is set largely by how much of your revenue is the contracted kind. Closing the maintenance-agreement gap is the single biggest HVAC lever:

LeverTypical multiple liftValue added (illustrative, ~$500K EBITDA)
Convert your base to maintenance agreements+0.3×–0.5×~$150K–$250K

Multiple band and value-driver range computed by the offers.ai engine; the dollar figure is illustrative for a representative $500K-EBITDA shop — your real number comes from your books.

The math is simple: at ~$500K of EBITDA, every 0.1× of multiple is about $50K of enterprise value — so a 0.3×–0.5× lift is roughly $150K–$250K, for revenue you're largely already earning.

On that shop, the gap between "loyal customers" and a real contracted base is a six-figure swing — money you're largely already earning, just not capturing as a renewable agreement.

How to check your own books before a buyer does

You don't need our software to start. Pull these from QuickBooks:

  • Invoices per customer. How many customers have 2+ invoices? 5+? That's your repeat base — the real version of "they keep calling."
  • Contracted vs not. What share of revenue is a signed, scheduled maintenance plan — billed on a calendar, not when something breaks?
  • The gap. Loyal-but-not-contracted is the opportunity. Every loyal customer without a plan is a maintenance agreement waiting to be written.

If that contracted share is thin — well short of that 20–30%+ range — you've found the thing a buyer is likely to push on, and you've got 12–18 months to build it up before you go to market.

The takeaway

Loyalty is real, and it's worth something. But buyers pay the premium for revenue that's measurable, scheduled, and durable — and "they call us every couple of years" isn't that. Know your contracted share, grow it toward that range, and you turn a soft story ("our customers love us") into a number a buyer can underwrite.

This is exactly the kind of gap offers.ai surfaces from your real books — your repeat behavior, your customer concentration, and the value drivers that move your multiple — before a buyer rebuilds it for you. See it on the HVAC overview, or run the free diagnostic. (New to the earnings-times-multiple math? Start with SDE vs EBITDA.)

Sources

  1. Repeat / one-time revenue logic (customers by invoice count), the ~30% HVAC maintenance-revenue benchmark, the EBITDA multiple band, and the maintenance-agreement value-driver range — computed by the offers.ai engine. Engine logic verified 2026-06-04.
  2. BizBuySell Insight Report (quarterly) — recurring/contracted service revenue commands a premium in trade-business sales. https://www.bizbuysell.com/insight-report/
See what a buyer would pay for your HVAC business. Free preview · no signup · read-only QuickBooks.
Get your free preview