Industry

Bookkeeping for HVAC contractors

Job costing on service and install work, maintenance agreements as deferred revenue, truck stock and technician efficiency, explained for HVAC company owners.

The short answer

  • HVAC revenue splits into two very different businesses: service and repair, and installation. Blending them into one number hides which side is actually funding the other.
  • Maintenance agreements paid up front are deferred revenue. The cash should not hit income until the tune-up visits happen.
  • Truck stock and inventory are assets, not expenses, until parts are used on a job.
  • Technician efficiency, billable hours against hours paid, is usually the biggest lever on profit in a service business.

Service revenue and install revenue are different businesses

Service and repair work tends to run leaner tickets with higher margin, while installs carry big equipment costs and thinner percentage margins on larger dollars. Reporting them together makes a strong service department mask a struggling install crew, or the reverse.

  • Track service, maintenance agreements and installs as separate income accounts
  • Job cost every install: equipment, materials, labor, permits and subcontracted trades
  • Service calls should carry technician labor and truck stock parts used, not a flat estimate
  • Warranty callbacks need their own cost code so rework is visible, not buried in regular labor

Maintenance agreements as deferred revenue

A customer who pays $240 up front for two tune-up visits a year has paid for something you have not delivered yet. That cash is deferred revenue, recognized as each visit happens. Booking it all as income the day it is sold makes January look busy and inflates margin, while the summer and fall visits that actually cost you labor show no matching revenue.

Truck stock and inventory

Parts sitting on a truck or in the warehouse are inventory, an asset, not an expense. When a technician uses a part on a job, it moves to cost of goods sold for that job. Expensing every parts purchase the day it is bought overstates costs in slow months and understates them when trucks get restocked.

Technician efficiency and labor cost

Billable hours divided by hours paid is the number that tells you whether scheduling, drive time and callbacks are eating your labor budget. A technician at 55 percent efficiency is being paid for two full days a week that generate no invoice.

What LedgerDude does each month

We job cost every install and major service ticket, recognize maintenance agreement revenue on the visit schedule, track truck stock as inventory, and deliver a service versus install margin report along with technician efficiency each month.

Numbers worth watching

Each one is plain math you can check yourself.

NumberHow to figure itGood rangeWhy it matters
Gross margin by division(Division revenue − division cost) ÷ division revenue50–65% service, 20–30% installShows which side of the business is actually carrying the company.
Technician efficiency (billable ratio)Billable labor hours ÷ total hours paid65–75%Scheduling and drive time problems show up here before they show up in profit.
Maintenance agreement retentionAgreements renewed ÷ agreements up for renewal80%+Maintenance agreements are the most stable, highest-margin revenue an HVAC company has.
Average ticket (service)Total service revenue ÷ number of service ticketsTrending up year over yearTracks whether pricing and upsell (filters, add-on repairs) are keeping pace with costs.

Typical results we see

Service gross margin

57%

Typical range across the HVAC companies we support; yours depends on labor rates and dispatch density

Install gross margin

24%

Lower on straight equipment swaps, higher on full system redesigns

Technician efficiency

68%

Best-run shops we see run 75%+

Maintenance agreement renewal rate

82%

Drops sharply without a proactive renewal call schedule

A month with $180,000 in combined service and install revenue

Service and repair revenue
$68,000
Maintenance agreement revenue recognized
$9,500
Install revenue
$102,500
Service and maintenance cost (labor, parts)
$32,900
Install cost (equipment, materials, labor, subs)
$79,400
Combined gross profit
$67,700 (37.6%)
Overhead (trucks, office, insurance, marketing)
$41,200
Net income
$26,500 (14.7%)

What this tells you: Blended margin looked fine at 37.6 percent, but the install division alone was running 22.5 percent, below the shop's 25 percent minimum bid target. Two installs were underpriced relative to their permit and subcontractor costs, which the blended number had hidden.

What you see inside LedgerDude

Your numbers on one page, refreshed as your books are closed each month.

LedgerDude client dashboard showing monthly income, expenses, cash on hand and open questions
The client dashboard, updated as your books are closed each month.

Real example

HVAC company expensing truck stock and losing track of agreement revenue

Where they started: The company expensed every parts purchase immediately and booked maintenance agreement payments as income on the sale date. Job costing did not exist, so the owner could not tell whether install jobs or service calls were funding growth.

What we did: We set up truck stock as inventory relieved by job, built a deferred revenue schedule for maintenance agreements tied to the visit calendar, and job costed every install with materials, labor and permits.

How it ended up: Within one quarter, the owner saw that two long-standing install crews were bidding jobs below the shop's real cost, and repriced the next round of quotes accordingly.

6.5 points

Install margin improvement

12-month recognition schedule

Maintenance agreement revenue smoothed

6 business days

Time to close

I always knew we were busy. I finally know which jobs are actually making money.
Owner, 3-truck HVAC company

How we set up your accounts

The accounts we build first for this kind of business, so reports read the way you think.

  • Service revenue, maintenance agreement revenue and install revenue as separate income accounts
  • Deferred revenue (liability) for prepaid maintenance agreements
  • Truck stock and warehouse inventory as an asset, relieved to job cost when used
  • Labor cost split by division (service versus install) including employer taxes
  • Permits, equipment and subcontracted trades tracked per install job

Questions people ask

How much does bookkeeping cost for an HVAC company?

Most HVAC companies with two to six trucks pay $400 to $900 a month for bookkeeping that includes job costing, inventory tracking and a monthly close. Larger shops with dedicated install crews often run $1,000 to $1,800.

Should maintenance agreement revenue be recorded when the customer pays?

No. Record the payment as deferred revenue, a liability, and recognize a portion of it as income each time a tune-up visit actually happens. This matches the revenue to the labor cost of delivering it.

How do I know if my install jobs are actually profitable?

Job cost every install separately, including equipment, materials, permits, labor and any subcontracted trades, then compare gross margin against your target for that job type. A blended company-wide margin can hide underpriced jobs.

Is truck stock an expense or an asset?

It is an asset, inventory, until a technician uses a part on a specific job. At that point it moves to the cost of that job. Expensing parts purchases immediately can make slow-purchasing months look artificially profitable.

What is a good technician efficiency rate for HVAC?

Most healthy shops run between 65 and 75 percent billable hours against hours paid. Below 60 percent, dispatch routing, drive time or callback rates usually need attention.

Keep reading

Want your books handled for you?

We read your receipts, match your bank activity, and close your books every month. You get one short list of questions and a dashboard that always tells the truth.