HVAC
How to Price a HVAC Job

If you have ever quoted a job that felt like a win, then realized you barely broke even after the truck, the tech, and the parts markup, you are not alone. Pricing HVAC work is where a lot of good technical shops lose money. The install goes perfectly, the customer is happy, and the profit still evaporates. This guide walks through how to price a HVAC job from the ground up: labor, materials, overhead, prep and complexity, and the margin that actually keeps your doors open. We will run a real numeric example so you can see how the pieces stack.
Key takeaways
- Price from your true costs first, then add margin. Never start with a competitor's number.
- Overhead is real cost. If you do not load it into every job, you are quietly funding it out of profit.
- Job complexity and prep time are where estimates go wrong. Build in a realistic buffer.
- A clean, itemized quote wins trust and protects your margin better than a lowball round number.
Start with your fully loaded labor rate
Your labor rate is not what you pay your tech per hour. It is what that hour actually costs you once you include payroll taxes, workers comp, benefits, vehicle, tools, and non-billable time like drive time and callbacks. A tech you pay $28 an hour can easily cost you $45 to $55 an hour fully loaded once you add everything in.
Figure out your loaded cost per billable hour, then set a customer-facing labor rate on top of that. Many US HVAC shops bill labor somewhere in the $90 to $175 per hour range depending on market and service type. The point is not to copy a number. It is to know your cost floor so you never price below it.
Billable vs paid hours
A full-time tech works roughly 2,080 hours a year but bills far fewer. Drive time, training, and shop time all eat into that. Divide your annual labor cost by realistic billable hours, not total hours.
Cost your materials and mark them up
List every part the job needs: equipment, line sets, refrigerant, ductwork, fittings, thermostat, electrical, fasteners, and consumables. Then add a markup. Materials carry cost beyond the invoice price: shopping, pickup, stocking, waste, and warranty handling. A common markup range is 20 to 50 percent on materials, with higher markup on smaller items and lower on big-ticket equipment.
Do not forget the small stuff. Tape, sealant, drain line, whips, and disposal fees add up across a year of jobs. If you leave them off every quote, you are eating them every time.
Load your overhead into every job
Overhead is everything that keeps the business running but is not tied to one specific job: rent, insurance, software, office staff, advertising, phone, accounting, and your own management time. This is the number most shops underestimate.
A simple way to handle it: total your annual overhead, then spread it across your billable hours to get an overhead cost per hour. Add that to your labor cost. Alternatively, apply an overhead percentage to each job. Either way, the goal is the same: no job leaves the shop without carrying its share.
- Add up 12 months of overhead expenses.
- Divide by your total billable hours for the year.
- That per-hour figure gets built into your rate on every job.
Adjust for prep, access, and complexity
Two jobs with identical equipment can cost very different amounts to complete. A clean garage install with easy access is not the same as an attic changeout in July with tight clearances and old, brittle ductwork. This is where a lot of estimates go sideways, because the pricing looks fine on paper but the crew burns hours you never billed for.
- Access: attic, crawlspace, rooftop, or tight mechanical closet.
- Existing conditions: old wiring, undersized returns, code upgrades, asbestos concerns.
- Site factors: parking, distance, weather, occupied home, permits and inspection time.
- Unknowns: anything you cannot fully see until you open it up.
Build a complexity buffer into your labor hours instead of hoping the job goes clean. If you estimate 8 hours, but access is bad, price 10. A buffer that goes unused makes you extra margin. A buffer you skip turns into a loss.
Set your margin, then check the final number
Margin is not markup, and mixing them up costs shops real money. If your total cost is $1,000 and you want a 30 percent profit margin, you do not add 30 percent. You divide by 0.70, which gives $1,429. Marking up by 30 percent to $1,300 only leaves you about a 23 percent margin. Small math, big difference over a year.
Decide on a target margin that fits your market and service type. Once you have the price, sanity check it: does it cover your worst-case day on this job, and would you be comfortable if the customer read the itemized breakdown? If yes, you are in good shape.
A worked example: pricing a system changeout
Say you are quoting a residential AC and coil changeout. Here is how the numbers might stack for a two-tech, one-day job.
- Labor: 2 techs x 8 hours = 16 hours at a $55 loaded cost = $880.
- Overhead loaded at $20 per billable hour x 16 hours = $320.
- Materials cost: equipment and parts = $3,200, marked up 25 percent = $4,000. Materials profit built into that markup: $800.
- Complexity buffer: attic access, add 2 tech hours at $55 = $110.
- Subtotal cost basis (labor + overhead + material cost + buffer): $880 + $320 + $3,200 + $110 = $4,510.
Now apply your target margin. The material markup already adds $800, but treat the whole job as one number for a clean margin check. If your all-in cost is $4,510 and you want a 30 percent margin, divide by 0.70: that is about $6,443. Round to $6,450. That price covers your loaded labor, your overhead, your materials with markup, your access buffer, and leaves genuine profit. Compare that to a shop that quotes $5,200 because a competitor did, and you can see how easy it is to work all day for almost nothing.
Common HVAC pricing mistakes to avoid
- Quoting off gut feel or matching a competitor instead of your own costs.
- Using the tech's pay rate as your labor rate and skipping the loaded cost.
- Forgetting overhead, then wondering why a busy year still ends thin.
- Confusing markup with margin and quietly giving away profit.
- No complexity buffer, so every hard job becomes a loss.
- Round-number lump sums with no itemization, which invites haggling and erodes trust.
Brivium helps HVAC shops turn these numbers into clean, branded quotes, then schedule the crew and collect card payments the moment the job is done, so your pricing work actually shows up in the bank.
Start free trialPricing well is a habit, not a one-time formula. Track your actual hours and material costs against your estimates for a few months, and your quotes will get sharper and more profitable every single job.
Frequently asked questions
What is a good profit margin for a HVAC job?
Many US HVAC shops target a 20 to 40 percent net margin depending on service type and market. Service and repair work often carries higher margins than large equipment installs. Set your target from your real costs, not a competitor's price.
How do I calculate my HVAC labor rate?
Add your tech's wage, payroll taxes, workers comp, benefits, vehicle, and tools to get a fully loaded cost per hour. Divide annual labor cost by realistic billable hours, not total paid hours, then set a customer-facing rate above that floor.
What is the difference between markup and margin?
Markup is added on top of cost; margin is profit as a percentage of the final price. A 30 percent markup does not equal a 30 percent margin. To hit a 30 percent margin, divide your cost by 0.70 instead of multiplying by 1.30.
How much should I mark up HVAC materials?
A common range is 20 to 50 percent, with higher markup on smaller parts and lower on big-ticket equipment. Markup should cover shopping, pickup, stocking, waste, and warranty handling, not just the invoice price.
