Why these six KPIs — and not the other twenty
Every HVAC business owner tracks something. Revenue, job counts, maybe a Google review score. But the operators who consistently hit top-quartile EBITDA margins — the ones who sell at 6x–8x instead of 3x–4x — are watching a tighter set of numbers with more frequency and more precision.
There are dozens of operational KPIs you could measure in an HVAC business. We've narrowed this benchmarks guide to the six that have the highest correlation with EBITDA margin and the highest leakage when they're off. These aren't vanity metrics. Each one is a lever. Pull it wrong and margin disappears. Pull it right and your EBITDA compounds quarter over quarter.
The data in this guide comes from HVAC operators across the Sun Belt, Southeast, and Midwest — businesses ranging from $2M to $35M in annual revenue, covering residential and light commercial service, repair, and maintenance agreement work. Roll-up portfolio operators will find the PE section at the bottom useful for understanding how these numbers look across multiple entities.
A note on data vintage: 2026 benchmark ranges reflect post-pandemic labor normalization. The technician scarcity of 2021–2023 artificially inflated revenue-per-tech figures. The ranges below represent what well-run operators are hitting today, not peak-cycle outliers.
KPI 1 — Revenue per technician per day
Revenue per tech per day (RPTD) is the single most important productivity metric in a service business. It collapses dispatch efficiency, technician skill, ticket value, and job routing into one number that moves when any of the underlying variables move.
The formula is simple: total service revenue divided by total technician days worked. "Days worked" means days where the tech ran at least one job — not days on the calendar. A tech who runs one $90 inspection and goes home is a very different picture from a tech who runs six jobs averaging $280.
2026 benchmark ranges — RPTD
| Percentile | RPTD Range | What this looks like |
|---|---|---|
| Top quartile (P75+) | $1,600 – $2,200 | 3–5 jobs/day, avg $380–$500/job; maintenance agreements layered in |
| Median (P50) | $1,100 – $1,500 | 3–4 jobs/day, avg $280–$380/job; mix of service and repair |
| Bottom quartile (P25) | $650 – $1,050 | 2–3 jobs/day, avg $200–$340/job; high drive time, poor routing |
What separates P75 from P50 on RPTD isn't technician quality — it's dispatch quality. The biggest lever on this number is job routing and schedule density. Operators in the top quartile run tighter geographic clustering, fill maintenance agreement visits between service calls, and have dispatchers who actively manage the board throughout the day rather than setting it at 7am and leaving it.
A secondary lever: maintenance agreement penetration. A tech running a 9am MA visit followed by a $600 repair call followed by an afternoon MA visit will hit $1,800+ most days. A tech running pure inbound service calls is at the mercy of ticket size variance and drive time.
If your RPTD is below $1,100, the first diagnostic question is: what percentage of each tech's day is spent driving versus working? If drive time exceeds 35% of the day, routing is the problem before anything else.
Seasonal adjustment: RPTD will be 20–35% higher in peak cooling season (June–August) and 15–25% lower in the swing seasons (April–May, September–October). Benchmark against your trailing 12-month average, not a single month.
KPI 2 — First-call resolution rate
First-call resolution (FCR) measures what percentage of service calls are resolved completely on the first visit — no return trip required for the same issue. A job where the tech diagnoses the problem, has the part on the truck, completes the repair, and collects payment counts as FCR. A job where the tech has to order a part and return counts as a failure.
FCR has a direct EBITDA impact on two sides simultaneously. On the revenue side, a return trip for a part run is usually not fully billable — you've dispatched a technician twice for the economics of one job. On the cost side, every return trip burns fuel, takes a tech off the board for 45–90 minutes, and delays other billable work.
2026 benchmark ranges — first-call resolution
| Percentile | FCR Rate | Primary driver |
|---|---|---|
| Top quartile (P75+) | 85% – 91% | Stocked trucks by call type; dispatcher pre-screens job type before routing |
| Median (P50) | 72% – 84% | Standard truck stock; occasional part runs; some diagnosis-only visits |
| Bottom quartile (P25) | 55% – 71% | Ad hoc truck stocking; frequent part runs; no pre-call screening |
The three most common root causes of low FCR rates in HVAC businesses are: (1) trucks stocked for average jobs rather than the actual call mix, (2) no pre-call tech-to-customer phone screen to understand the symptom before dispatch, and (3) technicians who haven't been trained to complete the repair in-visit when they have the part.
The fix for cause (1) is a 90-day look at your part consumption data by call type — what parts are tech's actually returning for? Stock those. This reduces part runs by 30–40% in most operations. For cause (2), a 90-second pre-call by the dispatcher or a CSR asking the right four questions (equipment age, symptom, last service, any visible error codes) will let you route the right tech with the right van. Cause (3) is a training and incentive problem — the tech needs to know that completing the job in one visit is expected, not optional.
KPI 3 — Callback rate
A callback is a return visit for the same problem within 30 days of the original service call. Callbacks are the most expensive jobs in an HVAC business because they generate zero revenue and full cost — two technician dispatches, fuel, overhead — plus they're a direct customer satisfaction signal. High callback rates destroy review scores, which destroy the inbound funnel.
The industry average callback rate for residential HVAC service is around 7–9%. That's a number that should make operators uncomfortable. A business running $5M in revenue with a 9% callback rate is dispatching approximately 450–600 fully-unbillable callbacks per year. At $85 in fully-loaded dispatch cost per visit, that's $38,000–$51,000 in direct cost drag before you count the customer churn from dissatisfied repeat calls.
2026 benchmark ranges — callback rate
| Percentile | Callback Rate | Revenue impact at $5M business |
|---|---|---|
| Top quartile (P75+) | < 3.5% | ~$21K–$29K in avoided dispatch cost |
| Median (P50) | 4% – 6.5% | Baseline — industry middle |
| Bottom quartile (P25) | 7% – 12%+ | ~$50K–$85K in excess dispatch cost annually |
The most effective callback reduction program we've seen in the field combines three elements: a mandatory 72-hour follow-up call on every completed repair (catches issues before the customer gets frustrated enough to call back angry), a per-technician callback scorecard reviewed monthly, and a root-cause analysis on every callback that identifies whether the issue was diagnostic, parts, or workmanship.
Don't let techs classify their own callbacks. Self-reported callback rates are systematically low by 2–4 percentage points because techs attribute return visits to "new issues" rather than the original problem. Match job addresses within 30 days in your FSM data to get the real number.
The PE angle: Callback rate variance across portcos is one of the fastest diagnostic signals when evaluating operational consistency. A platform with three portcos at 3.5%, 4.2%, and 8.9% callback rates isn't an operational platform — it's three separate businesses that happen to share a holding company. The 8.9% portco has a management or training problem that can be fixed within 60 days with the right playbook applied.
KPI 4 — Technician utilization rate
Technician utilization is the ratio of billable hours to available hours. If a tech works an 8-hour shift and 5.5 of those hours are spent on billable customer time (driving to job site, on-site diagnosis and repair, travel to parts house when needed), the utilization rate is 68.75%. Drive-time-only travel is typically counted as billable; administrative time (morning meetings, shop time, vehicle maintenance) is not.
Utilization rate is the denominator problem in labor cost math. Every hour of available tech time that isn't billable is a fixed cost without a matching revenue dollar. A 10-tech operation losing 1.5 hours per tech per day to non-billable time is losing 15 tech-hours daily — at $45/hr fully-loaded labor cost, that's $675/day or $175,000/year in unrecovered overhead.
2026 benchmark ranges — technician utilization
| Percentile | Utilization Rate | Notes |
|---|---|---|
| Top quartile (P75+) | 70% – 78% | Dense scheduling, MA visits fill gaps, tight geographic routing |
| Median (P50) | 58% – 69% | Standard scheduling; some dead time between jobs |
| Bottom quartile (P25) | 42% – 57% | Reactive scheduling, wide service territory, poor job density |
The ceiling on utilization in HVAC service is around 78–82%. Above that, you're cutting into the buffer time that absorbs job overruns, and your customer satisfaction scores will suffer as techs rush. The goal is consistent performance in the 70–75% range, not single-day heroics at 85%.
The primary driver of low utilization in service operations is geographic sprawl — technicians covering too large a territory relative to job density. The diagnostic is simple: pull average drive time between consecutive jobs from your FSM. If techs are averaging more than 22 minutes of drive time between jobs, your territory coverage exceeds your call density. Either hire more techs in the territory or contract the coverage area.
KPI 5 — Average ticket value
Average ticket value (ATV) is total revenue divided by completed jobs. For service-heavy operations (diagnostics, repair, maintenance), median ATV in 2026 runs $280–$360. For replacement-heavy operations (equipment installs), ATV can reach $4,000–$8,000 per job. The benchmarks below are for service-and-repair operations only — blending service and replacement ATV into a single number obscures the signal.
Average ticket is a training metric as much as a pricing metric. The gap between a bottom-quartile and top-quartile HVAC tech on ATV isn't typically price-book variance — it's presentation quality, options offered, and service agreement conversion at the point of sale.
2026 benchmark ranges — average service ticket
| Percentile | Average Service Ticket | Key driver |
|---|---|---|
| Top quartile (P75+) | $390 – $520 | System inspections included in every repair; proactive part replacement recommendations |
| Median (P50) | $280 – $385 | Standard flat-rate pricing; minimal upsell |
| Bottom quartile (P25) | $160 – $275 | Time-and-materials or low flat rates; no system inspection protocol |
The single highest-ROI intervention for average ticket is a mandatory system inspection protocol on every service call. A tech who completes a repair and then runs a 10-point system inspection — checking capacitor health, refrigerant levels, drain line, blower motor amps, heat exchanger condition — will find legitimate additional work on 30–45% of calls. Presented correctly, this is a value-add for the customer, not a pressure sell.
The second highest-ROI intervention is maintenance agreement conversion at the point of service. A tech who converts 20% of one-time service customers to annual maintenance agreements is building recurring revenue and guaranteeing their own schedule density for the next 12 months. Most HVAC operators leave this entirely to chance — the tech mentions it if they feel like it. Top operators have a scripted offer at the end of every visit and track per-tech MA conversion rates monthly.
Price book vs. training: Most operators think low ATV is a pricing problem. In our experience working with HVAC operators, it's 70% a training and presentation problem and 30% a price book problem. Fix the training first. If ATV still doesn't move after 60 days of consistent system inspection protocol, then look at the price book.
KPI 6 — Dispatcher throughput
Dispatcher throughput measures how many jobs a single dispatcher handles per day. This is a capacity and efficiency metric for the dispatch function itself — the person (or team) that matches incoming calls to available technicians, manages the schedule board, handles rescheduling, and coordinates on parts and access.
Dispatcher throughput matters because dispatcher headcount is overhead. Every dispatcher you're paying who isn't running at capacity is a fixed cost that isn't earning its keep. And every dispatcher who's over capacity is dropping balls — leading to missed appointments, poor technician routing, and degraded customer experience.
2026 benchmark ranges — dispatcher throughput
| Percentile | Jobs/Dispatcher/Day | Supporting conditions |
|---|---|---|
| Top quartile (P75+) | 18 – 26 jobs/day | FSM with drag-and-drop board, automated customer confirmations, pre-screened incoming calls |
| Median (P50) | 12 – 17 jobs/day | FSM with basic dispatch; some manual processes |
| Bottom quartile (P25) | 6 – 11 jobs/day | Manual board or whiteboard; high inbound call volume; no automation |
Dispatcher throughput above 20 jobs/day requires two supporting conditions: a modern FSM with a visual dispatch board (ServiceTitan, Housecall Pro, Jobber, or equivalent), and automated inbound call handling for standard booking and confirmation tasks. Without those, a dispatcher physically cannot process more than 12–14 jobs/day without quality degrading.
The implication for staffing math: if you're running 80 jobs/day and your dispatchers are each handling 14 jobs, you need 5.7 dispatchers. If you invest in the tooling to push that to 22 jobs/day, you need 3.6 dispatchers — saving 2 FTE at $45K/year each, or $90K in annual overhead reduction, directly to EBITDA.
Use the calculator below to run your own numbers.
Dispatcher throughput calculator
Enter your operation's numbers to see your current throughput, revenue-per-dispatcher impact, and staffing headroom.
Full benchmark table — all six KPIs
| KPI | Bottom quartile (P25) | Median (P50) | Top quartile (P75) | Unit |
|---|---|---|---|---|
| Revenue / tech / day | $650 – $1,050 | $1,100 – $1,500 | $1,600 – $2,200 | $/tech/day |
| First-call resolution | 55% – 71% | 72% – 84% | 85% – 91% | % of calls |
| Callback rate | 7% – 12%+ | 4% – 6.5% | < 3.5% | % within 30d |
| Technician utilization | 42% – 57% | 58% – 69% | 70% – 78% | % of available hrs |
| Average service ticket | $160 – $275 | $280 – $385 | $390 – $520 | $/completed job |
| Dispatcher throughput | 6 – 11 | 12 – 17 | 18 – 26 | jobs/dispatcher/day |
Moving the numbers: what top operators actually do
Reading a benchmark table is easy. Knowing which number to attack first — and in what order — is where the work is. Here's the sequencing that produces the fastest EBITDA movement for HVAC operators who are starting below median on multiple KPIs.
Step 1: Fix callback rate before anything else
Callback rate is the only metric on this list that has both a cost and a revenue dimension, and where improvement has an immediate, measurable cash impact. A 3-point improvement in callback rate (from 7% to 4%) at a $5M business drops approximately $25,000–$35,000 to EBITDA in year one. It's also the metric with the most actionable root cause — bad callbacks usually trace back to a small number of specific technicians or call types, and those are fixable with targeted training in 30–60 days.
Step 2: Improve dispatch throughput to reduce dispatcher headcount or headroom
If your dispatchers are at or below 14 jobs/day and you have FSM software, you have a process problem, not a headcount problem. Work through the scheduling workflow with each dispatcher and identify where time is going — typically it's inbound call handling, manual confirmation calls, or part-run coordination. Automating or streamlining those three tasks will lift throughput by 4–7 jobs/day within 30 days.
Step 3: Implement system inspection protocol to lift average ticket
This is the highest-leverage training intervention available to an HVAC operator. A properly implemented 10-point system inspection protocol — with the tech trained on how to present findings and the customer educated on the value of proactive repair — will lift average ticket by $60–$120 within 60 days of rollout. The cost is zero; it's a workflow change, not a technology spend.
Step 4: Geographic clustering to lift utilization and RPTD together
Utilization and RPTD are correlated — they move together because they share the same root cause (drive time). Once callback and ticket are moving, tighten geographic routing. This is a scheduling discipline change, not a territory shrinkage — it means routing techs to adjacent neighborhoods on consecutive calls rather than crisscrossing the service area. Most FSMs have routing optimization tools that support this; the change is getting dispatchers to use them.
The compounding math: Moving from median to top-quartile across all six KPIs simultaneously is unrealistic. But moving from P50 to P65 on three of them — callback rate, average ticket, and dispatcher throughput — in a single quarter is a realistic 90-day goal, and the combined EBITDA impact at a $5M business is typically $80,000–$140,000. That's the equivalent of buying 0.5–1.0 EBITDA multiple turns at exit.
For PE operators running multiple HVAC portcos
If you're running three or more HVAC portcos under a single platform, the value of this benchmark data is less about any single business and more about the variance across your portfolio. Variance is where your operational alpha lives.
A portfolio with three HVAC portcos running callback rates of 3.2%, 4.8%, and 9.1% has an obvious problem at the third portco — but the real opportunity is understanding why the first portco is at 3.2% and deploying that playbook to the others. Most PE operators don't have the data infrastructure to see this comparison without building a custom reporting layer. By the time the data is assembled, the quarter is over.
The KPIs to standardize first across all portcos are the ones with the highest measurement consistency and the lowest interpretation variance: callback rate (clear definition, matches FSM data), dispatcher throughput (jobs/dispatcher/day, equally unambiguous), and technician utilization (billable vs. available hours). These three can be aggregated to a portfolio-level dashboard without requiring data normalization across different FSM systems.
Revenue per tech per day and average ticket require more careful normalization — a portco that runs primarily maintenance agreement work will have systematically different RPTD patterns than one running pure inbound service. Don't compare across business model types without adjusting for call mix.
First-call resolution is the hardest metric to standardize across portcos because the definition of "resolution" can vary — some portcos count a diagnostic-only visit as resolved if the customer chose not to proceed with repair, while others count it as unresolved. Establish a clear portfolio-wide definition before comparing FCR across entities.
The bottom line for PE operators: if you're not tracking all six of these KPIs per portco on a monthly basis, you're managing the portfolio by exception rather than by data. Exceptions surface when something has already gone wrong. Data surfaces the problem before it compounds.