HVAC business KPIs article cover for The Blue Collar Wave showing the words HVAC Business KPIs on a dark navy background

HVAC Business KPIs: The 13 Numbers to Track Weekly

September 09, 2026

In the shops I have worked with, the difference between a $3M HVAC company that nets 6 percent and one that nets 16 percent is rarely the market. One owner looks at 13 numbers every week. The other looks at a bank balance every morning.

Most owners between $1M and $10M already have the data in ServiceTitan, Housecall Pro, FieldEdge or QuickBooks. Nobody pulls it onto one page. This article gives you that page: the 13 HVAC business KPIs worth tracking, the formula for each, a typical range, and the decision each one drives.

By the end you will be able to build a one-page weekly scorecard, run a 30 minute meeting around it, and put a dollar figure on the gap between where your numbers sit and where they should be.

The 13 HVAC business KPIs on one page

Every range below is a typical range from residential and light commercial shops I have worked with. Your market, mix and price book will move it. The 50 percent gross profit floor is the exception. That one is a rule.

KPIFormulaTypical rangeReview cadence
Gross profit % (labor in COGS)(Revenue minus equipment, materials, direct labor, subs, permits) ÷ revenue50% floor; 55% to 62% well runWeekly by job, monthly on P&L
Net profit %Net income ÷ revenue10% to 20%; under 8% is redMonthly
Revenue per truck per yearTrailing 12 month revenue ÷ revenue-producing trucks$450K to $600KMonthly
Average service ticketService revenue ÷ service invoices, diagnostic-only calls included$375 to $500Weekly per tech
Average replacement ticketReplacement revenue ÷ replacement jobs$9,000 to $14,000 residentialWeekly per advisor
Service close rateRepairs sold ÷ diagnostic calls run65% to 80%Weekly per tech
Replacement close rate (comfort advisor)Installs sold ÷ replacement leads run40% to 55% in-house leads; 25% to 35% paid leadsWeekly per advisor
Booked call rate (CSR)Calls booked ÷ bookable inbound calls80% to 90%Weekly per CSR
Callback rateReturn trips on the same issue within 30 days ÷ completed callsUnder 3%; 5% is redWeekly per tech
Billable efficiency per techBilled hours ÷ paid hours55% to 65%Weekly per tech
Maintenance agreement count and renewal rateActive agreements; renewals ÷ agreements expiringCount grows monthly; 75% to 85% renewalCount weekly, renewal monthly
Service-to-install mix(Service + maintenance revenue) ÷ total revenue35% to 45% service, balance installMonthly
Cash on hand in weeks of overheadCash ÷ (annual overhead ÷ 52)8 to 12 weeksWeekly

Two definitions. Gross profit here always means direct labor sits inside cost of goods sold with equipment, materials, subs and permits. A truck means a revenue-producing truck in the field, so the owner's pickup and the parts runner do not count.

Net profit percent, service-to-install mix and cash on hand get less space below because they lag, but they are the three a buyer asks about first. If a sale is anywhere in your plans, my article on HVAC business valuation multiples shows how a 12 percent net and a 40 percent recurring service mix change the multiple.

Gross profit percent

Gross profit percent comes first because every other number sits on top of it. Sell $3M at 42 percent gross profit and you have $1.26M to cover overhead and profit. At 55 percent you have $1.65M. Same trucks, same techs, same customers, $390,000 more to work with.

The 50 percent floor is with labor in COGS. Plenty of owners tell me they run 60 percent and then I find technician wages sitting in overhead. Move them down and the real number is often 38 to 44 percent. A tech's wages, taxes, benefits and truck are costs of producing a job, so that is the number that counts.

Below 50 percent, the fix is almost always pricing. Cost cutting gets you 2 points; the price book gets you 10. The math lives in my article on HVAC flat rate pricing. Decision this KPI drives: if job-level gross profit on service falls under 50 percent two weeks running, you reprice the book or you retrain the techs who are discounting at the door. There is no third option.

Revenue per truck per year

Revenue per truck is the cleanest single measure of whether the business is getting enough out of the assets it already owns. A typical range for residential HVAC is $450,000 to $600,000 per truck per year, with install trucks above that and service trucks below it. Shops with a strong maintenance base and disciplined dispatch push past $650,000.

The decision it drives: whether to add a truck. An owner at $380,000 per truck who adds a ninth truck is buying more of the same problem. An owner at $580,000 has earned the right.

Worked example: Ridgeline Heating and Air

Ridgeline is a hypothetical $3.1M residential HVAC company with 8 trucks: 5 service and 3 install. Service and maintenance bring in $1.3M and replacement brings in $1.8M. Revenue per truck is $3.1M divided by 8, or $387,500, call it $390,000. The low end of the typical range is $450,000, so the company is $62,500 per truck short, or $500,000 a year across the fleet.

Two KPIs explain almost all of it: billable efficiency on the service side is 48 percent and the average service ticket is $310.

LineCurrentTargetMathAnnual revenue gained
Service revenue per tech$260,000$1.3M ÷ 5 service techs
Billable hours per tech9981,2062,080 paid hours × 48% vs 58%
Revenue per billable hour$260$260$260,000 ÷ 998 hours
Lever 1: billable efficiency48%58%208 extra hours × 5 techs × $260$270,400
Calls per tech per year839839$260,000 ÷ $310
Lever 2: average service ticket$310$4004,195 calls × $90$377,550
Both levers together$1.3M service$2.03M service1,014 calls × 5 techs × $400$728,000
New revenue per truck$387,500$478,500($3.1M + $728K) ÷ 8 trucks

Neither lever needs a new truck, a new tech or a new marketing dollar. Ten points of billable efficiency comes from dispatch and the maintenance base. Ninety dollars on the ticket comes from the price book and the option sheet. At 55 percent gross profit, that $728,000 carries roughly $400,000 of gross profit, and since the overhead is already paid for, most of it lands in net.

Billable efficiency per tech

Billable efficiency is billed hours divided by paid hours. A tech paid for 40 hours who bills 22 is at 55 percent. A typical range is 55 to 65 percent in a shop with a working maintenance base and a dispatcher who is allowed to say no. Below 50 percent, you are paying for windshield time, parts runs and standing around.

Ridgeline's 48 percent is common, and the causes are usually the same three. The dispatcher routes by who is nearest and ignores skill and revenue opportunity. Maintenance visits are not filling the shoulder season, so techs sit in April and October. And techs are driving to the supply house, which at Ridgeline costs $260 for every hour of capacity lost.

Decision this KPI drives: if a tech runs under 50 percent for three weeks, the first look goes to dispatch and the maintenance base, and only then to the tech. A tech cannot bill hours the office did not put in front of him.

Average service ticket

Average service ticket is service revenue divided by service invoices, and I count diagnostic-only calls because those are the calls where nothing was sold. A typical range on a properly built flat rate book is $375 to $500. Shops under $350 are almost always underpriced, discounting at the door, or running techs who do not present options.

The number moves in three ways. Price book: a book built on a loaded labor rate and a 50 percent margin prices a capacitor very differently from one built on gut feel. Options: a tech who presents good, better and best on every repair over $200 lifts the average without raising the price of anything. Diagnostic fee: a $49 diagnostic invites low-value calls, while an $89 to $129 diagnostic pays for the truck roll and filters out tire kickers.

Decision this KPI drives: track it per tech, weekly. When one tech runs $420 and another runs $270 on the same call mix, you have a training problem with a name on it, and a ride-along fixes it faster than a meeting.

Replacement close rate

Replacement close rate is installs sold divided by replacement leads run by a comfort advisor. A typical range is 40 to 55 percent on leads from your own techs and maintenance base, and 25 to 35 percent on paid leads where the homeowner is collecting three bids. Track them separately or the blended number will lie to you.

Pair it with the average replacement ticket, which in most residential markets sits between $9,000 and $14,000 and moves with the good, better, best presentation and financing. An advisor closing 35 percent at $9,500 and one closing 48 percent at $12,000 on the same 20 leads a month produce $66,500 and $115,200 respectively. Over a year that is a $584,000 difference from one chair.

Decision this KPI drives: below 40 percent on in-house leads, look at the handoff from tech to advisor and the advisor's presentation, both of which you can watch on a ride-along inside a week. The upstream number, booked call rate at the CSR desk, deserves the same treatment. A typical range is 80 to 90 percent of bookable calls, and every point below that is a lead you paid for and threw away.

Maintenance agreement count and renewal rate

Count active service agreements every week and track renewals monthly. A typical renewal rate is 75 to 85 percent. Below 70 percent, visits are being skipped or rushed and customers have noticed. Count matters because it sets billable efficiency in the shoulder seasons and feeds the replacement pipeline: a maintenance customer whose 14 year old system fails calls you first and gets no other bids.

The agreement has to make money on its own, with labor in COGS, and most are priced too low. My article on HVAC service agreement pricing walks through the math, and the free Maintenance Agreement Profit Calculator shows what your current plan earns per visit once you load the tech's real cost.

Decision this KPI drives: if count is flat for two months, the techs are not offering it and the CSRs are not asking. If renewal slips under 75 percent, the fix is the visit itself. No renewal letter covers for a 20 minute tune-up.

The weekly scorecard meeting

One page, 30 minutes, same day and time every week. Monday at 7:30 works for most shops because the dispatch board is not yet on fire. Every number has an owner who brings it, and the owner of the business brings almost none of them.

  • Service manager: average service ticket, service close rate, billable efficiency per tech, callback rate.
  • Comfort advisor or sales manager: replacement close rate by lead source, average replacement ticket, leads run.
  • CSR lead or dispatcher: booked call rate, calls per tech per day, maintenance visits scheduled and completed.
  • Bookkeeper or controller: job-level gross profit percent, cash on hand in weeks of overhead, agreement count and renewals.
  • Owner: revenue per truck on a trailing 12 months, net profit percent and service-to-install mix, reviewed monthly.

Each number is green, yellow or red against the range you set. Red means outside the range two consecutive weeks, and a red number gets exactly one thing in the meeting: a named person, a specific action and a date. The discussion of why happens outside the meeting. A shop that argues about every number for 90 minutes stops holding the meeting by the third month. I have watched it happen more times than I can count.

Three rules keep it alive. Numbers come straight out of the software, so the meeting spends its time on what to do next. Nobody gets punished in the room for a red number; the punishment is for showing up without one. And the scorecard goes on the shop wall where the techs see it, because a tech who knows he is at 46 percent against a 55 percent target will usually move it before you ask.

What to do this week

  1. Pull the 13 numbers from your software for the last 4 weeks onto one page. Where the software cannot produce one, write "unknown" and treat that as your first red.
  2. Recast your P&L with technician and installer wages, taxes, benefits and truck costs in cost of goods sold, then recalculate gross profit percent. Under 50 percent, pricing is your first project.
  3. Calculate revenue per truck on trailing 12 months and billable efficiency per service tech for the last 4 weeks. Multiply the gap to 55 percent by paid hours and by revenue per billable hour, the way the Ridgeline table does.
  4. Assign each number an owner and put the first 30 minute scorecard meeting on the calendar for next Monday.
  5. Set your red thresholds before that meeting, so nobody negotiates the range while looking at their own number.

Frequently asked questions

What is a good revenue per truck for an HVAC company?

A typical range for residential HVAC is $450,000 to $600,000 per revenue-producing truck per year, counting service and install trucks together. Install trucks usually run higher and service trucks lower. Below $400,000, look at billable efficiency and average ticket before adding trucks. Above $650,000, the fleet is likely at capacity.

What is a good close rate for HVAC replacement sales?

For a comfort advisor running leads generated by your own techs and maintenance base, a typical range is 40 to 55 percent. On paid leads where the homeowner is collecting multiple bids, 25 to 35 percent is realistic. Track the two separately, because a blended number hides a weak advisor behind strong in-house leads.

How do you calculate billable efficiency for a technician?

Divide the hours billed to customers by the hours the technician was paid over the same period. A tech paid 40 hours who bills 22 is at 55 percent. Use flat rate book hours as the billed figure if you price flat rate. A typical range is 55 to 65 percent, and a low number usually traces to dispatch and the maintenance base first.

What gross profit margin should an HVAC company have?

With direct labor, equipment, materials, subs and permits all in cost of goods sold, gross profit should be at least 50 percent, and well-run residential shops land at 55 to 62 percent. If your number is higher, check whether technician wages are sitting in overhead. That is the most common reason a P&L shows 60 percent when the real figure is closer to 40.

How many KPIs should an HVAC business track?

Thirteen on a weekly scorecard is about the limit for a $1M to $10M shop, and six drive most decisions: gross profit percent, revenue per truck, billable efficiency, average service ticket, replacement close rate and maintenance agreement count. Track more than 15 and the meeting turns into a reading exercise nobody acts on.

Thirteen numbers on one page, 30 minutes every Monday, and a named owner for every red. That is the whole system, and I have watched it move a shop from $390,000 per truck to $480,000 without a single new hire. If you want help building the scorecard around your own numbers, book a free strategy session and bring your last 4 weeks of data.

Jim Cosmas

Jim Cosmas

Jim Cosmas spent 45 years in the trades as an apprentice, technician, foreman, manager and owner before he started consulting. He works with home service companies doing $1M to $10M on pricing, gross margin, service agreements and building a business worth buying. He is the founder of The Blue Collar Wave in Fort Myers, Florida, and the author of Double Your Home Service Profits Without Spending a Dollar More on Marketing.

LinkedIn logo icon
Instagram logo icon
Back to Blog