Serving Trades Contractors Nationwide  ·  Based in Baton Rouge, LA
Client Portal (225) 274-6576 info@911bookkeepers.com Free Consultation →
BOOKKEEPINGNovember 3, 2026
BOOKKEEPING

Your HVAC Books Are Overstating Income and Here Is Why

911 BOOKKEEPERS
BUILT FOR THE TRADES

If your business sells service agreements or prepaid maintenance plans, there is a good chance your books are overstating your income right now, and most owners have no idea it is happening.

When a customer pays upfront for a service agreement, that money is not income yet. It is a liability, because you still owe that customer the service. Recording it as revenue the day it arrives inflates your profit and creates problems at tax time, with lenders, and when you try to plan cash.

Here is how the mistake happens, what deferred revenue means in plain terms, how to record it correctly, and how to fix it at the account level.

The misclassification most HVAC owners do not know they have

Most HVAC books record service agreement payments as revenue the moment the cash hits the bank. That feels logical. Money came in, so income went up. But it is not how revenue is supposed to be recognized.

Say a customer pays $400 in March for an annual maintenance agreement that includes visits in June and October. In March, none of that work has been done. Recording the full $400 as March revenue is not a rounding issue. It is a misclassification.

Nobody tells owners their software may be making this error automatically. If the service agreement item in your system is mapped to a revenue account, every payment posts straight to income with no warning. Plumbing and electrical contractors with prepaid maintenance contracts run into the same issue.

What deferred revenue actually means

When a customer pays $400 upfront, the cash is real, but the income is not yours yet. Deferred revenue is a liability: a service obligation your company still owes.

Under ASC 606, the standard that governs revenue recognition, income from a service contract is recorded when the promised service is delivered. That happens when your tech completes the visit, not when the payment clears.

It is not a loan. There is no interest and no repayment schedule. The liability is paid off with labor and materials delivered. For a company carrying dozens of active agreements, those balances add up, and a strong-looking month can include thousands of dollars of work you have not done yet.

The correct entries: a step-by-step example

Using the same $400 agreement:

Step 1: Payment in March

The money sits on the liability side of the balance sheet because the service has not been performed.

Step 2: First visit in June

The agreement covers two visits, so each is worth $200. When the June visit is done:

Step 3: Second visit in October

Repeat the entry. The remaining $200 moves to earned revenue, and the liability for this agreement reaches zero.

Now your income statement shows revenue when the service was delivered, not when the cash arrived. Keeping this right takes a running reconciliation between payments received and your dispatch records, so you know which agreements are partly performed and which are fully earned.

Why your software makes this easy to miss

Neither Xero nor QuickBooks automates deferred revenue for HVAC agreements out of the box. Both do what your chart of accounts tells them to do. If the agreement item points at a revenue account, every payment posts as earned income instantly.

The error does not announce itself. It builds up. Spring is when many annual agreements renew, so by the end of busy season, months of payments may be sitting in the wrong account.

To check, pull a transaction report for your service agreement items and compare it to your deferred revenue balance. That balance should roughly equal the value of agreements where the visits have not all been done. If your books show no deferred revenue balance at all, the gap is probably large.

Switching software does not fix this. The issue is how your accounts are set up.

The tax timing problem

When agreement payments post as immediate revenue, taxable income is overstated in the period the cash came in. If your quarterly estimates are based on that number, you may be paying tax early on income you have not earned yet.

Correct treatment does not lower your total tax over the life of an agreement. It shifts when the tax is owed, which keeps cash in the business longer. If a prior-year return was filed on overstated revenue, correcting it later can raise questions, so bring your CPA in before you change anything. (We keep the books; your CPA handles the return.)

The cash flow gap

When an agreement payment posts as revenue, it looks like money available to spend. The obligation to send a tech, pay the labor, and use parts has not gone anywhere. It is just invisible.

Owners who treat prepaid agreement cash as free money often spend it on equipment, a slow month's payroll, or an owner draw. Then the visits come due at the same time as summer payroll, parts, and fuel. The cash that felt available in March is gone, and the work is just starting.

A deferred revenue account fixes that picture. Instead of one bank balance, you see how much of that cash is already promised to unperformed service.

What it does to your business value

Lenders and buyers look hard at how deferred revenue is handled, because it shapes how they read your earnings. If your books show strong revenue that is really unearned service, a careful buyer or lender will adjust your earnings down, and that adjustment lowers what they will lend or pay.

It also hurts credibility. Overstated earnings suggest the company is not tracking when it delivers what it sold, which raises questions about every other number.

How to fix it at the account level

The fix is not a year-end spreadsheet adjustment. It starts with the chart of accounts: every incoming agreement payment should post to a deferred revenue liability account, not an income account. That one change stops new errors.

Next, audit the history. Figure out what the deferred revenue balance should be today and post a correcting journal entry that moves unearned revenue back to the liability side.

From then on, reconcile monthly. Match agreement payments against dispatch records, then recognize revenue only for visits completed that month. Your bookkeeper and CPA should coordinate so quarterly estimates are based on earned revenue, not total cash collected.

Two checks you can do today

First, open your chart of accounts and find the item your software uses for agreement payments. If it maps to revenue instead of a deferred revenue liability, the error is active and grows with every agreement you sell.

Second, ask your bookkeeper one question: is there a deferred revenue balance on the balance sheet that gets reconciled against completed visits every month? If the answer is no or "not sure," the overstatement is already there.

A small balance fixed now is a routine journal entry. A large one discovered during a loan review or a sale is a harder conversation.

The bottom line

The root cause is one misclassification: agreement payments recorded as revenue before the work is done. It inflates income, pulls tax forward, hides real cash needs, and weakens your numbers when a lender or buyer looks closely. Deferred revenue belongs on the balance sheet until the visit is complete.

Want to see whether your agreements are priced right once the cost of the visits is counted? Try the free Maintenance Agreement Price Check, or take the 3-Minute Financial Triage.

Your books shouldn’t be a 911 situation.

Take the free 3-minute Financial Triage and find out exactly where your business stands.

Take the Financial Triage Call (225) 274-6576

Ready to talk now? Book a free 30-minute call

← Back to all posts