(443) 600-8990Get a free consultation
  1. Home
  2. Blog
  3. Heating and cooling
Heating and cooling

HVAC maintenance agreements: how to book them so your monthly profit is real

Prepaid HVAC maintenance plans aren't earned on day one. Here's how to record them so each month shows what your business actually did.

HVAC maintenance agreements: how to book them so your monthly profit is real

September 30, 2026 · Mitt Patel · 6 min read

It's January, and your books say you had a fantastic month. You sold twenty-two annual maintenance agreements at $300 each during your winter promotion, and $6,600 landed in your checking account, before fees and processing costs. Then February looks flat, March looks worse, and you start wondering if something is actually wrong with the business.

Nothing is wrong with the business. Something is wrong with how the money was recorded.

Why this happens

When a customer pays $300 for a year of maintenance, that money hits your bank account all at once. It's tempting to record it as income the day it arrives, because that's when the cash showed up and it's the simplest thing to do.

But you haven't done a year's worth of work yet. You've done zero visits, or maybe one. The other visits, and the labor and parts that go with them, are still ahead of you. Until you do that work, the money you were paid is a liability, not income. You owe the customer service: a debt you pay off in future visits, not necessarily in cash.

If you book the whole $300 as income in January, your January numbers look better than they really are, and every month after that looks worse than it really is, because you already counted the income before you earned it. This makes it hard to tell if a slow month is actually slow, or if you're just seeing the hangover from a strong sales month three months ago.

It also causes real decision-making problems. Owners who look at inflated monthly profit sometimes hire ahead of need, buy equipment they can't yet support, or take a bigger draw than the business can sustain. Then a few months later, when the prepaid revenue isn't propping things up anymore, cash feels tight and nobody's sure why.

A worked example

Say you sell a maintenance agreement in January for $300, covering one year of service, which typically means two visits.

If you book the full $300 as income in January, your books say you earned $300 that month from that customer. In reality, you've only done the work you'd expect for about one month out of twelve, since the agreement is a full year of coverage. The honest monthly value of that plan is $25 ($300 divided by 12 months).

Here's how the two approaches compare over the first three months:

Booking it all in January:

  • January: $300 income
  • February: $0 income
  • March: $0 income

Recognizing it monthly:

  • January: $25 income
  • February: $25 income
  • March: $25 income

Neither approach changes how much cash you have. The $300 sits in your bank account either way. What changes is whether your profit and loss statement tells you the truth about which months were actually strong and which weren't. If you sold twenty-two of these plans in January, booking them all at once shows $6,600 of plan income instead of the $550 you earned, a January that looks $6,050 better than it was, followed by eleven months that each look $550 worse than they should.

How to set it up

  1. Create an unearned revenue account. In QuickBooks Online, set this up as a liability account, often called "Unearned revenue" or "Deferred revenue - maintenance plans." This is where the money lives until you've earned it.
  1. Record the customer payment to that liability account, not to income. When a customer pays $300 for a plan, the deposit hits your bank account as usual, but the offsetting entry goes to unearned revenue, not to a maintenance income account.
  1. Figure out the monthly amount to recognize. Divide the total plan price by the number of months it covers. A $300 annual plan comes out to $25 a month. A $600 two-year plan would come out to $25 a month as well, since $600 divided by 24 months is $25. Some shops recognize plan revenue per visit instead of evenly by month; either works if you pick one method per plan and apply it consistently.
  1. Set up a recurring journal entry. Each month, move that amount from the unearned revenue account into your maintenance income account. QuickBooks Online lets you schedule recurring journal entries, so this doesn't have to be a manual task you remember to do.
  1. Track plans by start date if you sell them year-round. If you sell agreements throughout the year rather than all in one push, you'll have plans at different points in their cycle. A spreadsheet or a simple note in your accounting system showing each plan's start date and monthly amount keeps this manageable.
  1. Reconcile the unearned revenue balance periodically. At any point, the balance in that liability account should roughly match the total value of service you still owe customers. If it doesn't, something was booked wrong.

What throws this off

  • Recording the payment straight to income out of habit. This is the most common mistake, especially if you've always done it that way and never had a reason to question it.
  • Forgetting to set up the recurring entry, or setting it up and then ignoring it. The system only works if the monthly release actually happens every month.
  • Not adjusting when a plan is canceled or refunded mid-year. If a customer cancels in month six, the unearned revenue balance for that plan needs to be dealt with, not left sitting on the books indefinitely.
  • Mixing maintenance plan money with regular service income in the same account. This makes it hard to see how much of your monthly income is from prepaid plans versus one-off jobs, which matters if you want to understand where your business is actually growing.
  • Treating the unearned revenue balance as spendable cash. It's sitting in your bank account, but it's already spoken for. Spending it as if it were profit is how businesses that look profitable on paper end up short on cash.

Monthly checklist

  • Confirm every maintenance plan payment received this month was recorded to unearned revenue, not income.
  • Run the recurring journal entry that releases one month's share of each active plan into income.
  • Check the unearned revenue account balance and make sure it's trending the way you'd expect given how many active plans you have.
  • Adjust for any plans that were canceled, refunded, or upgraded during the month.
  • Compare this month's recognized maintenance income to the number of visits and jobs your team actually completed, as a gut check.

Common questions

Does this change how much I owe on anything?

No. This is about when income shows up on your profit and loss statement, not about cash in the bank or what you owe anyone. The $300 is still $300 either way.

What if I sell a mix of six-month and annual plans?

Each plan gets its own monthly rate based on its own length and price. A six-month, $150 plan releases $25 a month, same as the annual $300 plan in the example, just over half the time. Track them separately if the terms differ.

Is this worth doing if I only sell a handful of plans a year?

If you sell a small, steady number, the distortion is smaller, but it still exists. The more plans you sell and the more concentrated your selling season is, the more this matters. A spring push where you sell forty plans in one month will visibly warp your numbers if you don't spread the income out.

Can QuickBooks Online handle this automatically?

QuickBooks Online can automate the monthly release once you've set up the unearned revenue account and a recurring journal entry. It won't figure out the right monthly amount for you or flag a canceled plan, so someone still needs to review it.

Setting this up correctly the first time, and keeping it current as plans are sold, renewed, and canceled, is exactly the kind of recurring work North Hudson Bookkeeping handles for HVAC and mechanical contractors. If you want a second set of eyes on how your maintenance plans are currently booked, the first call is free.

Want this handled for you?

Monthly bookkeeping from $500 a month: every account reconciled, clear reports and a short summary each month. Book a free 20-minute call or call (443) 600-8990.

Get a free consultation

Talk to MittCall or text (443) 600-8990 · or book a free consultation
Free consultationFree callCallTextWritten quoteQuote