HVAC flat-rate margin calculator: price a job to actually hit your target margin
A flat-rate price built from loaded labor, parts markup and a target gross margin is not the same number as one built from the technician's hourly wage and a rough guess at parts cost - and the gap between the two is usually the entire profit on the job. This calculator applies the standard flat-rate formula used across 2026 HVAC pricebook guidance and shows you the price, then breaks down exactly what's driving it.
This prices one line item, not your whole business. The output is a defensible flat-rate price for a single task given your inputs. It does not replace a full price book covering your most common 40-60 tasks, and it is not professional financial or tax advice.
Who this is for
Owner-operators and office managers at HVAC (and adjacent trade) businesses who price jobs with a flat-rate book, or who want to move off pure time-and-materials billing and need to see how loaded labor, parts markup and a margin target combine into a defensible customer-facing number.
It's less useful if you already bill strictly time-and-materials with no markup structure, if your loaded labor rate and overhead allocation haven't been calculated yet (start with the technician billable rate calculator first), or if you need a full multi-task price book rather than a single job's price.
What you will enter
Every input maps to a term in the formula further down. In plain language:
- Task hours
- Your realistic estimate of billable technician time on this task, including reasonable setup and clean-up - not the fastest-case time.
- Loaded labor rate ($/hr)
- What an hour of technician time actually costs the business: wage, payroll tax, workers' comp, benefits, and vehicle cost. Not the technician's paycheck wage alone.
- Overhead allocation ($/hr)
- Total monthly overhead (rent, software, admin salaries, marketing) divided by your team's total billable hours per month.
- Parts cost ($)
- What the parts for this task cost you, before markup.
- Parts markup (multiplier)
- What you multiply parts cost by to reach the billed parts price. 3.0 means parts are billed at three times cost.
- Target gross margin (%)
- The share of the final price that should be margin after labor, overhead and parts - not a markup on cost. See the FAQ on why this is different from a markup percentage.
Calculate your flat-rate price
Estimates only, for informational purposes. This is not professional financial, legal or tax advice. Confirm your own labor burden, overhead and parts costs before publishing a price book.
Why the loaded labor rate does most of the work
Wage is one input among several that make up the loaded labor rate, and it's usually the smallest gap-closer. Payroll tax, workers' comp, benefits and vehicle cost typically add $15-$30/hour on their own, and overhead allocation adds more on top - commonly another $30-$50/hour once you divide total monthly overhead across only the hours that are actually billable, which is rarely more than 60-65% of paid time. A shop paying a $28/hour wage routinely needs a loaded rate of $130-$160/hour to hit target margin once all of that is counted. Price a job off the wage alone and the labor line in your flat rate is short by exactly that gap.
That's also why utilization - the share of paid hours that are actually billable - changes the price of the identical job. Lower utilization spreads the same fixed overhead and non-billable time across fewer billable hours, which raises the overhead-per-hour figure and the loaded labor rate together. The example below holds the job itself constant and changes only the loaded rate, to show the size of that effect.
Worked example: same job, two utilization rates
Both cases below are the identical job - 1.5 hours of labor, $150 in parts at a 3.5x markup, 55% target margin - priced at two different loaded labor rates from opposite ends of the typical $95-$200/hour range, standing in for a higher- and a lower-utilization technician.
Higher-utilization technician (~$95/hr loaded)
Labor: $142.50 · Overhead: $75.00 · Parts: $525.00
Direct cost: $742.50 · Flat-rate price: $1,650.00
A tech who stays closer to a full billable schedule needs a lower loaded rate to clear the same margin, so the job prices lower.
Lower-utilization technician (~$160/hr loaded)
Labor: $240.00 · Overhead: $75.00 · Parts: $525.00
Direct cost: $840.00 · Flat-rate price: $1,866.67
More idle or non-billable time means the same fixed overhead and payroll cost are spread across fewer billable hours, so the loaded rate - and the price - rises.
That roughly $217 spread comes entirely from utilization, before either technician has done anything differently on the job itself. See the technician billable rate calculator to build your own loaded rate from your actual utilization figure rather than these illustrative endpoints.
Same job, three margin targets
This table reuses your inputs above and changes only the target margin, so you can see what a lower replacement-style margin versus a higher service-style margin does to the same direct cost.
| 40% margin | 55% margin | 70% margin | |
|---|---|---|---|
| Enter task hours and a labor rate above to see the scenarios. | |||
Methodology and sources
The calculator returns a flat-rate price using this formula:
directCost = Hours × (LoadedLaborRate + OverheadRate) + PartsCost × Markup
price = directCost ÷ (1 − TargetMargin)
Hours, loaded labor rate and overhead rate combine first because all three scale with the same task time. Parts cost is multiplied by the markup separately, since parts pricing doesn't move with labor time. The total direct cost is then divided by one minus the target margin - not multiplied by (1 + margin) - because gross margin is defined as a share of the selling price, not a markup on cost; dividing is what makes the resulting price actually clear that percentage of margin.
What it leaves out: sales tax, permit or disposal fees, trip/diagnostic charges (priced separately as a service call fee), and company-wide fixed costs not allocated to this specific job.
Sources
| Basis | Last checked | Source |
|---|---|---|
| Core formula: (labor × loaded rate) + (parts × markup), divided by (1 − target margin) | Sep 21, 2026 | subcontractorhub.com/blog/hvac-flat-rate-pricing-guide |
| Overhead-per-billable-hour methodology and worked $50/hr example | Sep 21, 2026 | relayfi.com/blog/hvac-flat-rate-pricing |
| Loaded labor rate range ($95-$200/hr) and gross-margin-by-job-type benchmarks (50-60% service, 35-45% replacement) | Sep 21, 2026 | subcontractorhub.com/blog/hvac-flat-rate-pricing-guide |
| Parts markup multiplier convention (2.5x-3.5x typical, wider at the small/large ends) | Sep 21, 2026 | build-folio.com/contractor-guides/hvac-flat-rate-pricing-guide |
| Net profit margin target (15-25%) as distinct from per-job gross margin | Sep 21, 2026 | fieldcamp.ai/blog/detailed-hvac-pricing-guide |
| Warranty-parts pricing guidance (bill labor at full rate even when the part is free) | Sep 21, 2026 | fieldcamp.ai/hvac-software/pricing-guide |
Figures above are industry-typical ranges from published 2026 pricing guides, not a single vendor's claim. Your own loaded labor rate, overhead and parts costs will differ - use this calculator with your own numbers, not the illustrative defaults.
Frequently asked questions
What is a "loaded labor rate" and why isn't it just the technician's hourly wage?
The loaded labor rate is what an hour of technician time actually costs your business: base wage plus payroll taxes, workers' comp, benefits, vehicle cost, tools, and the overhead allocated to billable hours. A $28/hour wage commonly loads out to $95-$200/hour once all of that is included. Pricing off the wage alone is one of the most common reasons flat-rate books underprice work.
Is markup here a multiplier or a percentage?
This calculator uses markup as a multiplier: enter 3.0 to bill parts at three times their cost, not 300% added on top. Most HVAC flat-rate books run 2.5x-3.5x on parts, with small common parts sometimes going to 4x-5x and large equipment or major components closer to 2x-2.5x.
Should I enter a gross margin or a net profit margin?
Enter your target gross margin - the margin on this specific job after labor, overhead allocation and parts, before company-wide fixed costs that don't scale per job. Most residential service and repair work targets roughly 50-60% gross margin, and replacement or install work targets roughly 35-45%. Net profit margin, which nets out those remaining fixed costs across the whole business, usually lands lower: commonly 15-25% for HVAC contractors. The two numbers answer different questions, and mixing them up is a common way price books end up underpriced.
Why do service and repair jobs use a higher margin than replacements?
Repair jobs use smaller parts, more of the price is labor and diagnostic skill, and customers are less price-sensitive in an emergency, so a 50-60% gross margin is standard. Replacements involve big-ticket equipment where a large dollar markup at the same percentage would look inflated next to a visible equipment cost customers can shop around, so shops typically settle for 35-45% gross margin on the larger job instead.
What if I don't know my overhead allocation per hour yet?
Take your total monthly overhead (rent, trucks, fuel, insurance, software, office salaries, marketing) and divide by the total billable hours your team actually produces in a month, not the hours they're paid for. A shop with $40,000 in monthly overhead and 800 billable hours across the team is carrying $50 of overhead in every billable hour. If you haven't built that number yet, the technician billable rate calculator on this site walks through the same underlying math.
How often should I update the price book?
At least once a year, and sooner if wages, a major parts supplier's pricing, or your insurance and vehicle costs move meaningfully. A price book built on last year's loaded labor rate quietly erodes margin every month it goes unreviewed.
Does this calculator account for warranty parts or comebacks?
No - it prices a standard billable job. On warranty work, the part itself may arrive at no cost, but that doesn't mean the visit is free: bill the diagnostic and labor at your normal loaded rate and enter $0 for the parts cost here, rather than pricing the whole visit as if it cost nothing.