Bookkeeping for HVAC businesses: best practices

Bookkeeping for HVAC comes down to five habits: book prepaid maintenance agreements as the visits happen, keep installs and service calls on separate lines, put your techs' pay in cost of goods sold, track every callback as a job, and set cash aside in July for October. Do those and your monthly profit and loss shows what the work earned, not when the money happened to land.
Below are the practices, a worked example for maintenance agreements, a chart of accounts you can copy, and the red flags that say your books need help. If you'd rather hand it off, here's what our HVAC bookkeeping services include.
What makes HVAC bookkeeping different?
An HVAC company runs several businesses under one roof, and each one runs on different math:
- Maintenance agreements bring in cash up front for work that happens months later.
- Installs and changeouts are big, equipment-heavy tickets, often financed through a lender who keeps a dealer fee.
- Service and repair calls are small tickets where tech time is most of the cost.
- Callbacks and warranty work are labor you don't bill, plus parts the manufacturer may credit back.
- Heat waves and cold snaps fill the board, then spring and fall go quiet.
Generic small-business bookkeeping lumps all of that into one income line and one expense pile. That's how a shop has its best July ever and still scrambles to make payroll in October. The home service bookkeeping post covers what every trade's books need; this one is the HVAC detail.
7 bookkeeping habits for HVAC owners
- Tag every sale to its line. Service, install, agreements and commercial each get a class in QuickBooks Online (or a business unit in ServiceTitan), and the same tags carry through payroll and materials.
- Book agreements as visits happen. Prepaid plans sit in a liability account until the tech runs the tune-up. The example below shows why.
- Put the supply house run on the job. Every Ferguson or Johnstone ticket gets a job name before it's filed, so equipment and parts land in that job's cost.
- Put your techs in cost of goods sold. Field wages, their payroll taxes and their workers' comp go next to equipment, above gross margin (what's left after the labor, equipment and parts on the job). Office pay stays in overhead.
- Track callbacks as their own job type. The labor is real even when the invoice is $0.
- Reconcile every bank and card account monthly. Card deposits often arrive net of processing fees and financing payouts arrive net of dealer fees, so match them to the full sale and book the fee as a cost.
- Close the month by a set date. Pick a day, say the 10th, when last month is final, then review it. Keep the records behind it: the IRS general rule is 3 years, and employment tax records at least 4 years after the tax is due or paid (IRS guidance).
How to book maintenance agreements
A prepaid agreement is money for work you haven't done yet. Book it as income the day it's sold and your spring looks great, then fall shows tune-ups with no income attached.
Here's an example. You sell 120 two-visit agreements in March at $240 each. Half the spring tune-ups happen in April and half in May, and the fall visits split the same way across September and October. Each visit earns $120.
| Month | Cash collected | Income if booked when sold | Income if booked as visits happen |
|---|---|---|---|
| March | $28,800 | $28,800 | $0 |
| April | $0 | $0 | $7,200 |
| May | $0 | $0 | $7,200 |
| September | $0 | $0 | $7,200 |
| October | $0 | $0 | $7,200 |
| Total | $28,800 | $28,800 | $28,800 |
The year's total is the same either way. What changes is whether March and October tell the truth. Booked when sold, March carries $28,800 of income for work nobody has done, and in October your techs run 60 tune-ups that show no income at all.
The fix is two entries. When the money comes in, it goes to the bank and to a liability account called something like "unearned agreement revenue." Once a month, pull the completed-visit count from your field software and move $120 per visit from that liability into agreement revenue.
Then check whether the agreements pay. Say a tune-up takes 1.5 hours at a fully burdened $40 an hour (here's how to figure yours) plus $15 in filters and supplies. That's $75 of cost against $120 earned, so each visit clears $45 before overhead. If your numbers come out thinner, the price or the visit time needs work.
Brandon Vaughn, who coaches home service owners, walked an owner through the same problem with a different prepaid service. The owner sold holiday lighting with the money collected up front, and his profit and loss showed a loss for the year because he'd booked last season's lighting revenue when it came in and was now paying crews for the takedowns. Brandon's fix was to move part of that revenue into the months when the crews did the work:
They can split that out to where maybe … 25% of that revenue gets allocated during the months of when you're actually going and doing it. It makes a really big difference on your profit loss actually looking more accurate to actually what's happening.
Chart of accounts for an HVAC company
A chart of accounts is the list of buckets every dollar lands in. This one keeps your techs above the gross margin line and gives agreements, deposits and financing fees their own accounts. Our chart of accounts for contractors post covers the setup in more depth.
| Number | Account | What goes here |
|---|---|---|
| 1000 | Operating checking | Main bank account |
| 1010 | Accounts receivable | Invoices not yet paid, including commercial work on terms |
| 1020 | Inventory on the trucks and in the shop | Parts and equipment you've bought but haven't installed |
| 1030 | Vehicles and equipment | Trucks, recovery machines, vacuum pumps |
| 2000 | Accounts payable | Supply house bills not yet paid |
| 2010 | Credit cards payable | Card balances |
| 2020 | Unearned agreement revenue | Prepaid maintenance plans for visits not yet run |
| 2030 | Customer deposits | Deposits on installs not yet completed |
| 2040 | Payroll liabilities | Withheld and employer payroll taxes not yet deposited |
| 2050 | Sales tax payable | Tax collected on parts and equipment, where your state charges it |
| 2060 | Vehicle and equipment loans | Truck notes |
| 3000 | Owner's equity and distributions | What you put in and take out |
| 4000 | Service and repair revenue | Service calls and diagnostics |
| 4010 | Install and replacement revenue | Changeouts and new systems |
| 4020 | Maintenance agreement revenue | Moved from 2020 as visits happen |
| 4030 | Commercial revenue | If you run commercial work |
| 5000 | Equipment | Condensers, furnaces, air handlers |
| 5010 | Parts and materials | Everything from the supply house tied to a job |
| 5020 | Field labor | Tech wages, their payroll taxes and workers' comp |
| 5030 | Subcontractors | Electricians, crane, duct shops |
| 5040 | Permits and inspections | Job permits |
| 5050 | Customer financing fees | The lender's dealer fee on financed installs |
| 5060 | Callback and warranty labor | Unbilled return trips |
| 6000 | Office and admin payroll | Dispatchers, CSRs, office staff |
| 6010 | Vehicles and fuel | Fuel, repairs, insurance on the fleet |
| 6020 | Marketing | Google Ads, mailers, the agreement renewal campaign |
| 6030 | Software | Field software, accounting, payroll |
| 6040 | Rent, utilities and insurance | Shop costs and general liability |
Use the same classes (service, install, agreements, commercial) on every line from 4000 down to 5060, and the profit and loss splits itself by job type.
Track callbacks and warranty work
A callback is a second trip to fix the first one. Nobody invoices it, so in most books it disappears into payroll, and the cost of a sloppy install never shows up anywhere.
Give callbacks a job type in your field software and a class or account in your books (5060 above). When the part is under manufacturer warranty, file the claim and book the credit against the same job, so the job shows only what it cost you. After three months you'll know your callback rate by tech and by job type.
In one of his own companies, Brandon tied crew bonuses to it:
they wouldn't get their bonus pay if … they had callbacks or fix-its or complaints
You can't hold anyone to a number your books don't record.
HVAC accounting: what changes past bookkeeping
Bookkeeping records what happened. HVAC accounting decides when it counts and what it means, and four choices matter most:
- Cash or accrual: under the cash method, income counts when you receive it; under an accrual method, when you earn it (IRS Publication 538). With agreements and install deposits on the books, accrual gives the accurate month.
- Tax timing: your return may differ. The IRS generally taxes an advance payment in the year you receive it, and lets accrual-method businesses postpone the unearned part of a qualifying payment to the next tax year, no further. Your CPA picks the tax treatment; your monthly profit and loss should still show the work as it's done.
- Financed installs: book the full sale price as revenue and the dealer fee in 5050. If you book only what the lender deposits, your average install ticket looks smaller than it is and the fee never shows up as a cost.
- Trucks and equipment: a new truck goes on the balance sheet, not in this month's expenses, and the tax deduction is a separate decision. Our tax services page covers how we handle that side.
Once the accounting is right, compare yourself with other shops. Our HVAC profitability benchmarks post shows what to measure.
Plan cash for the shoulder seasons
Spring and fall are when you find out what July left you. Brandon's advice to an owner who had just covered payroll out of his own cash while he waited on commercial invoices:
Really seriously think about that a business line of credit is a cushion. It's something that you don't have to use.
Open the line in July, while the books look strong, not in October when they don't. The unearned agreement balance (2020) matters here too: that cash is already spoken for by visits you owe, so don't count it as money you can spend. A cash flow forecast built from last year's months shows how big a cushion you need before the phones go quiet.
Red flags in an HVAC company's books
If any of these sound familiar, the books are costing you money:
- You can't say whether installs or service made more gross profit last month.
- Agreement money shows up as income the month it's sold.
- Tech wages sit in overhead, so your gross margin looks better than it is.
- Callbacks have no job type, so nobody knows the rate.
- Financing payouts land in the bank and never get matched to the sale.
- The month closes six weeks late, or never.
Bring last month's profit and loss to a free profit call and we'll show you which of these is costing you the most.
FAQ: bookkeeping for HVAC
Do I need separate bank accounts for service and installs?
No. Use classes or business units instead, so one bank account feeds a profit and loss with a column for each job type. Separate accounts add reconciliation work and still don't split the payroll.
Should I use cash or accrual accounting for an HVAC business?
Run your monthly numbers on accrual if you sell agreements or take install deposits, because cash-basis months swing with when customers pay. What you file with the IRS can differ; that's a call for your CPA.
How do I record a financed install?
Record the full price as install revenue, the lender's payout as cash received, and the difference as a customer financing fee in cost of goods sold. Then the job's gross margin includes what financing cost you.
Can I do HVAC bookkeeping in a spreadsheet?
You can track jobs in one, but agreements, deposits, payroll and card fees need double-entry accounting software to land in the right month. We work in QuickBooks Online alongside ServiceTitan, Housecall Pro and Jobber.


