Capacity Planning for HVAC Businesses
Most shops use their scheduling system as a calendar. Capacity planning is what turns it into a model of what your team can genuinely deliver — and it is the difference between a full July and a profitable one.
Capacity planning means deciding in advance how many slots of each job type exist on a given day, then letting the system enforce it so your call takers cannot book the wrong work at the wrong time.
Without it, peak days fill with low-margin diagnostics by mid-morning and the highest-value call of the week is told there is nothing available.
This is the operational side of stage three in how scheduling software works. Here we cover how to actually set it up.
Calculating your real daily capacity
Start with the arithmetic, because most shops overestimate by 20 to 30%.
Take one technician’s working day — say eight hours, or 480 minutes. Then subtract what is not billable:
| Item | Typical | Running total |
|---|---|---|
| Working day | 480 min | 480 |
| Morning prep, truck stock, first drive | −35 min | 445 |
| Lunch and breaks | −45 min | 400 |
| Drive time between stops (4 stops) | −80 min | 320 |
| Paperwork, parts runs, admin | −30 min | 290 |
| Available wrench time | 290 min |
That is roughly 60% of the paid day, which is a normal figure for residential service. Now divide by your actual average job duration — not the vendor’s default. At 70 minutes per job, one technician’s real capacity is four jobs a day, not the six or seven a naive calculation suggests.
Two shops with nine technicians each have very different capacity if one covers a 12-mile radius and the other covers 40 miles.
In the example above, drive time consumed 80 of the 480 minutes. Widen the territory and that becomes 140 minutes — which removes a whole job from every technician’s day, every day. That is nine jobs a day of lost capacity across the team, with no change in headcount or payroll.
Deciding your job type mix
Once you know total capacity, you decide how to divide it. This is the actual planning decision, and it should be made on margin, not on demand.
Four categories cover most residential shops:
Diagnostics and service calls. Your volume work. Reliable, moderate margin, and the easiest to fill a day with — which is exactly why it will consume everything if you let it.
Maintenance visits. Predictable, schedulable weeks ahead, lower ticket but strategically valuable because agreement holders convert into replacement customers.
Sales and replacement calls. Low volume, highest value. A single replacement can be worth twenty diagnostics in gross margin. These need protected slots or they never happen.
Emergency and reserve. Held back deliberately. The no-heat call at 3pm in January has to go somewhere, and if your day is 100% committed, it goes to a competitor.
The mix changes by season
This is where most implementations stop short. A single fixed mix does not survive a year in HVAC, because demand and opportunity swing hard.
Read the summer and winter bars carefully. Diagnostics dominate, as they must — but the amber band does not disappear. Protecting even 10% for sales calls during peak season is the single most profitable capacity decision a shop makes, because peak season is exactly when failing equipment gets replaced rather than repaired.
How reserved slots actually work
The mechanic is simple. You configure the system so that a given time slot is only offered for certain job types.
A slot reserved for sales calls does not appear to a CSR booking a diagnostic. It appears only when they select a replacement estimate as the job type. If nobody books it by a cutoff you set — say 4pm the previous day — it releases into general availability so it does not go to waste.
This is the part that makes capacity planning work in practice: the call taker does not have to understand your margin priorities or remember your seasonal strategy. They ask what the customer needs, select the job type, and the system shows only what is genuinely available for that kind of work.
Configured correctly, online booking draws from the same rules. A homeowner requesting a diagnostic on your website sees diagnostic slots. They cannot accidentally take a slot you were holding for a $12,000 replacement.
Handling overflow without breaking the plan
Three tools, in order of preference:
Tomorrow morning. The most underused option. A large share of calls that feel urgent to a CSR are not urgent to the customer. Offering a firm slot at 8am tomorrow is often better received than a vague “sometime this afternoon” that then slips.
Overtime slots. Configured as a distinct capacity block after normal hours, with their own count. Making them visible as a limited resource stops overtime becoming the default answer to every full day.
Priority displacement. An agreement holder with no cooling outranks a non-agreement diagnostic. Let the system apply that rule rather than a dispatcher deciding under pressure, and notify the displaced customer automatically.
Nobody overrides capacity rules without changing the rule.
If a manager routinely squeezes in an eleventh job on a ten-job day, capacity planning has stopped existing — you are back to a calendar with extra steps. If the rule is genuinely too tight, change the rule. Do not work around it.
What breaks capacity planning
| Failure | Symptom | Fix |
|---|---|---|
| Wrong job durations | The board says the day is full and technicians finish at 3pm — or says there is room and they finish at 7pm | Measure actuals by job type for 60–90 days, then correct |
| Drive time ignored | Capacity looks right on paper, days run long consistently | Include travel in the capacity calculation, not as an afterthought |
| Routine overrides | Rules exist but everyone squeezes past them | Change the rule or enforce it. Both are fine; drift is not |
| Set once, never revisited | A summer mix still running in October | Diarise a quarterly review before each season turns |
A worked example
Six technicians, residential, mixed climate, average job 70 minutes.
Total capacity: 6 technicians × 290 minutes of wrench time = 1,740 minutes ÷ 70 = roughly 24 jobs a day.
July mix:
- Diagnostics: 14 slots (58%)
- Maintenance: 3 slots (13%)
- Sales calls: 3 slots (12%) — protected
- Reserve: 4 slots (17%) — released at 2pm if unused
What that produces on a hot Tuesday: the fourteen diagnostic slots are gone by 9:30am. The three sales slots are still there at 10:15 when a homeowner calls with a failed twenty-year-old system. That call gets a same-day appointment instead of being turned away, and it is worth more than the fourteen diagnostics combined.
October mix for the same shop: diagnostics down to 8, maintenance up to 7, sales calls up to 6, reserve down to 3. Same capacity, different business.
Frequently asked questions
What is the difference between capacity planning and scheduling?
How many jobs a day should one technician do?
Should I reserve slots for sales calls during peak season?
How often should I change my capacity mix?
What if my capacity rules keep getting overridden?
Does capacity planning work without good duration data?
What to do next
- Calculate one technician’s real wrench time using the table above, with your own drive times. Then multiply by headcount.
- Pull your actual average duration by job type from the last 90 days. If you cannot, that is the first thing to fix.
- Set your current-season mix in four categories, and protect a sales-call allocation even if it feels expensive.
- Diarise the next three seasonal reviews now, before you forget.
- How HVAC scheduling software works — where capacity sits in the nine stages
- Operations — durations, dispatch and peak season
- What HVAC software costs — what capacity features are worth paying for
The capacity figures and mix proportions in this guide are illustrative examples based on operational practices documented across industry sources, not measurements from a specific business. Your own numbers will differ. Calculate from your own duration and drive-time data before configuring anything.