Revenue Per Truck: What Good Looks Like
From Level's proprietary contractor research
A $310K residential service-truck midpoint implies $3.1M across ten mature trucks. Calls per day, average ticket, route density, mix, and ramp stage decide whether that is a useful target.
Pattern across 2,200+ contractors, $13.25B in job revenue analyzed
The short answer
A practical Level operating range for a mature residential HVAC service truck is $210,000 to $480,000 or more in annual revenue, with $310,000 as a planning midpoint. Commercial service uses a roughly $185,000 to $420,000 range with a $290,000 midpoint. These are Level operating diagnostic tiers, not percentiles currently published in the downloadable contractor.json dataset. Build the target from calls per day, average ticket, productive days, and the shop's own job mix.
Key takeaways
- A $310,000 annual truck is reproducible as 2.5 completed calls per day times a $500 average ticket times 248 productive days.
- Ten mature trucks at that same operating midpoint imply $3.1M of annual revenue before seasonal, ramp-stage, and mix adjustments.
- The measured Level metrics on this page, including 8.7% service-agreement pull-through and 97.1% billing capture, link to the downloadable benchmark data and keep their original denominators.
- Revenue per truck is incomplete without gross profit per truck, callback cost, and ramp-stage reporting.
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 a reproducible operating model. A useful truck target must reconcile to calls per day, average ticket, productive days, work mix, and gross margin.
Level's operating work across contractor teams supports the diagnostic tiers below. Unlike service-agreement margin, quote conversion, collection rate, and billing capture, revenue-per-truck percentiles are not currently a metric in the public contractor.json dataset. The tiers are therefore labeled as Level operating ranges, while the formula lets any owner reproduce the target from their own fleet.
Level Operating Diagnostic Ranges 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
| Operating Tier | Annual Revenue Per Truck | Notes |
|---|---|---|
| Exceptional scenario | $480,000+ | Requires a premium ticket, dense routing, more calls, or more productive days |
| Strong scenario | $380,000 | Solid average ticket and completed-call volume |
| Planning midpoint | $310,000 | 2.5 completed calls per day x $500 average ticket x 248 productive days |
| Improvement trigger | $210,000 | Review ramp stage, dispatch density, price, ticket, and callbacks |
| Ghost-truck scenario | $130,000 | Test whether the truck covers its technician, vehicle, dispatch, and overhead burden |
Commercial Service Trucks (HVAC, Plumbing, Electrical)
| Operating Tier | Annual Revenue Per Truck |
|---|---|
| Strong scenario | $420,000 |
| Planning midpoint | $290,000 |
| Improvement trigger | $185,000 |
Commercial trucks can show lower revenue per truck than residential even with higher hourly rates because jobs run longer and the truck completes fewer calls. Commercial billing cycles affect cash collection, not whether properly accrued revenue is recognized, so track DSO separately.
Install Crews (Replacement/New Install)
| Segment | Annual Revenue Per Crew Planning Range |
|---|---|
| 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 crew can be higher because ticket sizes are larger. A single system replacement can run $8,000 to $25,000 versus a $300 to $600 service call. But revenue per truck does not answer the profitability question. For example, $310K at a 47% gross margin produces about $146K of gross profit, while $550K at a 32% gross margin produces $176K. The install crew produces more total gross profit in that scenario, while the service truck produces more gross profit per revenue dollar. Compare gross profit per crew hour before deciding which mix is better.
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 scenario is 3.7 times a $130K scenario. The following inputs explain the gap and can be checked in the shop's own records.
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.
Dispatch density can help. If routing truly converts 40 to 60 minutes per productive day into billable work across 240 days, that is 160 to 240 additional hours. At a $79 rate-card field, the arithmetic range is $12,640 to $18,960 before discounts and write-offs. Measure the time change first rather than assuming software creates the hours.
4. Service Agreement Pull-Through Rate
This is where the real separation happens at the top. In Level's proprietary contractor research, median pull-through revenue is 8.7% of service-agreement revenue, the upper quartile is 29.6%, and the 90th percentile is 93.4%. The extreme upper tail can include relationship-driven project work, so 29.6% is the more realistic stretch comparison for most operators. The operating lesson is direct: measure findings, quotes, approvals, and completed follow-on work by technician and account.
Pull-through is a revenue ratio, not a job-conversion rate. On a $500K service-agreement book, 8.7% equals $43,500 of follow-on revenue, 29.6% equals $148,000, and 93.4% equals $467,000. Do not translate those percentages into numbers of jobs without the book's actual quote count and average ticket.
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 cannot generate revenue with a truck sitting in the parking lot, but the Level metric available here is billing capture, not technician utilization. The median billing-capture rate is 97.1% across 963 companies, measured as hours invoiced divided by hours logged on jobs. The lower decile is 66.9%. It does not include every paid drive, training, administrative, or idle hour in the denominator.
For transparent scenario math, a 20-point billing-capture gap across 2,000 hours already logged on jobs equals 400 hours, or $31,600 at $79 per hour. That is potential billing exposure, not a promise of recoverable revenue and not proof of a dispatch problem. True utilization must be calculated separately from billable hours divided by total paid hours.
Free benchmark review
See how your margins benchmark.
We compare your jobs, crews, and service lines against real margin data, then show which gaps deserve the free audit.
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 a $250K Truck Can Model a Path to $350K
This math is what separates contractors who scale from contractors who plateau.
A reproducible $250K starting point is 2.5 completed calls per day x a $400 average ticket x 250 productive days. Increasing both completed calls and average ticket by 10% produces 2.75 x $440 x 250, or $302,500. The gains compound to $52,500, not $100,000.
To model $350K with the same 250 productive days, the shop needs a combination such as 2.8 completed calls per day at a $500 average ticket. Across five trucks, moving from $250K to $350K would add $500K of revenue, but only if the shop can support the call volume, pricing, technician capacity, and customer demand. Pull-through, bill rate, and callback improvements should not be added again when they are already reflected in completed calls or average ticket.
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.
Source and claim note
Revenue-per-truck and leading-indicator tiers on this page are Level operating diagnostic ranges derived from contractor finance work, not published percentiles in contractor.json. Pull-through and billing capture are measured Level Index metrics with definitions and samples in the downloadable contractor benchmark data. Every worked truck result is transparent scenario arithmetic. External wage and employment context should be checked against the Bureau of Labor Statistics and vehicle operating-cost context against the IRS standard mileage guidance. Use the gross-profit-per-hour calculator or Level's HVAC service to diagnose a real fleet.
Get the next one
Want next week's benchmark in your inbox?
One email a week. Real numbers from 2,200+ service businesses. No fluff. Unsubscribe anytime.
Related reads
Benchmarks
Building Age Doubles Replacement Work and Does Nothing to Service Revenue
Older buildings do not spend more on mechanical service. They spend more on replacement. Split the revenue and a 1.85x effect appears where total revenue shows nothing, measured across 25,912 buildings.
Benchmarks
National Review Benchmarks Misrank A Third Of Contractors
The median HVAC shop has 26 reviews in California and 4 in Arkansas. Ranked nationally, 36.7% of HVAC contractors land more than 10 percentile points from where they actually sit in their own market.
Benchmarks
Square Footage Explains 9% Of What A Building Spends On Mechanical Service
The industry prices buildings per square foot across a 14x range. We measured it: floor area explains 9% of the variance, and dividing by area adds 19% more variance than it removes.

About the author
Sam Yang
Founder & CEO
Founder of Level, the AI operating layer for contractors and skilled trades, and the other operating businesses where scarce labor is the constraint. Ex-CFO across trades, SaaS, and service businesses. 4 years as Director of Growth Product at BuildOps, building financial tooling used by 1,000+ commercial contractors. Four years in PE and investment banking rolling up and acquiring service businesses, $2.5B in total transactions including M&A and IPOs. Stanford MBA, Brown undergrad. The Level founding team's analysis of 2,200+ contractors ($13.25B in revenue) across operating, private-equity, and CFO roles anchors the Level Index benchmark research.
LinkedIn