Revenue Per Truck: What Good Looks Like
Level operating planning ranges
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.
Illustrative Level planning arithmetic, not a measured revenue-per-truck percentile
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 in these illustrative pricing assumptions, not measured market medians. 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 more precise lesson from the labor vs. materials data: service work tends to earn more gross profit per revenue dollar, while install can earn more total gross profit per crew. Decide the mix on gross profit per crew hour, not on revenue per truck or margin percentage alone.
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, the $75-$175/hour figures used here are illustrative price inputs, not a verified residential-HVAC market distribution. The linked rate-card research mixes billing rates, loaded cost and base wage, so it cannot establish a current customer price by geography. A $20/hr difference in bill rate on 2,000 annual billable hours = $40,000 more revenue per truck per year. If the same hours are sold with the same technician cost, that $40,000 is incremental gross profit before any lost volume, because the loaded technician cost is already inside gross margin and does not rise with price. A margin percentage such as the 47.7% labor margin in Level's quote-line data (measured on quoted labor lines) applies to added hours that carry their own labor cost, not to a pure price change. Test the volume risk: at the higher rate, how many of the 2,000 hours would the shop actually keep?
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 pricing, accessory attachment rates, and service agreement offers. Parts markup and accessory attach rates are not measured fields in the public Level dataset, so treat the following as operating judgment rather than a finding: shops with higher tickets typically price parts above cost, present relevant options (IAQ, surge protection, service agreements) when the system warrants them, and track how many of those conversations convert. A 30% to 50% markup on cost equals roughly a 23% to 33% margin on the parts price ($100 cost sold at $130 is a 23.1% margin; sold at $150 it is 33.3%), so confirm which one your price book uses. Selling parts at cost to "be competitive" leaves no parts gross profit to cover handling, warranty, and inventory carrying cost.
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. The $79 input is the median company-level average billed labor rate in the Level Index (n=1,770 contractors, cross-trade). That field mixes customer billing rates, loaded cost and base wage, so $79 is a hypothetical price input here, not a verified customer billing price or residential HVAC tariff. At $79, the arithmetic range is $12,640 to $18,960. At $125 it is $20,000 to $30,000, and at $175 it is $28,000 to $42,000. All three are before discounts, write-offs, and any added technician cost if the hours require overtime. 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 (n=386 eligible companies, cross-trade, not an HVAC-only subset), 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 a distribution comparison point, not a proven attainable target. 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, the Level Index measures service-agreement gross margin at a 37.9% median, with a 20.5% lower quartile and a 53.5% upper quartile (n=259 companies with at least $10K of agreement revenue). The spread is wide enough that a shop should measure its own agreement margin before assuming its routes are profitable. Dense maintenance routes can lift completed calls per day, but test that against your own truck-level data rather than assuming the highest-revenue trucks run them.
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 the same $79 cross-trade median rate input ($50,000 at $125 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.
Start with a free conversation about your priorities. With agreed access to the relevant records, we compare your numbers with applicable benchmarks and identify what to review first.
The Ghost Truck Problem
There's a failure mode worth testing for 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 in this page's illustrative residential service scenario.
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 may generate more per year because the route is predictable and the conversion opportunity is consistent. Treat any gain, such as an illustrative $40-60K, as a planning assumption until you compare the same tech's revenue per productive day on both work types.
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. Using an illustrative $18,000-22,000 of annual vehicle and fixed cost (see overhead rate benchmarks for how to calculate your own), a truck generating $130K and a truck generating $330K carry the same fixed cost burden. In this fictional scenario, the revenue difference of $200K at an assumed 40% gross margin is $80K of gross profit forgone for one year. Technician wages are already inside that gross margin, so do not count them again as a separate recovery.
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, are below. Their targets are Level operating planning ranges, not measured percentiles from contractor.json, so calibrate them to your own trade, season, and work mix:
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. Planning range: 7-8 billable hours per day for residential service. Below 6 may indicate drive-time drag or job inefficiency, so check the dispatch log before concluding.
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. As an operating planning range rather than a measured benchmark, under 5% is a reasonable goal, and above 15% warrants a training or quality review because the tech is recycling part of the day on unbilled work. Compare each tech to the shop's own trailing rate on the same job types.
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 clear their own break-even and planning target. 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. As operating judgment rather than a measured ceiling, residential service trucks above roughly $500K per year usually reflect a high-rate market, premium emergency pricing, unusually dense routing, or hours that may not be sustainable. Test sustainability with the truck's own data: calls per day, average ticket, and hours worked per week. If $420K comes from 2.8 calls x $600 x 250 days, that is a different situation from $420K driven by 60-hour weeks. 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+ contractors in the research universe. No fluff. Unsubscribe anytime.
Related reads
Benchmarks
Older Building-Age Comparison: Office Replacement Work Nearly Doubles, Routine Revenue Stays Flat
An older research comparison (original version and sample not confirmed): older office stock bills similar routine mechanical service; it bills more replacement. The split shows a 1.85x office comparison (2.31x in healthcare), despite a flat pooled first pass across mixed building types. Age earns a multiplier in only 3 of 12 segments and inverts in retail. The cut lists 25,912 buildings; the current office comparison is 1.74x.
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
Commonly quoted per-square-foot figures span a 14x range. We measured it: the published floor-area fit has r-squared 0.093. Learn when a building-type and size-band comparison is more useful than a per-foot rate.

About the author
Sam Yang
Founder & CEO
Founder of Level, the always-on finance team for contractors, service businesses, and ecommerce brands. 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 job revenue) across operating, private-equity, and CFO roles anchors the Level Index benchmark research.
LinkedIn