Lesson 7 of 7 · The Profitable HVAC Shop
Which Jobs Are Worth Doing
Compare job types using contribution and callbacks so your schedule favors work that strengthens the company.
- Free
- No signup
- Work at your pace
| Who it is for | Owners, Stage 2–4 (three to ten technicians) |
|---|---|
| Time | 15 minutes to read, then one hour a month, forever |
| You will need | Twenty recent completed jobs with price, direct cost, and hours |
| Tool | HVAC Job Profit Calculator |
The painful truth
Some HVAC shops carry job types that would be better repriced, redesigned, or refused, but ticket size alone does not reveal which ones.
You have a strong opinion about which jobs make you money. That opinion was formed by which jobs felt good, which customers were pleasant, and which invoices were large. None of those correlate reliably with profit.
Why this happens
Profit is measured at the company level once a year, and decisions are made at the job level every single day. Nothing connects the two. So owners judge jobs by ticket size, because ticket size is the only job-level number anyone actually sees.
The trouble is that ticket size ignores the two things that matter most: what the job cost, and how many hours of your only genuinely scarce resource it consumed.
The core idea: rank by profit per billable hour, not by margin
Costing a job takes three numbers you already have from earlier lessons.
- Direct cost: parts and equipment for that job, plus billable hours × your loaded labor cost per billable hour ($56.97 at Ridgeline)
- Allocated overhead: billable hours × overhead per billable hour ($38.57 at Ridgeline)
- Profit: price minus both
Then divide the profit by the hours the job consumed. When the schedule is full, technician hours are the constraint, so rank competing work by return per hour. Ridgeline is not constrained all year: Lesson 4 found 145 unfilled hours per technician. Use profit per hour to choose among competing jobs in season. When paid hours would otherwise sit empty, work that clears its incremental direct cost may still be worth taking. Know which condition you are in before refusing work.
Worked example: three jobs at Ridgeline
Fictional company, illustrative figures. Loaded labor is $56.97 per billable hour and overhead is $38.57. These three jobs are a deliberately contrasting sample, not Ridgeline’s annual job mix. Their flat customer prices are not decomposed into labor revenue at the blended $95 rate used in Lesson 5.
| A · Maintenance visit | B · Emergency no-cool repair | C · System replacement | |
|---|---|---|---|
| Price | $189.00 | $685.00 | $9,400.00 |
| Billable hours | 1.2 | 3.5 | 22.0 |
| Parts and equipment | $22.00 | $180.00 | $5,600.00 |
| Labor cost | $68.36 | $199.40 | $1,253.34 |
| Allocated overhead | $46.28 | $135.00 | $848.54 |
| Profit | $52.36 | $170.60 | $1,698.12 |
| Margin | 27.7% | 24.9% | 18.1% |
| Profit per billable hour | $43.63 | $48.74 | $77.19 |
Read the last two rows together. The replacement has the worst margin of the three and produces the most profit per hour, nearly twice the maintenance visit. If Dale ranked his work by margin percentage, he would reach the exact wrong conclusion about where his technicians’ time should go.
This is not an argument that maintenance is bad work. Maintenance fills shoulder season, produces the replacement leads that generate the $77 an hour, and keeps customers from calling someone else in July. It is an argument that margin percentage is the wrong ruler, and that a job’s value includes what it leads to.
The callback nobody costs
Two weeks later, Job B comes back. The repair did not hold. A technician spends 2.5 hours and Ridgeline charges nothing, because that is the right thing to do.
| Labor cost of the return visit | 2.5 × $56.97 = $142.43 |
|---|---|
| Overhead consumed | 2.5 × $38.57 = $96.43 |
| Total cost of the callback | $238.86 |
| Original job profit | $170.60 |
| Net result on Job B | −$68.26 |
Full-cost view, for pricing and quality reserves: the 2.5-hour callback consumes $238.86 of allocated labor and overhead. Against the original $170.60 job profit, Job B finishes at negative $68.26.
Opportunity-cost view, for scheduling: if comparable work is waiting, those same 2.5 hours could have produced about $48.74 per hour of profit, or $121.85. These are two views of the same hours. Do not add them together.
A callback rate you do not measure is a profit leak you cannot see. It is also the strongest argument for the unglamorous things: proper diagnosis, decent documentation, and not rushing technicians to improve a utilization number.
Two more jobs that look fine and are not
The long-drive job. A $420 repair ninety minutes each way. Three hours of unbillable drive time at $95.54 of combined labor and overhead is $286.62 of cost that the invoice never mentions. Your service area boundary is a profitability decision.
The free estimate. Ninety minutes all in, including travel and follow-up, costs roughly $143 in loaded time. If you close 40% of them, every job you win carries about $358 of estimating cost. That does not mean stop giving estimates. It means know the number, qualify the appointment before you drive to it, and understand that your close rate is a cost driver and not merely a sales statistic.
How to do this without a finance department
You do not need to cost every job. You need to cost enough of them, regularly, to see patterns.
- Once a month, pick twenty completed jobs across your job types, not only your favorites.
- For each, record four things: price, parts and equipment cost, billable hours, and job type.
- Run them through the HVAC Job Profit Calculator.
- Average profit per billable hour by job type. That average is the number worth acting on. Any single job is noise.
- Look at the bottom three. Ask one question: is this a pricing problem, a scope problem, an efficiency problem, or a work-we-should-not-take problem? Each has a different fix.
An hour a month. That is the whole system. The shops that do this are not more sophisticated than the ones that do not; they just do it.
What to do with what you find
- Consistently unprofitable job type? Reprice it before you refuse it. Most unprofitable work is mispriced rather than genuinely worthless.
- Profitable but slow? Look at duration assumptions, van stock, and whether the right technician is being sent.
- Profitable on paper, poor after callbacks? This is a training or diagnosis problem, not a pricing one, and raising the price will not fix it.
- Great profit per hour but rare? That is a marketing and sales question. Where do those jobs come from, and can you get more?
- A customer segment that is always thin? Home warranty work, certain property managers, and some commercial accounts can carry low margins and high administrative cost. Price it accordingly or decline it deliberately, but decide, rather than drifting.
Common mistakes
- Judging jobs by ticket size. The largest invoice is often not the best use of a day.
- Ranking by margin percentage when hours are the constraint. See the table above.
- Leaving overhead out of job costing. A job that “made money” before overhead may have lost it after.
- Ignoring unbillable time attached to the job. Drive, parts runs, callbacks, and the estimate that won it are all part of the job’s real cost.
- Costing one bad job and rewriting the price book. Use averages by type across at least twenty jobs.
- Firing a customer segment before repricing it. Give the price a chance to solve it first.
- Using this to rank technicians. Job profitability measures jobs. Dispatch decides who gets the profitable ones.
Do this now
- Pull twenty completed jobs from the last sixty days across a mix of types.
- Record price, parts cost, billable hours, and job type for each.
- Run them through the HVAC Job Profit Calculator.
- Rank them by profit per billable hour, then average by job type.
- Write down your best and worst job types and one specific action for each.
- Count callbacks in the last ninety days and multiply by your combined hourly cost. That is your callback bill.
- Put a recurring one-hour appointment in your calendar for the same day each month. Treat it as the hour when you find out what actually happened.
Check yourself
- Job A has a 35% margin and takes six hours. Job B has a 22% margin and takes ninety minutes. Which is the better use of a technician, and what would you need to know to be sure?
- Why does allocating overhead to jobs change which work looks worth doing?
- What are the full-cost and opportunity-cost views of a callback, and why should they not be added together?
- You close 30% of estimates and each estimate consumes two hours. What does estimating cost you per won job at your combined hourly cost?
- Your worst job type by profit per hour is also your best source of replacement leads. What should you do, and what would you measure to check you were right?
Check your answers
- You cannot decide from margin and duration alone. Calculate profit dollars after direct cost and the chosen overhead allocation, then divide by hours. Also consider callbacks, season, and downstream value such as replacement leads.
- It reveals whether a job contributes enough toward the company’s fixed structure. Allocation does not create an incremental cash expense, but it prevents every job from looking profitable merely because overhead was ignored.
- Use either a full-cost view or an opportunity-cost view for the same callback hours. Full cost supports pricing and quality reserves; opportunity cost supports scheduling when work is waiting. Do not add the two views together.
- Each win carries 6.67 estimating hours. Two hours ÷ 30% close rate equals 6.67 hours, so multiply your combined hourly cost by 6.67.
- Do not automatically eliminate it. Reprice or control delivery first, then measure the downstream replacement gross profit, conversion rate, callback rate, and total profit per originating job.
Your tool
The HVAC Job Profit Calculator returns profit, margin, and markup after direct costs and allocated overhead. Free, no signup, nothing stored.
The one thing that makes this stick
Everything in this lesson depends on being able to answer, for a job you finished three weeks ago: what did we charge, what did the parts cost, and how many hours were we there? If that information lives in a technician’s text messages and a stack of paper tickets, this exercise takes a full day and you will do it once.
If each job has one consistent record containing price, parts, hours, notes, and photos, the exercise takes about an hour and is far easier to repeat. That is the entire difference.
Paper works. A spreadsheet works. The HVAC Work Order Template is free and covers the four fields you need. And if you are a one or two-technician shop that would rather not keep paper, ClimaCall’s free plan covers up to 3 users and 20 work orders a month with no card and no expiration. That is enough to run this properly at that size. Above two technicians you will pass 20 work orders quickly, and although processing payments for 5 work orders through ClimaCall Payments raises that cycle to 50, treat the free plan as a way to try the workflow rather than as a permanent home.
Key takeaway
Rank work by profit per billable hour, not by ticket size or margin percentage, because hours are the thing you actually run out of. Cost twenty jobs a month, average by job type, and reprice before you refuse.
You have finished the course
You should now have seven numbers written down: gross margin and net profit, monthly overhead, loaded technician cost, real billable hours, a break-even and target labor rate, a written discount rule, and profit per hour by job type. Put them on the free seven-number worksheet so you have one control sheet to revisit.
That is more financial visibility than most HVAC companies of any size operate with. Two suggestions for keeping it:
- Monthly, one hour: cost twenty jobs, review discounts given, check gross profit per billable hour.
- Quarterly, two hours: re-run overhead and loaded labor cost, and check whether your labor rate still holds.
Then go back to Lesson 1 and redo it with real numbers instead of estimates. It reads differently the second time.
Back to the HVAC Owner Academy →
Sources and assumptions
All job figures, hours, prices, costs, close rates and callback assumptions are illustrative and created for this lesson. They are not survey data, industry averages, or benchmarks. The costing method shown (direct cost plus allocated overhead, ranked by profit per unit of the constrained resource) follows standard managerial accounting practice; how overhead should be allocated in your specific books is a question for your accountant.
Product statement: ClimaCall’s free plan is described as up to 3 users and 20 work orders per month, rising to 50 work orders in a cycle when payments for 5 work orders are processed through ClimaCall Payments, with no credit card required, per ClimaCall pricing. Confirm current terms before relying on them.
Disclaimer
Educational content only. Not accounting, tax, legal, or financial advice.
Editorial status
Published by ClimaCall. Independent technical review is pending. No outside reviewer is attributed to this lesson.