The One Number PE Firms Track That You're Ignoring
The One Number PE Firms Track That You're Ignoring
In 2019, I pulled the P&L on a 14-truck residential HVAC shop my firm was evaluating for acquisition. The owner had been in business 22 years. He was proud of his revenue growth. Three consecutive years of top-line increases, somewhere around 9% annually, and he talked about it the way a lot of owners talk about it — as proof the business was healthy.
The installs had been losing money on every job for three years. Not slightly. Materially. Overhead had grown faster than gross margin, equipment cost pass-through had lagged distributor price increases, and technician productivity was all over the map. Revenue kept rising because volume kept rising. Volume kept rising because they were underpricing to stay competitive. The owner didn't know any of this because he was watching the wrong number.
That shop still hasn't sold. The PE firm passed.
Why Top-Line Revenue Keeps Lying to You
Revenue tells you how many dollars came in the door. It tells you nothing about what those dollars cost to produce, which jobs produced them efficiently, or whether the business underneath is getting stronger or hollowing out.
When overhead grows faster than gross margin on installs, a rising top line conceals deterioration at the unit level. I've watched this in shops that came across my desk at Atlantic Comfort Partners: the owner points at the revenue chart going up and right, and the spreadsheet behind it shows gross margin on installs going the opposite direction. They're related. They are not the same thing.
Growing volume without fixing your cost structure scales a problem. Each additional job at a margin that doesn't cover fully loaded overhead is a small loss. Small losses multiplied by volume become large ones. The revenue number keeps improving while the actual financial position worsens.
Revenue has one job: confirm that demand exists. Everything else requires a different number.
What Revenue Per Tech Per Day Actually Measures
Revenue per tech per day — RPTD — is total billable revenue attributed to a specific technician, divided by the number of days that technician ran calls in the period.
If your tech Marcus ran calls for 22 days last month and generated $41,800 in billed revenue, his RPTD is $1,900. If your tech Derek worked 21 days and generated $28,350, his RPTD is $1,350. On your monthly revenue report you see $70,150 combined. That number tells you nothing about the gap between them, which job types drove the difference, or whether the variation is structural or random.
RPTD exposes that gap immediately. Once you see it, the questions that actually matter become visible: Is Marcus running more installs while Derek handles diagnostics? Different service zones with different windshield time? One using a flat-rate book and one quoting freehand?
On flat-rate pricing books specifically: they produce predictable revenue per ticket. They don't control margin per ticket, because actual cost varies by technician efficiency, parts sourcing, and time on site. A tech running six tickets a day at flat-rate prices posts strong revenue. A tech running four tickets at the same prices but spending 45 extra minutes per call on callbacks posts weak revenue. RPTD makes that variance visible at the individual level instead of drowning it in an aggregate.
None of this appears in a monthly revenue report.
How PE Roll-Ups Use This Number Before You've Even Heard of It
I spent two years at Atlantic Comfort Partners as an ops analyst. I watched due diligence run on residential HVAC shops in four states. I know which spreadsheet tabs the analysts built first, because I built some of them.
The first two numbers every analyst calculates on a target shop are gross margin on installs and RPTD. Not top-line revenue. Not EBITDA — that comes later. The first filter is whether the techs are productive and what the shop produces per unit of labor.
The reason is straightforward. When you acquire a shop, you're buying technician capacity. Equipment pricing can be adjusted. Marketing can be redone. Software can be swapped. The techs are what you paid for. RPTD is how you measure whether that capacity is actually performing.
A shop owner who doesn't track RPTD is walking into an acquisition conversation with less information about their own business than the buyer already has. The acquirer will have calculated your RPTD from your own tax returns and service history before the first meeting.
Post-close, consolidators benchmark each acquired shop against the portfolio. A shop running $1,100 RPTD against a portfolio average of $1,600 gets restructured — repriced, rescheduled, or reduced in headcount. The shops that survive integration are the ones already operating near the benchmark, not because they were lucky, but because the owner was measuring the right things.
If you ever want to sell, you want RPTD trending up for at least 24 months before you take that call. That's the window analysts pull. A flat or declining trend will show up in the offer.
The Contrarian Read: High RPTD Can Be a Warning Sign
RPTD can be gamed. Optimizing for it without pairing it to other numbers is how you build a metrics trap.
A tech posting $2,400 RPTD consistently is not automatically your best tech. On the install side, my recurring concern is Manual J — specifically what happens when it gets skipped. Rule-of-thumb sizing is faster. Faster installs mean more installs per day. More installs per day means higher RPTD. It also means a system that may be oversized, short-cycling, and heading toward a warranty callback or a comfort complaint in 90 days. That callback doesn't appear in the RPTD calculation. It appears in your callback rate, your labor cost on non-billable time, and eventually your customer retention numbers.
The margin side has the same problem. During the SEER2 transition, shops that absorbed equipment cost increases rather than passing them through kept posting install revenue that looked stable. Gross margin on those installs was not stable — I watched it compress materially in shops I audited through that period. About 60% of the independents I worked with did exactly that. The RPTD number looked fine. The gross margin per install did not.
RPTD needs two companions to be trustworthy: gross margin per ticket and callback rate by technician. A high RPTD without those two is a starting point for questions, not an answer.
What Bayview's Numbers Would Have Said
I ran service calls in a Sprinter out of Bayview Mechanical in Sunnyvale for four years starting in 2007. Nobody was tracking my RPTD. The concept wasn't in the shop's vocabulary. But I know what my days looked like.
A solid residential service day in the South Bay was four to five calls — one diagnostic that turned into a repair, two maintenance visits with upsells, one small install. Windshield time ran maybe 90 minutes on a normal day, closer to two hours when the 101 was bad, which was most days. Billable time was maybe five and a half to six hours out of eight.
The variance between that day and a light commercial call day was significant. A commercial job could mean four hours at a single site — one ticket, strong revenue, low ticket count. High individual ticket revenue, but when you factor in the fully loaded truck operating cost per billable hour, a job where I drove 40 minutes each way and waited 30 minutes for the building manager had vehicle costs that dwarfed a tight residential route with three calls in the same zip code.
The single most underpriced cost in residential HVAC is truck operating cost per billable hour. At Bayview, like most shops I've seen, that number was estimated from a national average rather than calculated from the actual lease, insurance, fuel, and maintenance on the specific fleet. National averages are a fiction. If you're not running your own vehicle cost per hour against your own dispatch data, your RPTD calculation is flattering you. The revenue looks like it came from the tech. Some of it came from subsidized truck cost you never saw.
Building the Calculation
Pull the last 30 days of invoices from whatever system you use — ServiceTitan, Jobber, a spreadsheet. Sort by technician. For each tech, record total billable revenue and the number of days they ran calls. Divide. That's your baseline RPTD.
| Technician | Billable Revenue (30 days) | Days Worked | RPTD |
|---|---|---|---|
| Marcus | $41,800 | 22 | $1,900 |
| Derek | $28,350 | 21 | $1,350 |
| Jess | $35,100 | 20 | $1,755 |
Now run the same breakdown by job type — service, maintenance, install, diagnostic — and see where each tech's revenue is concentrated. A tech with high RPTD running mostly installs and a tech with similar RPTD running mostly service calls have different cost profiles and different margin profiles. The aggregate hides that. The job-type split reveals it.
The next number to pull alongside RPTD is days sales outstanding (DSO) — how long it actually takes to collect from invoice generation — broken out by job type. I've seen this catch shops off guard when they start tracking commercial separately from residential. A tech posting strong RPTD on light commercial work looks productive on the revenue line. If those invoices are sitting 47 days unpaid, the cash is funding someone else's working capital for six weeks while your residential tickets collect in four days. That's not a productivity story. It's a cash conversion problem wearing one.
Run these three — RPTD by technician, job-type breakdown, DSO by job type — every 30 days. They will show you more about what's happening in your business than your monthly revenue total ever has.
FAQ
What counts as a "day worked" — do I include drive time, training days, callbacks?
Count days when the technician is dispatched on revenue-generating calls. Training days and callbacks should be tracked separately, because they affect the denominator without contributing to the numerator. If you fold them in, RPTD drops and looks like a performance problem when it's actually a schedule decision. I track callbacks as a separate rate — callback hours per tech per month — and treat them as a quality metric. They're related to RPTD but shouldn't be mixed into it.
My top tech has the lowest RPTD. Does that mean he's underperforming?
Not automatically. If your best diagnostic tech spends his days on complex calls that others would misdiagnose, his ticket count will be lower and RPTD will reflect that. The question is what happens downstream: do customers authorize repairs at a high rate? Is his callback rate near zero? Does he run the jobs that prevent warranty claims? Low RPTD paired with high close rate and zero callbacks is a different story than low RPTD paired with long call times and inconclusive diagnoses. Pull both numbers before you have the conversation.
Should I share RPTD numbers with my technicians, or does that create the wrong incentives?
Share it, but frame it carefully. Post a raw leaderboard without context and you'll get techs padding tickets, rushing diagnostics, and skipping steps to improve their number — exactly the high-RPTD warning signs I described above. What works better is sharing each tech's own RPTD trend over time, paired with their callback rate and close rate. The point is individual accountability to their own trajectory, not a competition. Competing on a single metric in a service business tends to produce the metric and erode the diagnostic quality underneath it.
How does RPTD change if I run a mixed residential and light commercial book?
Calculate RPTD separately by job category — residential service, residential install, light commercial service, light commercial install. The numbers will diverge, and they should. A residential install tech at $2,200 RPTD and a commercial service tech at $1,400 RPTD aren't comparable because ticket structure, parts margins, and collection timelines differ. Blending them produces an average that describes neither segment accurately. Segment first, then look at each category on its own.
What's a benchmark RPTD number I should be hitting for a residential service tech?
I won't give you a range, because the range I'd give you would be the kind of national average fiction I just told you not to use. Your benchmark is your own best performer. If Marcus is running $1,900 and Derek is running $1,350, the question isn't whether $1,350 is bad in the abstract — it's what's structurally different between their days. Start there.
If I'm running ServiceTitan, can't it just generate this report automatically?
It can generate the inputs. Whether it produces a clean RPTD report depends on how your price book is set up, how jobs are attributed to technicians, and whether your implementation was configured to track revenue at the technician level. Most shops under 12 trucks running ServiceTitan are using it for dispatch and invoicing and haven't touched the reporting side — I've seen this in nearly every engagement at that size. Pull the raw data, build the three-column sheet, and confirm the ServiceTitan number matches before you trust the automated output. If the numbers diverge, the attribution setup is almost certainly the problem.
Enjoyed this article?
Get articles like this in your inbox every Monday. Free, no spam.
