
Guides
How much to charge for HVAC contractor work
How to price HVAC contractor services using margin arithmetic in named variables: markup against margin, contribution per crew day, and the discount test.
What to take away
- Markup and margin are different numbers and confusing them is the most common arithmetic error in this trade.
- A fair margin is not a percentage somebody publishes. It is the one that covers overhead per crew day and pays for the risk you carried.
- Rank work by contribution per crew day, not by the size of the invoice. The biggest job on the schedule is often not the one paying for the month.
- Every discount comes out of gross profit alone, so the extra volume needed to stand still is larger than it feels at the door.
- Do the arithmetic once in variables, then feed it with your own reconciled jobs.
The two ratios, and why they are confused
Take one job. Call the price P and the direct cost of doing it C. Direct cost is everything that exists only because this job exists: equipment and materials, burdened field labor for the hours consumed, disposal, permit fees, refrigerant handling, and the trip.
Margin vs. Markup
Margin
- Formula
- G ÷ P
- Meaning
- Share of price
- Size
- Smaller
- Example
- 25% of price
Markup
- Formula
- G ÷ C
- Meaning
- Share of cost
- Size
- Always larger
- Example
- 33% of cost
Gross profit is G = P minus C.
Two ratios can be built from those three numbers, and they are not the same:
The two ratios
- Margin = G divided by P.
- Gross profit as a share of what the customer pays.
- Markup = G divided by C.
- Gross profit as a share of what the job cost you.
Markup is always the larger of the two. A markup of one third over cost produces a margin of one quarter of the selling price. Firms that set a markup and then talk about it as a margin are quietly running thinner than they think, and the gap widens as the number rises.
Write down which one your price list uses and put it in the same place as the price list, so nobody has to guess.
Convert between them once, on paper. A margin of 25% of price is a markup of 33% on cost. A margin of 40% is a markup of 67%. No published figure tells you which of the two your business needs, because the answer depends on your overhead per crew day and the profit you want to keep.
Turning margin into a decision
A ratio on its own decides nothing. The number that decides is contribution against the constraint, and in this trade the constraint is a technician and a truck for a day.
Take the Job?
Does contribution per crew day exceed overhead O?
Take the job
Job only keeps lights on
Let D be the crew days a job consumes, including travel, setup, the inspection visit and any return. Then:
Contribution per crew day = G divided by D
Now compare unlike jobs honestly. Call the overhead the business must recover for each crew day it puts on the road O: rent, office labor, software, insurance, licensing, vehicles standing still, advertising that runs whether or not the phone rings, and the owner's draw.
A job is worth taking when its contribution per crew day exceeds O. A price is fair when it does that and also pays something for the risk pool the job carried. If a job clears O by nothing, you did the work for the privilege of keeping the lights on.
A named job makes the arithmetic concrete. Take a residential 3-ton split system change-out: one install day for a two-technician crew, plus one return day with a single technician for commissioning and inspection. Count the two-technician day as two crew days, so D = 3.
The amounts below are an illustration. Substitute your own costs before you use the price.
| Line | Amount |
|---|---|
| Equipment and materials | 4,200 |
| Burdened labor, 3 crew days | 2,700 |
| Permit | 180 |
| Disposal | 120 |
| Direct cost C | 7,200 |
| Overhead, 3 crew days at 450 | 1,350 |
| Target profit, 3 crew days at 200 | 600 |
| Price P | 9,150 |
Here G is 1,950, a margin of 21% of price and a markup of 27% on cost. Contribution per crew day is 1,950 divided by 3, or 650. That clears O of 450 by 200 a crew day, so the job pays for its overhead and leaves something for the risk it carried.
The 450 comes from dividing annual overhead by the crew days you sell in a year. At 270,000 of overhead and 600 crew days sold, O is 450. The 200 is what you decide to keep.
Raise the target profit to 300 a crew day and P becomes 9,450, with a margin of 24%. The margin is the output of the build-up, not the starting point.
Three job families, one comparison
Run the same arithmetic across the work you actually sell and the ranking usually surprises people.
Three Job Families
Diagnostic
- Driver of D
- Travel, access
- Erodes G
- Unbilled diagnosis
- Largest P
- No
- Largest G/D
- Often
Repair
- Driver of D
- Parts, age
- Erodes G
- Flat rate mismatch
- Largest P
- No
- Largest G/D
- Sometimes
Installed
- Driver of D
- Duct, electrical
- Erodes G
- Scope stops at equipment
- Largest P
- Yes
- Largest G/D
- Not always
Three job families
Typical driver of D
- Diagnostic and service call
- Travel and access, not the fault itself
- Repair on existing equipment
- Parts availability and equipment age
- Installed change-out or system
- Duct work, electrical, venting, inspection
What usually erodes G
- Diagnostic and service call
- Unbilled diagnosis, second visit for a part
- Repair on existing equipment
- Flat rate set from a familiar unit, applied to an unfamiliar one
- Installed change-out or system
- Scope that stopped at the equipment
The installed job has the largest P and often not the largest contribution per crew day. That is not an argument against installations. It is an argument for knowing which of them earn their days, which the reconciliation habit in the pricing and profit guide is built to reveal.
Wage and burden inputs
C is dominated by burdened labor, and the wage inside it is set by your local market rather than by a national figure. Occupational employment and wage estimates by area are published in the employment and wage tables from the Bureau of Labor Statistics. Use them to sanity check the wage assumption, then add everything that turns a wage into a burdened cost: payroll taxes, insurance, paid time off, training days, tools, the vehicle, and the hours in a week that no customer buys.
Burdened Labor Cost
- Local wage from BLS area tables
- Payroll taxes
- Insurance
- Paid time off
- Training days
- Tools and vehicle
- Unbilled hours in a week
What each role is qualified to do, and therefore whose hour a job consumes, is set out in the hiring and training guide. A helper hour and a licensed technician hour are not interchangeable in the arithmetic or on the job.
The discount test
A discount does not come out of the price evenly. It comes entirely out of G, which is the smaller number.
Discount Test
- Take planned discount
- Divide by job gross profit
- That fraction of profit is gone
- Same fraction of extra full-price work needed
- Must come on already-sold days
A simple test worth writing on a card for anyone who quotes: take the discount you plan to give and divide it by the gross profit that job would have made. That fraction of profit is gone.
To end the month where you would have been, the same fraction of extra work must appear. It must come at full price, on days you have already sold.
The test in dollars: on a job priced at 1,000 with 250 of gross profit, a 10% discount removes 100, which is 40% of the profit. Rebuilding that 100 at full price takes 400 of extra work, because a full-price job keeps only 25 cents on the dollar.
Run it once with real figures from a job you closed last month. Most owners stop discounting at the door after that, and start negotiating scope instead, which costs nothing and is honest.
What the arithmetic does not settle
It does not tell you what to advertise. Any published price is a claim.
The Federal Trade Commission guidance on advertising for small businesses sets the standard: support must exist before the claim is made.
Publish ranges where the work genuinely varies, say what moves them, and keep the conditions in the same block of text as the offer.
Which instruments and which stocked parts turn into C on a given call is a stocking decision made in the equipment checklist for new owners. What a fitted-out vehicle has to carry before it can be dispatched at all is described in the equipment and setup guide.
The permit and inspection hours that land in D come from the registration layers set out in the licensing and compliance guide.
Keep the inputs where you can find them again. The standard for records that clearly show income and expenses is described in the IRS recordkeeping guidance for small businesses, and job costing only works if the job records are kept to the same standard as the financial ones.
When to recompute overhead and labor cost
Recompute O and your burdened labor cost twice a year, and immediately after a change in wages, insurance, vehicle costs or territory. Because every price descends from the same two inputs, one rebuild updates the whole book.
Rebuild Schedule
- Twice a yearRecompute O and burdened labor
- After wage changeRebuild immediately
- After insurance changeRebuild immediately
- After vehicle cost changeRebuild immediately
- After territory changeRebuild immediately
- Between rebuildsWatch quoted vs actual D
Between rebuilds, watch one thing: the gap between quoted D and actual D. It moves before anything in the accounts does, and it moves first on the jobs you have started underestimating.
Common questions
Is there a margin that is normal for HVAC work?
Published averages exist and none of them know your overhead, your unbillable hours or your service mix. The arithmetic above gives you the number that is right for your business, which is worth more than an average about somebody else's.
Should materials carry the same markup as labor?
They do not have to, and many firms treat them differently. What matters is that the policy is written down, applied the same way in every quote, and reflected in how you handle customer-supplied equipment.
How do I price a job where I cannot see what is behind the wall?
Name the unknown, price the part you can see, and attach a written allowance with an entry condition for the part you cannot. An allowance a customer agreed to in advance is a conversation. A change order invented on site is an argument.
What if my derived price is above every competitor?
Check the scope before the number. Firms that include duct modification, permits and commissioning look expensive on a total and reasonable on a comparison, and the fix for that is a clearer document rather than a smaller number.







