HVAC Flat-Rate vs Time & Materials, Markup vs Margin (2026)
Most pricing problems in an HVAC shop aren't about being "too cheap" or "too expensive." They come from three quiet mistakes: mixing up markup and margin, building a rate from a tech's wage instead of what that tech really costs you, and dividing costs by paid hours instead of billable hours. This guide walks through each one with plain math you can check on a napkin, then covers when flat-rate beats time and materials (and when it doesn't).
All worked examples below use made-up round numbers to show the math. Swap in your own.
Flat-rate vs time and materials: the real tradeoffs
Time and materials (T&M) means the customer pays for hours on the clock plus parts. Flat-rate means the customer gets one price for the task before work starts, no matter how long it takes.
What flat-rate does well:
- The customer knows the price up front. No watching the clock, fewer invoice arguments.
- Speed helps you, not the customer. On T&M, a tech who fixes it in 40 minutes bills less than a slower tech who takes two hours. On flat-rate, the fast tech's saved time is yours to use on the next call.
- Pricing is consistent. Every tech quotes the same price for the same task.
What flat-rate costs you:
- You carry the risk. If a job runs long, you eat the time. Your task times have to be based on your real average jobs, not your best ones.
- It takes upkeep. A price book built on last year's part costs and wages quietly loses money.
- It's a bad fit for unknown scope. Old ductwork, hidden damage, and some commercial work can swing too widely for a single up-front price.
Where T&M still makes sense: truly open-ended work where nobody can see the scope yet. A common middle path is flat-rate for repeatable service tasks, and T&M (or a written "not to exceed" amount) for the open-ended stuff.
On profit, ACCA's Contractor of the Future study (1,000+ contractors) found that shops using flat-rate for service calls reported 7% average net profit vs 4% for other methods. Source: ACCA HVAC Blog, "Inside the Contractor of the Future Study: Key Findings from 1,000+ Contractors"
Markup vs margin: the mistake that eats your profit
These two numbers get used like they mean the same thing. They don't.
- Markup is profit as a percent of cost: (price - cost) / cost.
- Margin is profit as a percent of price: (price - cost) / price.
Worked example: a part costs you $100.
- Add a 50% markup and you sell it for $150. Your profit is $50, which is only a 33.3% margin ($50 / $150).
- If you actually want a 50% margin, the price is $100 / (1 - 0.50) = $200. That's a 100% markup.
If you think "50% markup" means you keep half of every dollar, you are pricing about a third below where you meant to be.
The conversion formulas:
- Margin = markup / (1 + markup)
- Markup = margin / (1 - margin)
- Price for a target margin = cost / (1 - target margin)
Quick reference:
| Markup on cost | Gross margin on price |
|---|---|
| 25% | 20.0% |
| 33.3% | 25.0% |
| 50% | 33.3% |
| 66.7% | 40.0% |
| 100% | 50.0% |
| 150% | 60.0% |
| 200% | 66.7% |
| 300% | 75.0% |
What a tech really costs you: loaded labor cost
A tech's hourly wage is not what that hour costs you. On top of wages you pay payroll taxes, workers' comp, insurance, paid time off, retirement, bonuses, and more.
Government data gives you a sense of scale. The Bureau of Labor Statistics' Employer Costs for Employee Compensation survey for June 2026 puts private-industry installation, maintenance, and repair workers at $49.01 per hour in total employer cost: $33.61 in wages and salaries and $15.41 in benefits. Benefits were 31.4% of total compensation. Put another way, on average employers paid about 46 cents in benefits for every $1 of wages ($15.41 / $33.61). Source: BLS, Employer Costs for Employee Compensation, Table 4, "Private industry workers by occupational and industry group" (June 2026)
That's a broad average across many trades, not an HVAC-specific number. Your own burden depends on your state's workers' comp rates, your health plan, and your PTO. Pull the real numbers from your payroll and insurance bills.
Building a price from loaded labor cost, step by step
Here's the full chain, using example numbers only.
Step 1: Loaded cost per paid hour. A tech earns $30/hour. Say your wage burden (taxes, comp, insurance, PTO, etc.) comes to 45%. Loaded cost = $30 x 1.45 = $43.50 per paid hour.
Step 2: Loaded cost per billable hour. You pay for 40 hours a week, but not all 40 are billed. Drive time, shop time, training, and callbacks eat into it. Say 25 of 40 hours are billable. Labor cost per billable hour = $43.50 x 40 / 25 = $69.60.
This is the step most owners skip, and it's the biggest one. Dividing by paid hours instead of billable hours would have made that hour look like it costs $43.50.
Step 3: Overhead per billable hour. Add up everything that isn't field labor or parts for the year: rent, trucks, fuel, office staff, insurance, software, marketing, the owner's salary. Say that's $390,000, and you have 5 techs each billing about 1,300 hours a year (6,500 billable hours total). Overhead per billable hour = $390,000 / 6,500 = $60.00.
Step 4: Break-even per billable hour. $69.60 + $60.00 = $129.60. Charge less than this for an hour of work and you lose money on it, before any profit.
Step 5: Add your profit target as a margin, not a markup. Say you want 15% net profit. Price per billable hour = $129.60 / (1 - 0.15) = $152.47. (Using a 15% markup instead would give $149.04, and your real margin would only be about 13%.)
Our free HVAC break-even hourly rate calculator runs Steps 1 through 4 with your own numbers.
Step 6: Turn the hourly rate into a flat-rate task price. Take your average time for the task from your own past tickets (including typical diagnosis and setup), multiply by your hourly rate, then add parts priced at your target parts margin.
Example: a task that takes you 0.75 hours on average, with a $18 part priced at a 50% margin:
- Labor: 0.75 x $152.47 = $114.35
- Part: $18 / (1 - 0.50) = $36.00
- Task price: $150.35. Round up, not down.
Our free HVAC flat-rate price calculator does this step for any task in your price book.
Common pricing mistakes
- Saying "markup" when you mean "margin." A 50% markup is only a 33% margin. See the table above.
- Pricing from the wage, not the loaded cost. Taxes, comp, insurance, and PTO are real costs of every hour.
- Dividing by paid hours instead of billable hours. This alone can make an hour look much cheaper than it really is.
- Copying a competitor's price book. Their overhead, pay, and billable hours aren't yours. Their price may be losing them money too.
- Setting task times from your best jobs. Use your average, including drive-up, setup, and the jobs that fight you.
- Never re-pricing. When part costs or wages go up and your price book doesn't, your margin shrinks without you noticing. Pick a set time to review it, at least once a year.
- Discounting without doing the math. On a $200 job with $100 of cost, a 10% discount ($20) drops your gross profit from $100 to $80. That's a 20% cut in profit, not 10%.
- Forgetting callbacks and warranty work. Free return trips are a cost. Build a small allowance into your rate, or they come straight out of profit.
Check your rate against real shops
The worked examples use placeholder rates. The anonymous Owner Numbers survey shows how your own average ticket compares with other shops.