BOOK A FREE CALL

BLOG

The Complete Guide to HVAC Bookkeeping

HVAC bookkeeping explained: job costing, technician payroll, seasonal cash flow and dispatch software reconciliation, and what most setups get wrong.

Most HVAC contractors know their monthly revenue down to the dollar. Far fewer can tell you whether last week’s install crew actually made money once you count the condenser, both technicians’ hours, drive time and the truck — or whether it’s really the maintenance agreements quietly carrying the business. That gap is what HVAC bookkeeping is supposed to close, and it’s rarely what a generalist bookkeeping setup actually delivers.

This guide covers the five things that make HVAC books meaningfully different from a generic small-business setup: job costing by service type, separating cost of goods sold from overhead, technician payroll and spiffs, seasonal cash flow, and reconciling your dispatch software against QuickBooks. Each one gets its own deeper guide over time — this is the overview that ties them together. The first of those is live: HVAC job costing covers the chart of accounts, cost codes, burden rate calculation and QuickBooks setup behind the worked example below.

Why generic bookkeeping falls short for HVAC

A standard small-business chart of accounts assumes one kind of revenue and a fairly steady month-to-month cost structure. HVAC has neither. You’re running at least three different businesses under one rate card — installs, service calls, and maintenance agreements — and each behaves completely differently in the books.

An install is equipment-heavy: a $4,000 job might be $2,500 of condenser and $1,500 of labor. A service call is the opposite — mostly labor and drive time against a small parts ticket. A maintenance agreement is neither: it’s revenue you collected months ago against a visit you’re performing today. Record all three as one undifferentiated “HVAC revenue” line and you lose the ability to tell which one is actually funding payroll in a slow month.

Job costing by service type

The fix is tracking install, service and maintenance work as separate lines from the start, not reconstructing them at tax time. In practice that means:

  • Installs get their own revenue and cost line, with equipment and materials tied to the specific job
  • Service calls are tracked by labor and parts against the ticket, so you can see the true margin per call type
  • Maintenance agreements are treated as deferred revenue, recognized as visits are delivered rather than booked in full the day someone signs

Once this is separated, most HVAC owners find at least one surprise — often that a high-volume, low-ticket service category is barely breaking even once drive time and technician cost are counted honestly, while maintenance agreements are worth more over their life than they appear to be worth in any single month. For the actual setup — chart of accounts, cost codes, and how to calculate the burden rate that makes technician-hour costs real — see HVAC job costing.

Separating COGS from overhead

The second failure, and one of the most common we see, is treating everything that looks like a “job cost” the same way. A condenser, a compressor, a case of refrigerant — those are cost of goods sold, tied to a specific job. A truck payment, a shop lease, the office manager’s salary — those are overhead, and they belong to the business as a whole, not to any one ticket.

When both get mixed into a single “cost of sales” bucket, gross margin stops meaning anything, because it starts moving with how many trucks you leased this month rather than how the jobs actually performed. Getting this split right is usually a one-time chart of accounts fix, not an ongoing burden — but it has to be done deliberately, because most generic setups default to lumping everything together.

A worked example: install vs. service call

The numbers below are illustrative — a hypothetical job built to show the mechanic, not a benchmark for what your jobs should cost or earn.

The install. A residential customer needs a 3-ton condenser and evaporator coil replaced. The all-in price to the customer is $6,800. Equipment and materials — condenser, coil, refrigerant, line set, disconnect and miscellaneous fittings — run $3,900. Two technicians spend five hours each on site, ten tech-hours total. At an illustrative loaded labor rate of $45/hour (base wage plus payroll tax, workers’ comp and benefits — a placeholder for this example, not a sourced industry figure, for the reasons covered below), that’s $450 in direct labor. Add a truck roll estimated at $60 for fuel and wear on a half-day job, and total direct cost is $4,410. Revenue of $6,800 minus $4,410 in direct cost leaves a gross margin of $2,390 — about 35%.

The service call. Same day, a different customer has a failed run capacitor and a low refrigerant charge. The bill is $340: a diagnostic fee, the repair, and the top-off. Parts are cheap — a $35 capacitor and $40 of refrigerant, $75 total. One technician is on site for 1.25 hours, which at the same illustrative $45/hour loaded rate is $56.25 in direct labor. The truck roll is shorter, estimated at $25. Total direct cost is $156.25, against $340 in revenue — a gross margin of $183.75, or about 54%.

Same technician skill, same truck, same day — and the service call returns a meaningfully higher margin percentage than the install, even though the install brought in twenty times the revenue. Neither number is right or wrong; they’re different businesses wearing the same company name, which is exactly the point of costing them separately instead of averaging them into one blended “HVAC margin” that describes neither job accurately.

The maintenance agreement. A customer signs a $240 annual plan in January, covering one spring and one fall visit. Booking the full $240 as January revenue would make that month look better than it is and both visit months look like they cost money for nothing. Deferred correctly, the $240 sits on the balance sheet as unearned revenue when it’s collected, and $120 moves to revenue in June when the spring visit happens and another $120 in December when the fall visit happens. Each visit still has its own direct cost — say 45 minutes of labor and a filter, call it $40 in direct cost per visit — so each recognized visit shows roughly $80 of margin on paper, and the plan as a whole nets around $160 over the year once both visits are done. Book it all in January instead, and you’d show $240 of pure profit in one month and two months that each look like a $40 loss on a visit with no matching revenue — the same underlying economics, described in a way that makes every month’s numbers wrong.

Technician payroll, commission and spiffs

Technician pay in HVAC is rarely just an hourly rate. Spiffs for upselling a maintenance plan, commission on install sales, overtime during a July heat wave — all of it is a real cost of doing a specific job, and almost none of it gets coded back to that job in a typical bookkeeping setup.

The practical effect: a technician can look expensive on a payroll report and be the most profitable person in the company once you account for what they actually closed. Costing spiffs and commissions back to the jobs they relate to is what makes technician-level profitability — not just technician-level revenue — visible for the first time.

Seasonal cash flow

July and January carry most HVAC businesses; April and October barely cover payroll. That’s not a flaw in the business, it’s the nature of the trade — but it becomes a real problem when cash planning is built on a flat monthly average instead of the actual seasonal curve.

A cash plan built around your real pattern means you go into the slow months already knowing what they’ll look like, rather than finding out by watching the bank balance drop. That’s a forecasting exercise, not a bookkeeping fix, but it depends entirely on having accurate job-level and month-level history to forecast from — which is exactly what the job costing above gives you.

Reconciling ServiceTitan, Housecall Pro or Jobber with QuickBooks

Your dispatch software knows what every job billed. Your accounting software knows what you spent in total. In most HVAC businesses, nobody joins the two — which means when they disagree, and they will, nobody notices until it’s a large enough gap to be alarming.

Reconciling ServiceTitan, Housecall Pro or Jobber against QuickBooks Online monthly is where the majority of real bookkeeping errors get caught: a payment recorded in one system and not the other, a refund that only shows up in dispatch, sales tax collected but not remitted correctly. The integrations between these platforms and QuickBooks are rarely as clean as advertised, and treating the sync as automatic rather than something to check is how errors compound quietly for months.

A realistic version of this: dispatch software shows $42,300 in completed job revenue for the month. QuickBooks shows $41,850 in matching deposits — a $450 gap. Chasing it down, two jobs turn out to be paid by check and hadn’t cleared the bank yet when the report was pulled, accounting for $380 of the difference. The remaining $70 is a refund issued to a customer directly in the dispatch platform for a callback, which never got recorded as a reduction in QuickBooks at all — meaning revenue was overstated by that amount until someone actually looked for it. Neither error is a sign of dishonesty or incompetence. They’re exactly the kind of small, ordinary gaps that accumulate in any two-system setup, and reconciling monthly is what catches them while they’re still $70, not the twelfth month of a pattern.

HVAC tax deductions, briefly

Tax planning for HVAC contractors deserves its own guide, but a few things are worth flagging here. Vehicle mileage and truck expenses, tools and equipment, safety gear, and continuing education or certification costs are all legitimate deductions that are easy to under-claim if they aren’t tracked as the year goes rather than reconstructed from memory in March. Section 179 and bonus depreciation are worth knowing in outline for a purchase like a new service van: for tax years beginning in 2025, IRS Publication 946 sets the maximum Section 179 deduction at $2,500,000, phasing out once you place more than $4,000,000 of qualifying property in service that year — limits that matter far more to a large fleet than a single van, which is really the point: the cap isn’t the constraint for most HVAC businesses. For tax years beginning in 2026, IRS Revenue Procedure 2025-32 adjusts those same limits for inflation to $2,560,000, phasing out above $4,090,000, so this section doesn’t need revisiting just because the calendar turned over. Separately, under guidance the IRS issued in January 2026 implementing the One Big Beautiful Bill Act, bonus depreciation is now a permanent 100% for qualified property acquired after January 19, 2025 — though taxpayers can instead elect 40% for property placed in service in the first tax year ending after that date, which can matter if 100% bonus would otherwise waste a deduction against income that isn’t there yet. Between the two, a van bought and placed in service today can usually have its full business-use cost deducted in the year of purchase rather than spread over a multi-year depreciation schedule — and that’s the actual timing effect: place the same van in service on December 30 instead of January 2, and the entire deduction shifts a full tax year earlier. We’ll cover this in more depth in a dedicated guide.

What the numbers actually say

The same rule applies here as on our pricing page: what follows is labeled as sourced, calculated from a sourced figure, or market observation — and where we couldn’t find a number we’d stand behind, we’ve said so rather than guessed.

Gross margin by service type. You’ll find plenty of confident-sounding numbers online claiming HVAC service work runs 50–65% margin against 35–50% for installs. We went looking for the original study behind those figures and couldn’t find one — they trace back to marketing blog posts citing each other, not a named, checkable survey. ACCA does run a real financial benchmarking survey for HVAC contractors (their most recent public report, “Cool Insights,” covers 2020 data from 302 companies), but a margin-by-service-type breakdown isn’t in the material publicly available, and the full report is behind a paywall we don’t have access to. So: no number here. What we can tell you from doing the bookkeeping is qualitative and consistent across clients — treating install, service and maintenance as one blended revenue line hides real differences between them, which is the whole argument for the job costing above.

Revenue per technician. Same issue. Figures circulating online range from $180,000 to over $450,000 per technician depending which vendor blog you read, with no consistent methodology behind any of them. ServiceTitan’s own published HVAC statistics don’t include a revenue-per-technician figure either. This is a real number worth knowing for your own business — it’s usually one of the first things that becomes visible once job-level costing is in place — but we don’t have an industry benchmark we can point you to with a straight face.

True loaded cost per tech hour. This one we can partly source. The U.S. Bureau of Labor Statistics puts the median wage for Heating, Air Conditioning, and Refrigeration Mechanics and Installers at $61,010 a year in its May 2025 Occupational Employment and Wage Statistics — about $29 an hour. That’s base wage only. A true loaded rate adds payroll tax, workers’ comp, insurance and any benefits on top, and runs meaningfully higher — but we don’t have a reliable, sourced burden multiplier specific to HVAC labor to turn that into a single “loaded rate” number, so we’re not inventing one. What matters practically: if your books aren’t separating base wage from the employer costs riding alongside it, you don’t actually know your loaded cost — and that’s the number that determines whether a job was profitable, not the wage alone.

The full BLS wage picture. Beyond the median, BLS’s May 2025 data for this occupation gives a real spread: the lowest-paid 10 percent earned less than $40,050 a year, while the highest-paid 10 percent earned more than $95,210. That’s roughly a $55,000 gap between an entry-level or apprentice technician and an experienced, licensed one — and it’s worth checking your own pay scale against, because if your rates don’t reflect a spread anywhere near that wide, you’re likely either overpaying people just starting out or underpaying the technicians actually driving your revenue.

BLS also projects employment of HVAC mechanics and installers to grow 11 percent from 2025 to 2035 — much faster than the average occupation — with about 40,600 openings projected each year over that decade, mostly from a mix of growth and people leaving the trade. That’s a labor market that gets more competitive for hiring, not less. It’s another reason technician-level profitability, not just technician-level revenue, matters: losing a technician to a competitor costs more than the wage line alone suggests, because you’re also losing whatever they were closing.

BLS’s OEWS program does also track wages by industry, and this one is worth knowing if you’re hiring: a technician employed in wholesale trade earns a median of $71,190 a year — about $10,000 above the $61,010 occupation-wide median — while retail trade runs $62,830, closer to the median but still above it. The two industries where most HVAC technicians actually work, plumbing/heating/air-conditioning contractors ($60,030) and educational services ($62,520), sit closer to the middle of that range. If you’re losing candidates to a wholesaler or a distributor, the wage data says why: they’re often paying a meaningful premium over what a typical contracting business pays for the same occupation.

What good HVAC bookkeeping should give you

Within a couple of months of getting this right, you should be able to answer questions that most HVAC owners can’t: which of install, service or maintenance is actually your most profitable line; which technicians are genuinely profitable once spiffs and commissions are counted; what a maintenance agreement is worth over its full life; and what the next slow season looks like, months before it arrives.

If you’d rather have this handled than build it yourself, see how we approach HVAC bookkeeping — job costing by service type, technician payroll, dispatch software reconciliation and seasonal cash planning, done monthly, from $299/month.

Common questions

Questions about this

A generalist can keep your books technically balanced. What they usually miss is the stuff specific to HVAC: separating install, service and maintenance revenue, treating refrigerant and equipment as job cost rather than overhead, and reconciling a dispatch platform against QuickBooks every month. None of that is exotic, but it has to be someone's job, or it quietly doesn't happen.

We price by transaction volume rather than by the hour: Starter is $299/month for up to 100 transactions, Growth is $499/month for up to 300, and Scale is $799/month for up to 700 — see our pricing page for the full breakdown. A multi-truck HVAC business is typically Growth or Scale rather than Starter, just based on transaction volume. Catch-up work, if you're behind, is priced separately — usually $200 to $300 per month you're behind depending on complexity — rather than folded into the ongoing rate.

Yes, if your dispatch software captures labor hours and parts by job, which ServiceTitan, Housecall Pro and Jobber all do. The bookkeeping side is making sure that detail actually makes it into your accounting records instead of stopping at the dispatch platform.

Common, and not a reflection on them. Most bookkeepers are trained generally, not by trade. The fix is usually a chart of accounts rebuild and a job-costing process, not necessarily a new bookkeeper — though sometimes it is easier to bring in someone who's already done this for other HVAC contractors.

Yes, though the COGS-versus-overhead split matters less when there's no equipment-heavy install revenue to separate out. What still matters is technician-level costing, dispatch reconciliation, and planning cash around your slow months.

Got a question about your own books?

Thirty minutes, no pitch. We'll look at what you've got and tell you honestly what we see.

BOOK A FREE CALL