CFOS for QuickBooks, coming January 2027See what you get
CFOSHVAC
CFOS FOR QUICKBOOKS · HVAC

Job costing software for HVAC contractors

HVAC jobs buy rooftop units and split systems weeks before the GC can take them, then wait on startup and balance to close. CFOS for QuickBooks costs equipment, duct and labor by phase on each job.

We email you when CFOS for QuickBooks opens, plus a few updates before then. Your address stays with Run On CFOS. One click unsubscribes.

30 days free, a 90-day money-back guarantee, and cancel anytime. It opens January 2027. We email you the day it opens.

How HVAC bills and where the money leaks

Commercial HVAC bills progress on a schedule of values, usually split into equipment, ductwork, refrigerant piping, controls and startup, with retainage on every line. Light commercial and new homes often bill by phase instead: a draw at rough-in, one when the units are set and one at startup. Most HVAC shops also have a service side that bills by the call or on a maintenance agreement, and that money moves on a different clock than the contract work.

Equipment is the first leak. Rooftop units, condensers and furnaces are ordered on long lead times, priced off a quote that can change before the PO is cut, and delivered to your yard because the roof or the slab isn't ready. You pay the distributor on their terms while the unit waits, and you can only bill it as stored material if the contract allows.

The rest of the leaks are labor. Duct gets reworked when ceiling heights or framing change, a crane day gets rescheduled because the roof deck isn't done, and the GC asks you to turn the units on for temporary heat while drywall goes up. Then come the startup trips, the balance report punch, and warranty callbacks on units another crew damaged, and none of it was in the bid unless someone wrote a ticket.

How HVAC costs split and what CFOS tracks

HVAC costs split into equipment, duct and fittings, refrigerant piping, controls, labor by phase, cranes and lifts, and subcontracted test and balance. Equipment is a large share of the contract and it's bought in big pieces, so one unit charged to the wrong job can make two jobs look wrong at once. Labor is where the bid is won or lost, and duct install, setting units and startup don't move at the same pace.

CFOS imports your estimate as the job budget by cost code and compares it to actual cost from QuickBooks Online every hour. Seven cost types and three levels of cost code let you put each system or floor on its own line with labor and material under it. Field and shop time comes in approved, with labor burden set by class, so an installer hour and a service tech hour cost what they really cost.

Bills emailed to your bills inbox are read, coded to the job and checked against the PO. When the distributor bills a unit above the PO price, the office sees it before it's paid. Service work can live on its own jobs and cost codes, so a busy summer of service calls doesn't hide a losing construction job, and the other way around.

Workflow from the field to the office

The foreman files a daily with the crew, the equipment and photos, which gives you a record of the crane day, the units set and the duct hung. If the GC asks for extra work, like added returns or a relocated unit, the T&M ticket rides on the daily and the GC signs it on site. It becomes a change order draft for the next pay app instead of a favor that never gets billed.

Time is entered in the field, approved and sent to QuickBooks Payroll with the job and cost code. Shop time on fabricated duct goes to the job it's built for, so it's job cost and not overhead. Equipment daily rates charge lifts and the crane truck to the job on the days they're on a daily.

The PM builds the pay app from the schedule of values, with stored materials where the contract allows and retainage by line. Equipment submittals, RFIs about ceiling space and punch items from the balance report are tracked on the job. When startup and the balance report are all that's left before retainage, the PM can see which items are open and who owes them.

What the owner sees every month

Each month the PM enters cost to complete on every open job and it gets approved. The WIP schedule shows over and under billing, which is where you see equipment you've paid for and can't bill yet. The master WIP puts every construction job on one page.

Your CEO Report grades gross margin, overhead and net profit before taxes against the published average and CFOS target for HVAC at your size. If service is part of the business, keeping its jobs separate tells you whether service or construction is paying the overhead. The CEO Report grades the whole company, and the job costing tells you which side earned it.

The 13 week cash forecast reads your QuickBooks Online data and your pay apps and marks the lowest week. A summer of equipment bought for fall jobs is the kind of week you want to see early. You can ask Claude or ChatGPT about any job, and the answer stays within what your sign in allows.

COST CODES

HVAC cost codes, matched to QuickBooks

Each group below is one set of cost codes in CFOS. Bills, time and equipment post to them. QuickBooks keeps the books underneath, so your bookkeeper sees the same numbers.

Cost code groupWhat goes on it
EquipmentRooftop units, condensers, furnaces, air handlers and mini splits, at the PO price, with stored material billing.
Duct and fittingsPurchased duct, fittings, flex, hangers and sealant.
Duct fabricationShop labor and material for duct built in your shop and charged to the job it's for.
Refrigerant and condensate pipingLine sets, refrigerant, condensate lines and pumps.
Grilles, registers and diffusersAir devices and the labor to set them at trim.
Controls and thermostatsThermostats, sensors, controls wiring and programming time.
Cranes and riggingCrane days, rigging, curb adapters and lifts for setting units.
Startup, test and balanceStartup labor, the balance contractor and corrections from the balance report.
Warranty and callbacksReturn trips after startup, kept on the job so warranty cost is visible.
Change orders and T&MAdded scope tied to the signed ticket, coded apart from the base contract.
THE NUMBERS FOR HVAC

How HVAC contractors do, by revenue

Each row shows the all-trade average, this trade's average and the CFOS target where one is published. These are the numbers your own job costing gets graded against. Net profit is before taxes in every row.

RevenueOverheadGross marginNet profit, before taxes
$1M to $5M15.1% all-trade average
16% HVAC
14.1% CFOS target
22.1% all-trade average
24% HVAC
25% CFOS target
7% all-trade average
8% HVAC
11% CFOS target
$5M to $10M14.1% all-trade average
15% HVAC
13.1% CFOS target
23.4% all-trade average
25% HVAC
26% CFOS target
9.4% all-trade average
10% HVAC
12.9% CFOS target
$10M to $25M13.1% all-trade average
14% HVAC
12.1% CFOS target
24.6% all-trade average
26% HVAC
27.1% CFOS target
11.5% all-trade average
12% HVAC
15% CFOS target
$25M to $50M12.1% all-trade average
13% HVAC
25.7% all-trade average
27% HVAC
13.7% all-trade average
14% HVAC
HOW THE NET PROFIT FIGURES ARE BUILT.

Gross margin and overhead come from figures CFMA, Jones Maresca and other sources publish by trade and size. Net profit is computed, not surveyed: net profit = gross margin minus overhead. Nothing comes out for taxes, interest or other income and expense, so it is a before tax figure, on the same basis as CFMA's net income before taxes.

CFMA's 2025 medians are 7.1 percent before interest and taxes and 6.7 percent net income before taxes. Gross margin minus overhead leaves out interest and other income and expense, so a figure here can come in a little above or below a reported net income on the same business.

Above the $10M to $25M band the gross margin and overhead rows are a modeled extension of the same curves. They have not been reconciled against the licensed CFMA Benchmarker, so read those bands as a model and not as a survey result.

See every figure for HVAC.

90-DAY MONEY-BACK · CANCEL ANYTIME

Get on the list for the day it opens

30 days free, a 90-day money-back guarantee, and cancel anytime.

We email you when CFOS for QuickBooks opens, plus a few updates before then. Your address stays with Run On CFOS. One click unsubscribes.

30 days free, a 90-day money-back guarantee, and cancel anytime. It opens January 2027. We email you the day it opens.

QUESTIONS

What HVAC contractors ask

Can I keep HVAC service work separate from construction jobs?

Yes. Set up service on its own jobs or cost codes, and construction jobs keep their own budgets. Each side gets its own actual cost from QuickBooks Online, so you can see which one is paying for the trucks.

How do I handle units I've paid for but can't install yet?

Put them on the schedule of values as stored materials where the contract allows it. The WIP schedule shows over and under billing each month. If a unit is in your yard and not on a pay app, you'll see that you're funding it.

What if the distributor bills more than the quote?

Bills emailed to your bills inbox are checked against the PO before they're paid. A unit billed above the PO price is something the office sees first. You can take it up with the distributor, or price it into a change order if the GC changed the unit.

Can I track what temporary heat and early startup cost me?

Yes, if you give it its own cost code. The foreman's daily records the visits and the time goes on that code. If the GC asked for it, the T&M ticket gets signed on site and becomes a change order draft.

Does CFOS replace QuickBooks Online for an HVAC shop?

No. CFOS works on top of QuickBooks Online and reads from and writes to it. QuickBooks keeps your books, and you still pay Intuit for it separately.

Updated

8 Steps 60 Days

CONTROL is the full system, written for commercial subcontractors from under $1M to $100M. It's out now. 8 steps, 6 working templates, and the order they install in. $9.99 ebook, $24.99 paperback.