2,200+ contractors benchmarked. How do your margins stack up? See where you stand →
Level
Benchmarks

Revenue Per Truck — What Good Looks Like

Sam Young·2026-05-16·10 minute read
Revenue Per Truck — What Good Looks Like — Level CFO

The KPI Everyone Cites, Nobody Benchmarks

Revenue per truck is everywhere in contractor coaching circles. It shows up in trade association presentations, consulting decks, and peer group discussions. Every contractor coach has an opinion on what the number should be.

What's missing is actual data — not anecdotes, not aspirational targets, but benchmarks from real operations of different sizes, trades, and service models.

I've reviewed financial and operational data for 2,200+ contractors. Here's what revenue per truck actually looks like across the dataset, and more importantly, what separates the top performers from the trucks sitting at $150K.


The Benchmarks by Segment

Revenue per truck isn't a single number. It varies significantly by trade, service model, and market. Conflating residential HVAC service with commercial plumbing install leads to benchmarks that are useless for both.

Residential HVAC Service Trucks

PercentileAnnual Revenue Per TruckNotes
Top 10%$480,000+High bill rate, strong maintenance agreement pull-through
Top 25%$380,000Solid average ticket, high utilization
Median$310,000Two service calls per day, $425 avg ticket
Bottom 25%$210,000Underutilized or underpriced
Bottom 10%$130,000Ghost truck territory

Commercial Service Trucks (HVAC, Plumbing, Electrical)

PercentileAnnual Revenue Per Truck
Top 25%$420,000
Median$290,000
Bottom 25%$185,000

Commercial trucks often have lower revenue per truck than residential — counterintuitively — because commercial service rates are sometimes more competitive, jobs run longer (more hours per call, fewer calls per day), and commercial billing cycles create collection friction that slows revenue recognition.

Install Crews (Replacement/New Install)

SegmentAnnual Revenue Per Crew
Residential replacement$420,000-600,000
Commercial install (2-3 person crew)$500,000-800,000
Large commercial mechanical (full crew)$800,000-1,500,000

Install revenue per truck is higher than service because ticket sizes are larger. A single system replacement runs $8,000-25,000 versus a $300-600 service call. But install margins are lower — which is why revenue per truck doesn't tell the whole profitability story. A service truck doing $310K at 47% labor margins generates more gross profit than an install crew doing $550K at 32% margins.

This is the core lesson from the labor vs. materials data: service trucks generate the profit, install trucks generate the revenue. Don't optimize for the wrong metric.


Why the Number Varies So Much

A $480K residential service truck and a $130K residential service truck are both running one tech, one truck, the same trade. How does one generate 3.7x more revenue?

Five variables drive the spread:

1. Bill Rate

The single biggest lever. From the bill rate benchmarks, residential HVAC service rates range from $75/hr in lower-cost markets to $175/hr in premium markets (and higher for emergency/after-hours). A $20/hr difference in bill rate on 2,000 annual billable hours = $40,000 more revenue per truck per year. At 47% labor margin, that's nearly $19,000 in additional gross profit.

Many contractors are priced below what their market supports. They set rates based on what competitors were charging three years ago, not what they need to charge today.

2. Average Ticket

Revenue per truck is calls per day × average ticket × days worked. If your average ticket is $250 and a competitor's is $450, they generate 80% more revenue per call even at the same call volume.

Average ticket is driven by parts markup, accessory attachment rates, and service agreement upsell. The top performers in the data are selling parts at 30-50% markup, presenting accessories (IAQ, surge protection, service agreements) on every call, and converting a higher percentage of those conversations. The bottoms performers are selling parts at cost to "be competitive" and skipping the accessory conversation entirely.

3. Calls Per Day

A residential service tech running two calls per day versus three calls per day — same bill rate, same average ticket — generates 50% more revenue. The difference is dispatch efficiency, job site travel time, and how efficiently the tech transitions between jobs.

The dispatch software helps. Clustering geographically (reducing average drive time from 25 to 15 minutes per call) adds 40-60 minutes of billable time per day. Over a year, that's 150-200 additional billable hours per tech — at $90/hr, $13,500-18,000 in additional revenue per truck without changing anything else.

4. Service Agreement Pull-Through Rate

This is where the real separation happens at the top. From the data, median pull-through rate (the percentage of service agreement customers who convert to additional work) is 10.7%. Top 10% is above 53%.

A tech who visits a service agreement customer and identifies a secondary repair or equipment upgrade converts at much higher rates than cold-call customers. The truck visiting 200 SA customers per year at 53% pull-through is generating 106 additional jobs from that base alone — versus 21 jobs at the median pull-through rate. At $800 average job size, that's $85K versus $17K in pull-through revenue. Same truck. Same route. Radically different economics.

From the service agreement profitability data, SA margins run 40-45% — significantly higher than what most contractors assume. The trucks that generate the most revenue are almost always the trucks that work the densest maintenance agreement routes.

5. Utilization

You can't generate revenue with a truck sitting in the parking lot. From the technician utilization data, the median billable hour ratio is 96.7%. But the worst performers in the data bill less than 77% of actual hours — effectively giving away 460+ hours per year of tech labor.

At $90/hr, the difference between 97% and 77% utilization on 2,000 available hours is $36,000 in lost revenue per truck. That's almost entirely recoverable through dispatch tightening, route efficiency, and real-time time tracking.


The Ghost Truck Problem

There's a specific failure mode I see in $2-6M contractors that I call the ghost truck: a truck registered to the company, insurance running, tech on payroll, dispatching regularly — but generating only $130-160K per year.

Ghost trucks exist for a few reasons:

The underperforming tech. Someone who was hired during a staffing crunch, trained minimally, and placed on route before they were ready. They're slow, their average ticket is low (poor upsell conversion), and their callback rate is high (callbacks are unbilled). They look busy, but they're not generating.

The wrong territory. A truck covering a sparse suburban area with long drive times between jobs runs 1.5 calls per day instead of 2.5. Same tech, same training, different geography. The solution is territory redesign or redeployment, not more training.

The wrong work type. A service tech primarily doing residential emergency calls generates inconsistent revenue because emergency call volumes are unpredictable. The same tech running a dense maintenance agreement route generates $40-60K more per year because the route is predictable and the conversion opportunity is consistent.

Poor dispatch prioritization. If your dispatcher fills the tech's day with low-ticket callbacks and "quick check" calls rather than diagnosable system calls, average ticket suffers.

The ghost truck is expensive. At $18,000-22,000 in annual fixed cost (see overhead rate benchmarks for how to calculate this), a truck generating $130K and a truck generating $330K have the same fixed cost burden. The revenue difference — $200K — at 40% gross margin is $80K in gross profit. That's the cost of carrying a ghost truck for one year.


The Leading Indicators That Predict Revenue Per Truck

Revenue per truck is a trailing indicator. It tells you what happened over the last 12 months. If you only look at it annually, you're 12 months behind on problems that compounded all year.

The leading indicators that predict revenue per truck — measured weekly or monthly:

1. Calls Dispatched Per Truck Per Day

Target: 2.5-3.5 for residential service, 1.5-2.5 for commercial service, 1-1.5 for install. Dropping below 2.0 for a residential service truck for more than two consecutive weeks is an early warning signal. The causes: slow season (expected), dispatch gap (fixable), or tech availability issues (requires intervention).

2. Average Ticket

Track per-tech, per-truck, and by job type (maintenance call vs. repair vs. replacement). A declining average ticket — even if call volume stays flat — signals a conversion problem. Either the tech is skipping the accessory/upsell conversation, or the diagnostic work is being rushed.

3. Billable Hours Per Day Per Truck

Different from calls per day. A tech can run two calls in 6 billable hours or two calls in 9 billable hours. The difference is job efficiency and complexity. Target: 7-8 billable hours per day for residential service. Below 6 indicates drive time drag or job inefficiency.

4. Callback Rate

Every callback is unbilled labor, parts cost, and a lost opportunity to run a revenue-generating call. Track callbacks per tech per 100 calls. Under 5% is strong. Above 15% signals a training or quality problem that's actively suppressing revenue per truck (the tech is recycling their day on free work).

5. Service Agreement Conversion Rate

On every maintenance visit, what percentage of customers receive a proposal for additional work? What percentage accept? If your tech is running 8 SA visits per week and converting 0 of them to additional services, that's the single highest-leverage change you can make to revenue per truck.


How Improving Each By 10% Compounds

This math is what separates contractors who scale from contractors who plateau.

Starting point: a truck generating $250K/year.

  • Calls per day: 2.0
  • Average ticket: $350
  • Billable hours per call: 2.5
  • Bill rate: $90/hr
  • Days per year: 250

A 10% improvement in each leading indicator:

ChangeRevenue Impact
Calls per day: 2.0 → 2.2+$35,000
Average ticket: $350 → $385+$25,000
Bill rate: $90 → $99/hr+$28,000
SA pull-through: 8% → 8.8% on 150 SA visits+$7,000
Callback reduction (less lost revenue)+$8,000
Total improvement+$103,000

A 10% improvement in each metric — none of which is heroic — moves a $250K truck to a $353K truck. That's the difference between a ghost truck and a median performer. And doing it across five trucks simultaneously adds $515K in revenue without hiring a single person.

This is the compounding logic behind why marginal improvements matter so much in contractor operations. The variance in performance within a single contractor's own fleet is often wider than the variance between a good contractor and a great one.


When Revenue Per Truck Is the Wrong Metric

Two situations where revenue per truck misleads:

Project-based commercial contractors. A $40M mechanical contractor doesn't run revenue per truck — they run revenue per crew, per project, per estimator. The dispatch-and-service model doesn't apply. Don't benchmark a commercial GC against residential service metrics.

During rapid growth. If you added three trucks in Q3 and it's December, your revenue per truck will look terrible because the new trucks are still ramping. Annualize the new truck revenue separately from your established fleet, or you'll make a false conclusion that your fleet is underperforming when it's actually in the ramp period.

In both cases, drill down to the underlying leading indicators rather than the trailing annual number.


The Affordability Check Before the Next Truck

If your revenue per truck is below $200K, the answer is not usually "buy another truck." It's "fix the ghost truck you already have."

Run this before you sign the next vehicle lease: can you afford to hire your next employee? The same break-even logic applies to a truck addition. If the existing truck is at $180K and your break-even for that truck is $220K, you're subsidizing it every month. Adding another truck doesn't solve the economics on the first one.

Fix the leading indicators — dispatch density, average ticket, utilization, bill rate — until the existing trucks hit benchmark. Then add trucks from a position of strength, not desperation.


Q: My best tech generates $420K/year on one truck. Is there a ceiling? A: Not a hard one, but there are practical limits. Above $500K per truck per year for residential service, you're either in a high-rate market, running premium emergency pricing, or the tech is working unsustainable hours. The best-maintained ceiling is around $400-450K annually with healthy work-life balance and a sustainable call volume. Beyond that, the incremental revenue usually requires extended hours or emergency call rates that can't be sustained indefinitely. The better play: once your best truck hits $400K+, use their patterns as the training template for your lower-performing trucks.

Q: Should I track revenue per truck or revenue per technician? A: Both, but they measure different things. Revenue per truck measures asset productivity — what the vehicle generates. Revenue per tech measures labor productivity — what the person generates. In most service businesses, they're closely correlated because each tech has one truck. They diverge when techs share vehicles, when a tech is temporarily without a truck, or when one truck is used by multiple techs (e.g., a helper who doesn't have their own vehicle). Track both. When they diverge, that divergence tells you something.

Q: How often should I review this number? A: Monthly for fleet-level tracking, weekly for dispatch-level leading indicators. Annual revenue per truck is useful for investment decisions (adding trucks, retiring underperformers). Monthly tracking catches seasonal patterns and identifies when a truck drops below its baseline for two or more consecutive periods — that's when you intervene. Weekly dispatch data (calls per day, average ticket, billable hours) is where you catch the leading indicators before they show up in the monthly trailing number.

About the author

Sam Young

Founder of Level. Former PE investor and investment banker. Built AI-powered accounting products at BuildOps — the largest field management software for commercial contractors — benchmarking financial data across 2,200+ contractors in HVAC, plumbing, electrical, and mechanical trades. Operations analytics work with Astra Service Partners, CIVC Partners (American Refrigeration), and other PE-backed portfolios in the trades. Co-founded Overline, where his team has analyzed over $1B in real estate assets. Stanford MBA.

LinkedIn

Ready to see where your money is going?

Get a free job profitability audit.

Get Your Free Audit