HVAC P&L & Chart of Accounts: How to Read Yours (2026)

How to set up an HVAC chart of accounts and read your P&L: COGS vs overhead, gross vs net profit, WIP, and a monthly review.

Most HVAC owners get a profit and loss statement (P&L) every month and look at two lines: sales and the bottom number. Everything in between gets skipped, often because the P&L is set up so it can't tell you much. Tech wages sit in overhead, equipment is lumped with office supplies, and all revenue lands in one "Sales" line. The report is technically right and practically useless.

This guide shows how to set up a chart of accounts that fits an HVAC shop, how to split cost of goods sold (COGS) from overhead, the difference between gross margin and net profit, cash vs accrual books, the mistakes that make a P&L lie, and a monthly review checklist.

All worked examples below use made-up round numbers to show the math. They are not industry averages. Swap in your own. Nothing here is tax or accounting advice. Work with your accountant or bookkeeper before you change your chart of accounts or your accounting method.

What a P&L is (and isn't)

A P&L shows revenue, minus the costs of doing the work, minus the costs of running the company, over a period (a month, a quarter, a year). It has three layers:

  1. Revenue: what you billed (or collected, on cash books) for the period.
  2. Cost of goods sold (COGS): costs that exist because a job happened. Gross profit is revenue minus COGS.
  3. Overhead (operating expenses): costs to keep the doors open whether or not a job runs that day. Net profit is gross profit minus overhead.

A P&L does not show cash in the bank, what customers owe you, or what you owe suppliers. That's the balance sheet and the cash flow report. For the cash side, see our HVAC cash flow guide.

Why HVAC shops need COGS split from overhead

The line between COGS and overhead is the most important decision in your books. Get it right and your gross margin tells you whether your prices work. Get it wrong and you can't tell a pricing problem from a spending problem.

COGS (direct job costs) for an HVAC shop usually includes:

  • Equipment: condensers, air handlers, furnaces, heat pumps, mini-splits, coils.
  • Materials and parts: repair parts, refrigerant, line sets, pads, disconnects, duct, fittings, filters, and consumables.
  • Direct labor: wages paid to techs and installers for time on jobs (including drive time to jobs, if that's how you track it).
  • Labor burden on direct labor: payroll taxes, workers' comp, health insurance, paid time off, retirement match, and commissions or spiffs paid on jobs. Our free HVAC labor burden calculator works this out from your own payroll numbers.
  • Subcontractors: electricians, crane, duct fabrication, concrete, insulation.
  • Permits, inspections, and disposal fees tied to specific jobs.
  • Equipment rentals for a specific job (lift, crane, trencher).

Overhead is everything else: office and dispatch wages, the owner's salary, rent, trucks and fuel, insurance, marketing, software, phones, tools, accounting, bank and card fees, and training.

A quick test: if we ran zero jobs next month, would this cost still show up? If yes, it's overhead. If no, it's COGS.

Some shops put truck costs in COGS because trucks only exist to run jobs. That's a fair choice. Pick one rule, write it down, and keep it the same every month so you can compare periods.

A sample chart of accounts for an HVAC shop

A chart of accounts is the list of buckets your bookkeeping software sorts every transaction into. The account numbers below are an example layout, not a standard. Your accountant may number them differently, and that's fine. What matters is the structure: revenue and COGS split by department, so you can see gross margin for each kind of work.

Income (4000s)

AccountNameWhat goes here
4100Service / repair revenueDiagnostics, repairs, service calls
4200Maintenance agreement revenueMembership fees and tune-ups sold under agreements
4300Replacement / install revenueResidential and light commercial changeouts
4400New construction revenueNew homes, additions, builder work
4900Discounts and refundsRecorded as negative revenue so you can see how much you give away

If you do commercial service, IAQ, or ductwork as a separate line of business, add a revenue account for each. Keep it to what you'll actually review. Five to eight revenue lines is plenty.

Cost of goods sold (5000s)

AccountNameNotes
5100EquipmentSplit by department (5110 service, 5130 replacement, 5140 new construction) if your software allows
5200Materials and partsInclude freight, restocking fees, and sales tax you pay on materials
5300Direct laborTech and installer wages for job time
5350Direct labor burdenPayroll taxes, workers' comp, benefits, and commissions on direct labor
5400SubcontractorsFinal invoice amounts, including change orders
5500Permits, inspections, and disposalJob-specific fees only
5600Job equipment rentalRentals for a specific job
5900Warranty and callback costsParts and labor on free return trips, so rework is visible

Many bookkeeping programs let you tag transactions by department, class, or location instead of creating separate accounts for each department. Either way works. The goal is being able to run a P&L for service alone, replacement alone, and so on.

Overhead / operating expenses (6000s)

AccountName
6100Office and dispatch wages (with their payroll taxes and benefits)
6150Owner's salary (a market-rate wage for the job the owner does)
6200Rent and utilities
6300Vehicles: payments or depreciation, fuel, repairs, insurance
6400Business insurance (general liability, etc.)
6500Marketing and advertising
6600Software, phones, and internet
6700Tools and shop supplies (not job-specific)
6800Professional fees (accounting, legal)
6850Bank and card processing fees
6900Training, licenses, and dues

Other income and expense (7000s–8000s)

Interest paid on loans, interest earned, gain or loss on selling a truck, and income taxes go below the operating line so they don't blur your operating profit.

Gross margin vs net profit

  • Gross profit = revenue − COGS. Gross margin = gross profit ÷ revenue. This tells you whether your prices cover the direct cost of the work, with enough left over to pay for everything else.
  • Net profit = gross profit − overhead (before or after other income/expense, depending on how your report is laid out). Net margin = net profit ÷ revenue. This is what the business keeps.

Gross margin is a pricing number. Net margin is a pricing and spending number. If gross margin is healthy but net profit is thin, look at overhead and at whether you have enough billable hours to spread it over. Our free HVAC break-even hourly rate calculator shows what each billable hour has to bring in to cover overhead.

Margin and markup are not the same thing. A 50% markup on cost is a 33% gross margin. Our free markup vs margin calculator converts one to the other.

Worked example: a sample HVAC P&L

These are made-up example numbers for one year at a fictional shop. They are round on purpose so the math is easy to follow. They are not benchmarks.

LineAmount% of revenue
Service / repair revenue$450,00030.0%
Maintenance agreement revenue$90,0006.0%
Replacement / install revenue$810,00054.0%
New construction revenue$150,00010.0%
Total revenue$1,500,000100.0%
Equipment$420,00028.0%
Materials and parts$135,0009.0%
Direct labor$300,00020.0%
Direct labor burden (25% of direct labor in this example)$75,0005.0%
Subcontractors$45,0003.0%
Permits, inspections, and disposal$15,0001.0%
Total COGS$990,00066.0%
Gross profit$510,00034.0%
Office and dispatch wages$110,0007.3%
Owner's salary (market rate)$90,0006.0%
Rent and utilities$36,0002.4%
Vehicles and fuel$60,0004.0%
Insurance$30,0002.0%
Marketing$60,0004.0%
Software and phones$18,0001.2%
Other (tools, accounting, card fees, training)$16,0001.1%
Total overhead$420,00028.0%
Net operating profit$90,0006.0%

Check the math: $1,500,000 − $990,000 = $510,000 gross profit. $510,000 − $420,000 = $90,000 net operating profit. $90,000 ÷ $1,500,000 = 6.0%.

The same P&L by department

A single gross margin of 34% hides a lot. Here is the same made-up shop, with COGS assigned to each department:

DepartmentRevenueCOGSGross profitGross margin
Service / repair$450,000$171,000$279,00062.0%
Maintenance agreements$90,000$36,000$54,00060.0%
Replacement / install$810,000$648,000$162,00020.0%
New construction$150,000$135,000$15,00010.0%
Total$1,500,000$990,000$510,00034.0%

In this example, replacement brings in more than half the revenue but only 20% gross margin, and new construction barely covers its direct costs. The whole-company number looked "okay" only because service and maintenance were carrying the other two. That's the kind of thing a department-level P&L shows and a one-line "Sales" P&L never will. To dig into single jobs, see our HVAC job costing guide and the free HVAC job profit calculator.

Cash vs accrual: which books are you reading?

The IRS describes the two main methods this way in Publication 538:

  • Cash method: "Under the cash method, you generally report income in the tax year you receive it, and deduct expenses in the tax year in which you pay the expenses."
  • Accrual method: "Under the accrual method, you generally report income in the tax year you earn it, regardless of when payment is received."

Source: IRS Publication 538, Accounting Periods and Methods

Why it matters for reading your P&L:

  • Cash-basis P&Ls swing with timing. A month where you paid for a load of equipment but haven't collected on the installs will look like a loss. The next month will look great. Neither tells you much about how the work itself performed.
  • Accrual-basis P&Ls match revenue and costs to the period the work happened, which makes month-to-month comparisons and gross margin by department more meaningful.
  • Your tax method and your management reports can differ. Some shops file taxes on one method and review monthly management reports on another. Publication 538 also covers who is allowed to use the cash method and special rules for inventory. Ask your accountant which method fits your shop and whether your software can report both.

Common P&L mistakes in HVAC shops

1. Tech wages in overhead

This is the most common one. If tech wages and their burden sit in a single "Payroll" line in overhead, gross margin looks far better than it is. In the example above, moving the $375,000 of direct labor and burden into overhead would show a 59.0% gross margin instead of 34.0%. Net profit stays at $90,000 either way, but now you can't see that labor cost is 25% of revenue, and you'd price installs thinking you have far more room than you do.

2. Owner draws treated as the owner's pay (or as an expense)

If you're an owner of a pass-through business (sole proprietor, partnership, or many LLCs), money you take out is often recorded as a draw, which is an equity account on the balance sheet. It isn't on the P&L at all. That makes net profit look bigger than what the business earns after paying someone to do the owner's job. In the example, leaving out the $90,000 owner's salary would show $180,000 (12.0%) instead of $90,000 (6.0%).

For management reporting, add a market-rate wage for the work the owner actually does (running calls, selling, managing) as an overhead line, or at least subtract it when you judge profit. How you actually pay yourself for tax purposes depends on your entity type. That's a question for your accountant, not the chart of accounts.

3. Ignoring work in progress (WIP) on installs

A two-week commercial job or a multi-day install that spans month end can distort both months. Equipment and labor hit this month; the final invoice lands next month. On paper, this month looks like a loss and next month looks like a windfall.

Made-up example: a $12,000 install is estimated to cost $9,000. At month end, $5,400 of cost has been spent (60% of the estimated cost), and you've billed a $3,600 deposit.

  • Earned revenue by percent complete: $12,000 × 60% = $7,200.
  • Billed so far: $3,600. The job is underbilled by $3,600.
  • Gross profit earned to date: $7,200 − $5,400 = $1,800.

Whether and how you book this depends on your accounting method and the size of your jobs, so work it out with your accountant. Even if you don't adjust the books, keep a WIP list at month end so you know which months are distorted and by how much.

4. Everything in "Sales" and "Job supplies"

One revenue line and one cost line make department margins impossible. Split them as shown above.

5. Callbacks buried in overhead

Free return trips are real parts and labor. Put them in a warranty/callback COGS account so rework shows up as a number you can track.

6. Personal and business spending mixed together

Personal expenses on the business card inflate overhead and make every margin wrong. Keep them out of the business accounts, or at least code them clearly so your accountant can handle them.

7. Books closed months late

A P&L you see 90 days after the month ends is history, not a tool. Aim to close each month within two to three weeks.

Monthly P&L review checklist

For the other numbers worth tracking alongside your P&L, see the HVAC KPIs every shop owner should track.

Compare chart-of-accounts setups

If you want to see how other owners lay out their books, bring your chart of accounts (numbers only, no customer details) to the Growth Room Discord.