Backbone CRM
All field guides
May 31, 2026field-guides7 min read

How to price an HVAC job so you actually make money

Most contractors estimate from gut feel and lose 15–25% of their margin to forgotten costs. Here's the simple math that fixes it.

If you've been bidding HVAC work for more than a year, you already know the pattern. The estimate looked good when you sent it. Three weeks later the job's done, the customer's happy, the invoice is paid — and somehow you're a few hundred dollars short of where you thought you'd be.

Multiply that by 80 jobs a year and you've got a real problem.

This guide walks through the math that fixes it. Not theory. Not generic small-business advice. The actual line items a working HVAC contractor needs to hit so the number on the bottom of the estimate matches what lands in the bank.

The number you need to start with

Most contractors estimate material + labor + a markup and call it a day. That's the trap. The markup is doing work you can't see — and it's almost always doing too little.

The right formula is:

Sell price = Material cost + Labor cost + Truck cost + Overhead share + Profit target

Five pieces, in that order. Skip one and you're losing money on the job whether or not you can feel it.

1. Material cost

The part you usually get right. Your distributor invoice plus shipping plus sales tax. If you buy from two suppliers, average over the year — the few dollars of variance won't move the needle but the consistency saves you mental load on every quote.

One thing to add that most contractors miss: waste. Refrigerant lines you cut wrong. Fittings you opened and didn't use. Filters you grabbed and the customer changed their mind on. Add 8–12% to the materials line and your year-end inventory variance disappears.

2. Labor cost

Not the hourly rate you pay your tech. The loaded labor cost — wages plus the stuff that comes with employing a human:

  • Payroll taxes (FICA, FUTA, SUTA) — about 9–11% on top of wages
  • Workers' comp — 6–14% in HVAC, depending on state and class code
  • Health insurance / benefits if you offer them — varies wildly
  • Paid time off — typically 5–8% of wages

A tech you pay $32/hour costs you roughly $40–$44/hour loaded. Use the loaded number in your estimate. The unloaded number is for payroll, not for pricing.

Then multiply by honest hours. A two-hour job in good conditions is a three-hour job when the access panel is rusted, the line set runs through a finished ceiling, and the dog has opinions. Quote what the job will actually take.

3. Truck cost

This is the one that disappears the most often. Every job uses a truck. Trucks cost money to operate even when they're sitting in your driveway.

  • Fuel: trip mileage × $/mile (use $0.20–$0.30 in a service van)
  • Maintenance: roughly $0.10/mile averaged over the life of the vehicle
  • Insurance + registration + depreciation: build an annual number, divide by jobs

Most established service vans cost $0.55–$0.80 per mile fully loaded. A 25-mile round trip is $14–$20 of truck cost. That's not a rounding error; that's two slices of margin you don't have to give up.

4. Overhead share

The fixed cost of being open. Rent, software, accounting, phones, marketing, your own salary if you draw one. Add it up annually and divide by the number of billable hours you expect.

  • $80,000/year in overhead
  • 1,200 billable hours/year (2 techs × 600 hours, conservative)
  • Overhead burden = $67 per billable hour

Add that to every job, multiplied by the labor hours on the job. A 4-hour install is $268 of overhead share whether or not it feels like it.

5. Profit target

What's left when everything else is paid. This is not "extra" — this is the whole reason you're in business.

A healthy HVAC service business runs 15–25% net margin on average jobs. Below 15% you're working too hard for too little. Above 25% you're either lean and well-managed or pricing in a hot market — both worth understanding, but don't assume the second one if you haven't checked.

Set your profit target as a percentage of the subtotal of the first four items, then add it on.

A worked example

Customer call: replace a 3-ton AC condenser. Suburban single-family house, 22-mile round trip. Two techs, estimated 4 hours on-site.

| Line | Amount | |------|-------:| | 3-ton 16-SEER condenser | $1,420 | | Line set + refrigerant + small parts | $260 | | Waste allowance (10%) | $168 | | Material subtotal | $1,848 | | Labor — 2 techs × 4 hrs × $42/hr loaded | $336 | | Truck — 22 mi × $0.68/mi | $15 | | Overhead — 8 labor-hrs × $67/hr | $536 | | Cost subtotal | $2,735 | | Profit target — 20% | $547 | | Customer price | $3,282 |

That's the number that goes on the estimate. Round it to $3,295 if you like clean prices, or to $3,250 if you want a tiny psychological discount. Either way, you've protected your margin.

Without overhead and truck cost, the same job would have priced at $2,304 — and you'd lose $431 of margin you didn't know you were giving up.

Where Backbone fits

We built Backbone around exactly this math because most of the contractors we talked to were doing some version of it on paper and losing track halfway through:

  • Price book: store loaded labor rates, material costs, and per-job templates so you're not doing the math from scratch every time.
  • Job costing: track projected vs. actual for material, labor, and truck cost on every job. The variance shows up before the next quote.
  • AI estimating: snap a photo, get a draft estimate that already has the right markup baked in. Edit and send.
  • Real profit reports: at year end, the number is the number. No reconciliation needed.

The math doesn't change because you bought software. But the software should make sure you actually do the math, every time, instead of trusting gut feel.

The one-line summary

If you take nothing else from this:

Charge for the truck and the overhead, not just the parts and the people.

That single change — adding two line items that most contractors skip — is usually the difference between an HVAC shop that grows and one that just stays busy.

Start free in two minutes.

No credit card. No demo call. Just download the app and start a job.