The Level Index
Contractors2,200+ contractors benchmarked.
Where do you rank?
Contractor benchmarks from the founding team's analysis of 2,200+ HVAC, plumbing, electrical, mechanical, roofing, and general contractors, across operating, private-equity, and CFO roles. These are the numbers that separate the top performers from everyone else.
Built across operating, private-equity, and CFO roles (financial reviews, operator interviews, and due diligence), layered with named public sources. All figures anonymized and rounded. How we built the Level Index.
2,200+
Contractors benchmarked
9
Core operating metrics
6
Job types analyzed
All 50
States represented
How these figures are derived
Sample size, definition, and the date each metric was last re-run. Every current value below resolves from contractor.json, which is the only authority for what a Level number is.
About the Data
Compiled from our team’s direct experience across 2,200+ contractors, operations analytics with PE-backed portfolios, financial reviews, due diligence, tax consulting, and published research.
Methodology
All metrics are anonymized, aggregated, and segmented by percentile. Figures are rounded and represent directional benchmarks. This analysis is observational and does not establish causality.
The Level CLEAR Framework
Five pillars of contractor financial health
Every metric in the Level Index maps to one of five pillars. Together they give you a complete picture of where money is made, lost, stuck, or at risk.
C
Cash
Is your cash flowing, or stuck in someone else's bank?
L
Labor
Is your workforce generating returns, or draining them?
E
Earnings
Are you pricing profitably and keeping what you earn?
A
Accounts
Are you winning new work, and keeping it?
R
Risk
Are you exposed to concentration, churn, or market shifts?
Your cash is tied up in receivables. The spread tells you how much.
Collection Rate (% of Billed Revenue Collected)
Not all outstanding AR is 'lost', some is normal working capital. But the spread matters: at 8% cost of capital, every $1M in outstanding AR costs $80K/year. The contractors with the best cash positions turn invoices into cash fastest.
Key Takeaway
Median: 85.1% collected. Top 10%: 96.0%. At $10M revenue, that 11-point gap = $1.1M more cash sitting in AR. At 8% cost of capital, carrying that costs $88K/year in financing alone.
Why This Matters
This is a point-in-time snapshot, not all outstanding AR is lost. But construction bad debt commonly runs 1.5-3% of credit sales, and recovery probability falls sharply as a receivable ages past 90 days. Contractors who escalate early minimize both financing cost and permanent write-offs.
Some outstanding AR is normal, invoices not yet due, retainage (5-10% on commercial work), recent billing. But the spread between contractors reveals real differences in AR management. A contractor at 71% (P25) operates fundamentally differently than one at 96% (P90).
The credit risk compounds. Construction bad debt commonly runs 1.5-3% of credit sales. For a $10M contractor, that’s $200K/year written off. The Commercial Collection Agencies of America collectability curve, a general commercial-collections benchmark, shows recovery probability falling sharply as a receivable ages past 90 days. The contractors with the best cash positions escalate at 30 days, not 90.
How we measured: Total cash collected / total invoiced revenue per company at time of measurement. This is a point-in-time AR snapshot, not a permanent loss rate. Does not distinguish between AR not yet due, retainage, and past-due receivables. Excludes companies with under $100K invoiced and those with partial-year data. n=464.
Most contractors wait a week to invoice. The best bill before the job closes.
Billing Speed (Days from Job Completion to Invoice)
*Typical = median among post-completion invoicers (excludes the ~25% who progress-bill). The raw median of 1 day is misleading. Most contractors wait a week.
Key Takeaway
~25% of contractors progress-bill before completion. Among the rest, the typical delay is 7 days. One in four waits 14+ days. Bottom 10%: a full month. The often-cited 1-day median is misleading, it blends progress billers with everyone else.
Why This Matters
Every day between completion and invoice is a day you’re financing your customer’s project. On a $50K job, a 30-day delay at 8% cost of capital costs $330 in pure float. Across hundreds of jobs per year, invoice speed is a cash flow strategy, not an admin task.
Progress billers have flipped the cycle, collecting cash while work is still in progress. The rest are playing catch-up. The fastest non-progress billers invoice same-day. The slowest wait a month.
Owners who complain about cash flow often have an invoicing speed problem, not a revenue problem. The contractors with the best cash positions aren’t the ones with the most revenue, they’re the ones who bill fastest.
How we measured: Days between job completion date and first invoice date. Negative = invoiced before completion (progress billing). The chart shows both the raw distribution and the adjusted median excluding progress billers. n=733 companies with at least 10 completed jobs.
Of the hours your techs log on jobs, how many actually get billed?
Billing Capture Rate (% of Logged Hours Invoiced)
This is billing capture, not utilization: hours invoiced divided by hours logged on jobs, median 97.1% across 963 companies. It reads high because the denominator is already job-assigned hours, not total paid hours. Industry 'utilization' (65-80%) divides by all paid hours including drive time, admin, and training, so the two numbers are not comparable. The bottom decile (67%) is where the real revenue leakage lives.
Key Takeaway
Median: 97.1% (n=963 companies). The denominator matters: this is hours invoiced divided by hours LOGGED ON JOBS, not hours paid. Bottom 10%: 66.9%, a third of on-job labor never makes it to an invoice. This is NOT utilization (the 65-80% industry benchmark divides by total paid hours, including drive time, admin, and training).
Why This Matters
A company can have 97% billing capture but 70% utilization, they’re measuring different things. The real problem is at the bottom: companies billing only 67% of logged hours have a process breakdown between field work and invoicing, not an idle-time problem.
Top quartile hits 100%. Some exceed it through overtime billing at premium rates. The bottom 10% lose a third of logged hours, for a crew of 10 techs, that’s significant revenue leakage from work already completed.
The fix: a weekly reconciliation of hours logged vs. hours invoiced per job. Most FSM platforms can generate this automatically. The gap almost always lives in add-on tasks, diagnostic visits, and T&M overruns that don’t make it onto the invoice.
How we measured: Total hours billed to customers / total hours logged on jobs. This is NOT the same as 'technician utilization' cited by industry sources (65-80%), which measures billable hours ÷ total paid hours including drive time, admin, training, and idle time. Our metric is narrower, it only measures the invoicing capture rate of hours already assigned to a job. Values over 100% occur when overtime hours are billed at premium rates (e.g., 1.5x). n=963 companies with at least 100 logged hours.
Industry research says 15-25% of T&M labor is never invoiced. Our data shows why.
Job Invoice Status (% of All Jobs)
46% of jobs are fully invoiced. ~34% are explainable (in progress or internal). But ~20%, partial and unclassified, represent likely missed revenue. A weekly "completed + no invoice" report recovers $75K-$180K/year.
Key Takeaway
Only 46% of jobs in our dataset are fully invoiced. ~34% are explainable (in progress, internal/warranty). The remaining ~20%, partial and unclassified, represent likely missed revenue. Industry research confirms: manual T&M tracking captures only 75-85% of billable work.
Why This Matters
This isn’t about slow-paying customers. It’s work that falls through the cracks: add-on tasks without work orders, diagnostics rolled into broader projects, T&M overruns nobody tracks. The money leaves as payroll and never comes back as revenue.
For a $5M contractor with 40% T&M revenue, 15-25% unbilled = $100K-$500K/year in labor already paid for and never billed (ServiceTitan, Sera Systems).
The fix: a weekly report of completed jobs with logged hours and no invoice. Most FSM platforms generate this automatically. Contractors who run it find 3-7 missed invoices per week, $75K-$180K/year recovered with zero new work.
How we measured: Job invoice status from 3.84M jobs across 2,242 contractors. 'In Progress' includes jobs not yet completed. 'Internal/Warranty' includes explicitly no-charge work. Not every uninvoiced job represents lost revenue, many are sub-tasks, PM visits billed under SAs, or multi-phase projects invoiced at a parent level. The 15-25% unbilled T&M figure is from industry research (ServiceTitan, Sera Systems), not derived solely from our dataset.
A journeyman bills $145K/year. A trained lead tech: $350K+. Are you building that pipeline?
Estimated Annual Billable Revenue per Employee
The revenue gap between skill levels is the single best argument for investing in retention and training. Every journeyman who walks costs you $145K in billing capacity plus $12K+ to replace.
Key Takeaway
Helper: ~$55K/year. Apprentice: ~$65K. Technician: ~$100K. Journeyman: ~$145K. Foreman/lead tech: $250-$350K+. Industry target: 5x total compensation in revenue per tech. Well-run companies average $380K per tech overall.
Why This Matters
A journeyman on $60K comp billing $145K = 2.4x return. A lead tech on $85K billing $350K = 4.1x. Minimizing wages optimizes the wrong number. The ROI is in developing and retaining your highest producers, and construction separations run about 4.0% of employment every month (BLS JOLTS, 2025), so the seats do not stay filled by themselves.
Bill rates from our data: helpers $34/hr, apprentices $39/hr, technicians $54/hr, journeymen $76/hr. Multiply by billable hours (1,600-1,900/year) to get annual revenue. Foremen and lead techs, who manage crews, handle complex jobs, and upsell, reach $250K-$350K+. Trained selling techs: $700K-$1M+. Foreman and selling-tech revenue figures are directional (Level engagement observation), not a published distribution.
Replacement cost per departure: $4,500-$12,000+ plus 8-12 weeks to productivity, a fully-loaded estimate (recruiting, onboarding, training, the productivity gap during ramp), not a published distribution. Multiply it by your own separation count for the last 12 months. See [Finding L.2](#turnover) for the industry churn backdrop and an estimated per-occupation ladder derived from BLS median job tenure. Note that BLS does not MEASURE turnover by role anywhere, so there is no published skilled-trades rate to plug in here, only a derived one.
How we measured: Helper through journeyman: bill rate medians from 18,000+ field employees across 2,200+ contractors in Level's benchmark research, multiplied by estimated annual billable hours (1,600 for helpers scaling to 1,900 for journeymen). Foreman/lead tech revenue and the compensation-multiple rule of thumb are directional (Level engagement observation), not a published distribution. Revenue estimates vary by trade, region, mix of service vs. project work, and whether techs are trained to recommend/upsell.
Construction hired 3.99M people in 2025 and lost 3.97M. Your office churns faster than your field crew.
ESTIMATED annual separation rate by occupation, derived from BLS median job tenure (Jan 2024)
The industry anchor is measured: 3.99M hires against 3.97M separations on an 8.27M base, about 48% of employment in separation events, so nearly every hire replaced a departure. The per-occupation ladder is an ESTIMATE, not a measurement: it converts BLS median job tenure into an implied annual rate as r = 1 - 0.5^(1/T), and it inverts the familiar claim. Field trades hold their seats longer than the back office. Management is the stickiest at about 12%, transportation and material moving the least at about 20%, and construction and extraction sits at about 16%, below office and administrative support at about 18%.
Key Takeaway
BLS JOLTS, construction sector, 2025: 3,987,000 hires against 3,966,000 total separations, on an industry that averaged 8.27M jobs. Net change from all that churn: about 21,000 jobs. JOLTS does not break that out by role, so the ladder below is an ESTIMATE derived from a different BLS survey: median job tenure by occupation. It runs the opposite direction to the usual claim. Construction and extraction workers hold jobs LONGER (4.1 years) than office and administrative support (3.6 years).
Why This Matters
Nearly every hire in the sector replaced a departure rather than adding capacity. Your recruiting line is not a growth expense, it is a maintenance expense, and the P&L files it under “recruiting” and “training” where it never gets measured against the billing capacity it was supposed to protect. And if you have been budgeting retention spend on the assumption that the trades are your leak, the tenure data says check the back office first.
A separation is not free. You pay to recruit, to onboard, to train, and you pay again in the weeks the seat produces below capacity. From finding L.1, the billable-revenue spread between a journeyman and an apprentice is wide enough that a single downgraded slot costs real money for every week it stays downgraded.
JOLTS has no role breakout, and BLS says so plainly. Asked directly whether JOLTS breaks out data by occupation, BLS answers: “No, JOLTS does not collect occupation information.” So any by-role construction turnover rate attributed to JOLTS is invented. Sanity-check any by-role rate you are shown against the industry-wide separation rate below: a figure for the least churn-prone segment cannot exceed it, and the ones circulating in trade press routinely do.
How the ladder below is built, so you can redo it. BLS does publish median years of job tenure by occupation, in the biennial Employee Tenure release (January 2024, the most recent). Turning a median tenure into an annual separation rate takes one assumption: that separations arrive at a constant hazard rate, the way radioactive decay does. Under that assumption the annual rate is r = 1 - 0.5^(1/T), where T is median tenure in years. For construction and extraction, T = 4.1, so r = 1 - 0.5^(1/4.1) = 15.6%. That is the whole calculation. Do it yourself from table 6 of the release.
Why the estimate lands far below the 48% industry rate, and why both are right. The 48% counts EVENTS: a laid-off framer rehired in spring is two separations and two hires in one year, and construction runs more layoffs (2.06M) than quits (1.74M), which is the reverse of the whole economy, where quits (38.0M) run far ahead of layoffs (21.2M). The tenure estimate counts PEOPLE leaving a relationship. Seasonal recall inflates the event count without shortening anyone's tenure. Read 48% as “how much churn crosses your payroll” and the 12% to 20% ladder as “how fast a given seat turns over for good.”
The one trend worth watching. Installation, maintenance, and repair, which is where service techs sit, fell from 5.4 years of median tenure in 2014 to 3.9 in 2024. That is the steepest decline of any group on this chart, while construction and extraction went the other way, 3.7 up to 4.1. Service retention is genuinely deteriorating. Field construction retention is not.
What to measure instead of any national rate: your own separations per role over the last 12 months, the weeks each seat sat vacant or downgraded, and the billable capacity that went with it. Occupation averages cannot price your specific vacancy. That is a number you can move.
How we measured: TWO SOURCES, ONE MEASURED AND ONE DERIVED. (1) MEASURED, industry level: U.S. Bureau of Labor Statistics, Job Openings and Labor Turnover Survey (JOLTS), construction sector (NAICS 23), calendar year 2025, not seasonally adjusted, annual totals: hires 3,987,000 (series JTU230000000000000HIL), total separations 3,966,000 (JTU230000000000000TSL), quits 1,741,000 (JTU230000000000000QUL), layoffs and discharges 2,059,000 (JTU230000000000000LDL), other separations 166,000 (JTU230000000000000OSL). Monthly rates averaged 4.0% for both hires and total separations. Employment base is BLS Current Employment Statistics, construction, 2025 annual average 8,267,000 (CEU2000000001), so 3,966,000 / 8,267,000 = 48.0% of average employment in separation EVENTS, which counts the same person twice if they are laid off and recalled. Total nonfarm 2025 comparison, same survey: quits 38,029,000 (JTU000000000000000QUL) against layoffs and discharges 21,239,000 (JTU000000000000000LDL), the reverse of construction's ordering. Verify at https://data.bls.gov/timeseries/JTU230000000000000TSL or via the free BLS API. BLS states that JOLTS does NOT break these flows out by occupation or role: see the JOLTS FAQ, question 'Does JOLTS break out data by occupation?', answered 'No, JOLTS does not collect occupation information' (https://www.bls.gov/jlt/jltfaq.htm). No per-role rate is or can be cited to JOLTS. (2) DERIVED, occupation level, LABELLED AN ESTIMATE ON THE CHART: source is BLS Employee Tenure news release USDL-24-1971, released September 26, 2024, reporting the January 2024 supplement to the Current Population Survey (about 60,000 households), table 6, median years of tenure with current employer by occupation (https://www.bls.gov/news.release/tenure.t06.htm, summary at https://www.bls.gov/news.release/tenure.nr0.htm). Median tenure in years, January 2024: management 5.7, architecture and engineering 4.9, construction and extraction 4.1, installation maintenance and repair 3.9, office and administrative support 3.6, transportation and material moving 3.2, all wage and salary workers 3.9. CONVERSION METHOD, reproducible from those medians alone: assuming a constant separation hazard, the share of a cohort still employed after t years is 0.5^(t/T) where T is median tenure, so the implied annual separation rate is r = 1 - 0.5^(1/T). Worked example, construction and extraction: T = 4.1, 0.5^(1/4.1) = 0.8445, r = 15.6%. Applying the same formula: management 11.5%, architecture and engineering 13.2%, installation maintenance and repair 16.3%, office and administrative support 17.5%, transportation and material moving 19.5%. THE ASSUMPTION THIS RESTS ON, stated plainly because it is the weak link: real separation risk is NOT constant, it is front-loaded, since new hires leave at higher rates than long-tenured ones, so a constant-hazard conversion UNDERSTATES the true annual rate, and it understates it more for occupations with heavy short-tenure churn. Treat the ladder as a floor on relative ranking, not a precise level. Two further limits: these are ALL-INDUSTRY occupation medians, not construction-only cuts, because BLS does not publish tenure by occupation WITHIN construction, and the release is biennial, so January 2024 is the most recent reading. Occupation groups are the categories BLS actually publishes and they do NOT map onto contractor role titles: 'construction and extraction' covers field trades including electricians, plumbers, carpenters and laborers but NOT service technicians, who sit in 'installation, maintenance, and repair'; 'office and administrative support' is the closest published analogue to a contractor back office; project managers and supervisors are split across 'management' and 'construction and extraction' and cannot be isolated. Trend figures cited above are from the same table 6, January 2014 versus January 2024, noting that occupation coding changed with the 2018 Census classification in January 2020 and BLS cautions the series is not strictly comparable across that break. Nothing on this card comes from Level's contractor dataset: those records carry employees but no termination dates, so they cannot produce a turnover rate at all. Level does not publish a by-role trades turnover benchmark, and the derived ladder above is labelled an estimate precisely so it is not read as one.
Same trade, same market, wildly different margins. Why?
Service Agreement Gross Margin
Some contractors lose 30% on every service agreement. Others make 70%. Same trade, same market. The drivers: pricing, scope control, customer mix, and cost visibility.
Key Takeaway
Across 259 contractors: bottom 10% lose 30% on every SA. Top 10% make 70%. The median sits at 37.9%. Residential-only benchmarks cite 55-75%, our lower median reflects a commercial-heavy mix with equipment costs and multi-visit scopes.
Why This Matters
91% of jobs in our dataset have revenue but no cost data attached. Without job-level cost visibility, profitable SAs silently subsidize unprofitable ones. The contractors who see their cost-to-serve adjust pricing. The rest keep guessing.
Four levers explain the 100-point spread: pricing discipline (charging enough for scope), scope control (SAs creeping into free work), customer mix (high-maintenance vs. clean accounts), and cost visibility (knowing your true cost to serve each agreement).
No single factor dominates, which is exactly why it requires a CFO lens, not just an operational fix.
How we measured: Gross margin = (SA revenue − direct labor − parts) / SA revenue. Calculated per company across all active SAs. n=259 companies with at least $10K in SA revenue. Blends residential and commercial SAs. Internet benchmarks for residential-only maintenance plans cite 55-75% gross margins, our lower median (37.9%) reflects the commercial-heavy mix in our dataset, where SAs include equipment costs, multi-visit scopes, and subcontracted work. Our P75 (53.5%) and P90 (70.3%) align with residential-focused benchmarks.
You're probably undercharging. The data says so.
Average Bill Rate by Company ($/hr)
A $30/hr rate increase across 10 techs = $600K per year. Many contractors in our sample price based on what they've always charged, not what the market will bear. These rates are the labor component, your total customer charge will be higher after trip fees, materials, and overhead.
Key Takeaway
Median bill rate: $79/hr. Top quartile: $116/hr. Top 10%: $147/hr. These are the labor component per tech hour, total customer charges are higher after trip fees, materials, and overhead markup.
Why This Matters
A $30/hr rate increase across 10 techs working 2,000 hours/year = $600K in annual revenue. Most contractors price based on what they’ve always charged, not what the market bears. That’s not a pricing decision, it’s a business model decision.
Bill rates vary dramatically by state: IL averages $128/hr, CA $113/hr, MS $74/hr. Our dataset skews commercial (HVAC, mechanical, plumbing, electrical). Residential rates may differ, but the relative ranking holds, high-cost-of-living states consistently charge more.
The compounding effect is what matters. $30/hr × 10 techs × 2,000 hours = $600K/year. Contractors who benchmark rates against market data capture this. Those who don’t leave it on the table permanently.
How we measured: Based on rate card data from 1,770 contractors in Level's proprietary benchmark research. Important: this field is used inconsistently. Some companies enter customer billing rates ($100-$200+/hr), others enter loaded labor cost or base wages ($25-$60/hr). The $79/hr median reflects a blend. Companies using this as a true customer bill rate cluster at P75-P90 ($116-$148/hr), consistent with internet consensus for commercial billing ($100-$200/hr). Blended across HVAC, mechanical, plumbing, and electrical. States with <35 companies have thin samples.
The median job lands on budget. The average job runs 19% over. Both are true, and that is the problem.
Labor Hours: Actual as % of Budgeted (100% = on budget)
Median actual-to-budgeted labor hours is 99.4%, right on budget. The mean is 119%. The gap between those two numbers IS the finding: 40% of jobs exceed their hour budget and 18.3% exceed 150% of it, so a healthy-looking median sits on top of a tail that eats margin.
Key Takeaway
Actual labor hours as a share of budgeted hours, across 315,393 jobs: median 99.4%, essentially on budget. But the mean is 119%, and 40% of jobs exceed their hour budget, with 18.3% blowing past 150% of it. P25 is 70.1% and P75 is 131.1%.
Why This Matters
A median that sits on budget makes estimating look solved, so nobody goes looking. The mean is where the money is: a long tail of jobs at 150%+ of budgeted hours, each one quietly converting a bid margin into a break-even job. You cannot see the tail in an average-of-averages report, which is exactly why it survives.
Read the median and the mean together. Half of jobs come in at or under budget, which is why the median sits at 99.4%. The mean at 119% is dragged up by the 18.3% of jobs past 150% of budget. Reporting only the median hides the tail; reporting only the mean makes a mostly-accurate estimating process look broken.
The spread is the actionable part. P25 at 70.1% means a quarter of jobs use well under the hours booked for them, which ties up crew capacity you could have sold. P75 at 131.1% means a quarter run meaningfully over. Both directions cost money: under-runs mean you padded and may have priced yourself out of neighboring bids, over-runs mean you won work you could not deliver at quoted economics.
Worst cases are worth naming. At the extreme, individual contractors run actual costs at roughly 2x to 6x estimate, sustained across hundreds or thousands of jobs, not a one-off bad bid. That is a scope-control failure, not an estimating error.
How we measured: Actual labor hours divided by budgeted labor hours, computed per JOB. 100% = on budget, above 100% = over. Measured across 315,393 jobs from 1,391 companies (Athena verification 2026-07-25). Read from canonical public/data/benchmarks/contractor.json, metric key labor_hours_actual_vs_budget, so this card cannot drift from the machine-readable dataset. Only jobs carrying BOTH a budgeted and an actual hour figure are included; jobs with no labor-hour budget are excluded rather than assumed on-target, since assuming them on-target is what makes a distribution look tighter than it is. This is an HOURS variance, not a cost variance: a dollar variance answers a different question (did the job cost what we priced) and the two are not interchangeable, so quoting one as the other misstates what was measured.
Half your jobs are short service calls. They are 9% of the dollars and the least likely to be costed.
Job Count vs. Revenue Share by Job Size (% within the reliable buckets)
51% of jobs are under 4 hours and they carry about 9% of revenue. That inversion is the point: the work that fills your week is the work least likely to have a cost coded against it, so it is also where you are least able to tell a profitable service call from a money-loser.
Key Takeaway
767,554 jobs under 4 hours make up 51% of the job count and about 9% of revenue. Jobs under 24 hours are 93% of the count and about 27% of revenue. The pattern is stable across every bucket: job count and revenue share run in opposite directions, and the smaller the job, the less likely anyone coded a cost to it.
Why This Matters
70%+ of contractors don’t do proper job costing (QuickBooks, Precision Accounting). Costs exist in payroll and AP but never get allocated to individual jobs. The [phantom margin problem](/blog/why-you-dont-know-your-real-job-margin) is worst on high-volume, low-dollar work, the jobs filling your schedule every day.
Among the 9% of jobs that DO have cost tracking, margins distribute normally at 20-50%, exactly what CFMA benchmarks predict. The problem isn’t that small jobs are unprofitable. The problem is that nobody knows which ones are.
If even 20% of those 767K small jobs are unprofitable, that’s $140M in revenue subsidizing losses that nobody can see. The fix: allocate costs to every job, not just the big ones.
Why the largest-hours bucket is not shown. Nearly all of the dollars in the 80-200 logged-hour tier sit in a single outlier record, one job out of roughly 16,000 in that tier, carrying revenue that is implausible on its face against the hours logged against it. That record is held out pending review, and with it held out the tier sits in line with the tiers on either side of it, so there is no economic difference here to report. The buckets stated on this card are the ones that stand on their own records. No revenue-concentration headline is drawn from this cut of the data: the answer moves with where the size cut is set, so it may not be publishable at all.
How we measured: Jobs bucketed by total logged hours, revenue from invoiced amounts, within the job-level cohort (about 1.5M individual jobs carrying a dollar value, roughly $7.8B), a subset of the full $13.25B dataset which also includes company-level records without clean job-by-job breakdowns. Covers contractors with at least $100K in annual revenue. The chart shows each bucket's share of JOB COUNT. Revenue shares of the full cohort: under 4hrs about 9%, 4-8hrs about 6%, 8-24hrs about 12%, 24-80hrs about 11%, 200+hrs about 8%. The 80-200 logged-hour tier is deliberately excluded from both the chart and the headline. A single outlier record, one job out of roughly 16,000 in that tier, holds close to nine tenths of the tier's dollars, and the revenue on that one record is implausible on its face against the hours logged against it. It is held out pending review. With it held out, the tier's revenue per logged labor hour sits in line with the tiers on either side of it, so there is no economic difference in that tier to report. No revenue-concentration headline is drawn from this cut of the data either: a handful of records hold a large share of all job dollars, so the answer moves with where the size cut is set, and it may not be publishable at all. 'No cost data' means the job has revenue but no labor, material, or subcontractor cost coded to it; the costs may exist in payroll and AP without being allocated. Industry surveys confirm 70%+ of contractors don't do proper job costing (QuickBooks, Precision Accounting). Among the 9% of jobs WITH cost data, margins distribute at 20-50%, consistent with CFMA benchmarks.
You're closing most quotes. But are you closing the right ones?
Quote Conversion Rate (% of Quotes Won)
Conversion rate is vanity. Conversion rate on profitable jobs is the real metric. The contractors who perform best pair conversion tracking with job-level margin data, they know which quotes to chase and which to let walk.
Key Takeaway
Median: 73.9% of decided quotes convert. Top quartile: 83.2%. Bottom 10%: under 49%, more than half their estimating effort produces zero revenue. Note: this is decided quotes only (yes or no), not total pipeline.
Why This Matters
Conversion rate alone is vanity. High conversion on low-margin work is worse than lower conversion on profitable work. Without job-level cost data, which 91% of jobs in our dataset lack, most contractors can’t tell the difference.
Every 10% improvement in conversion drops straight to topline. But a 10% improvement in converting the right quotes drops to the bottom line. The contractors who perform best pair conversion tracking with job-level profitability, they know which quotes to chase and which to let walk.
Industry sources citing 15-40% close rates measure total pipeline (including quotes that never got a decision). Our 73.9% only counts quotes where the customer said yes or no, a much cleaner signal of sales effectiveness.
How we measured: Won quotes / (Won + Lost quotes). Excludes pending, draft, and cancelled quotes. This measures decided-quote conversion, not total-pipeline conversion, which is why our 73.9% is much higher than the 15-40% close rates cited by industry sources (which measure total quotes sent ÷ jobs won, including quotes that never got a decision). Our denominator only includes quotes where the customer said yes or no. n=794 companies with at least 20 decided quotes.
Service agreement customers are worth 3-5x more over their lifetime. Most contractors leave that on the table.
Annual Pull-Through: Additional Revenue per $1 of Agreement Revenue
SA customers are worth 3-5x more over their lifetime, but only if you capture the downstream work. In any given year, the median contractor generates just $0.09 in additional revenue per $1 of agreement fees. Top quartile: $0.30. The gap on a $500K book = $105K/year left on the table.
Key Takeaway
The 3-5x is real: SA customers stay 5-10 years, 78% buy replacements from their provider, and average ~$15K lifetime value vs. $3-5K for one-time callers. But the multiplier compounds through annual pull-through, and the median contractor captures just 8.7% in additional work each year.
Why This Matters
On a $500K agreement book: $43K/year at median pull-through vs. $148K at P75, a $105K gap from customers you’re already visiting. No new marketing, no new trucks. The agreement fee is the entry point, not the profit center. The profit is in what each visit generates downstream.
The bottom 10% generate less than 0.3% in pull-through. Their techs complete the PM checklist and leave. Every visit that could surface a $3,000 repair becomes a $0 touchpoint.
P90 (93.4%) is skewed, it includes SA customers who also bring large project work. P75 (30%) is the realistic operational target: techs trained to recommend, quote on-site, and follow up. The gap between median and P75 is pure execution.
How we measured: The 3-5x lifetime value multiplier compares total lifetime spend of SA customers (~$15K residential) to one-time customers ($3-5K), a pattern widely cited across HVAC/plumbing operator literature. Annual pull-through = (non-agreement revenue from agreement customers) / (agreement revenue), measured in a single year, from Level's contractor benchmark research (n=386 companies). P90 (93.4%) likely includes large project work from SA accounts. P75 (29.6%) is the actionable benchmark. The 3-5x multiplier is the compounding effect of annual pull-through over a 5-10 year retained relationship.
Same maintenance visit, wildly different results. The gap is trade and tech.
Pull-Through Rate by Trade (% of Agreement Revenue → Add-On Work)
Mechanical pulls through 46% of agreement revenue. Plumbing: 5.5%. Same visit structure, same customer relationship, the difference is whether techs are trained to recommend and whether the office follows up. The lowest-performing trade has the most room to grow.
Key Takeaway
Mechanical: 45.9% pull-through. HVAC: 29.7%. Electrical: 18.3%. Plumbing: 5.5%. Across 240 contractors, 54,000+ SAs, and $412M in maintenance revenue. The trades with the lowest baseline have the most room to grow.
Why This Matters
Service-only techs average $150-$300 per call. Techs trained to recommend: $400-$700 (ServiceTitan, ACCA). Across 1,000 calls/year, one trained tech generates $250K-$400K more. No new customers, no new marketing. Just better execution on visits you’re already making.
This breaks down [Finding A.2](#pull-through) by trade. The gap isn’t market demand, it’s process. Mechanical leads because their systems (chillers, boilers) naturally surface replacement and upgrade opportunities during PM visits.
The SA attach rate gap mirrors the same pattern: 7-8% typical vs. 30-40% best-in-class. Plumbing and electrical have the most structural upside, the baseline is so low that even modest process changes (tech checklists, on-site quoting) produce outsized gains.
How we measured: Same methodology as Finding A.2 (pull-through), broken down by trade. Trade-level data: mechanical (n=45), HVAC (n=112), electrical (n=45), plumbing (n=38). Tech-level revenue-per-call data from industry sources (ServiceTitan, ACCA), not our dataset. See Finding A.2 for the overall pull-through methodology.
The median contractor gets 31.6% of revenue from one customer. SBA lenders flag at 25%.
% of Total Revenue from Single Largest Customer
The median contractor already exceeds the 25% SBA threshold. At 35%+ concentration, expect 10-20% valuation discounts. On $2M EBITDA, that’s a $4-$8M difference in your exit check.
Key Takeaway
Median: 31.6% from one customer. P90: 88.7% (typically a single GC or facility account). Our dataset skews commercial, one large GC or property manager can dominate the book. ‘Customer’ = account level, so a PM company with 50 buildings counts as one.
Why This Matters
Valuation impact: 25-35% concentration → up to 10% discount. 36-50% → 15-20%. 50%+ → 25-35% or deal restructuring. A diversified service contractor commands 7-9x EBITDA. Same business at 35% concentration: 4-5x. On $2M EBITDA, that’s a $4-$8M difference in your exit.
SBA lenders call customer concentration the #1 reason they decline acquisition loans. Most owners don’t know their number until a buyer or lender tells them it’s a problem.
Important nuance: actual operational diversification may be higher than the number suggests. But the financial risk, one decision-maker pulling all 50 buildings, is what lenders and buyers price. The threshold is the same regardless of trade mix.
How we measured: Revenue from top customer / total revenue, per company. ‘Customer’ = account level in the contractor’s system. A property management company with 50 buildings counts as one customer. n=959 companies with at least $100K in annual revenue. Our dataset skews commercial (HVAC, mechanical, plumbing, electrical), commercial contractors typically show higher concentration than residential due to fewer, larger accounts. Customer concentration above 25-30% is a well-established valuation-discount trigger in lower-middle-market M&A (buyers and lenders routinely flag it in diligence).
Multifamily permits fell 16%. Residential is flat. 499,000 new workers needed. Where does that leave you?
2024 Permit Change by Segment (Census / NAHB, YoY %)
Single-family is growing (+6.7%). Multifamily is contracting (−16% nationally, −27% in FL). The 2025-2026 outlook: total starts +1.1%, residential −8.8%, 499K new workers needed (ConstructConnect, AGC). Tighter competition, thinner margins, zero room for financial blind spots.
Key Takeaway
Single-family: +6.7% (Census/NAHB 2024). Multifamily: -16.1% nationally, -26.5% in FL, -24.1% in CA, -18% in TX. 2025-2026 outlook: total starts +1.1%, residential -8.8% (ConstructConnect). 149,000+ specialty trade contractors competing for the same work.
Why This Matters
In a growth market, sloppy financials are invisible. Revenue covers mistakes. In a mixed market with labor shortages (499K workers needed) and margin pressure, every mispriced job and uncollected invoice matters more. This is exactly when contractors need a CFO lens.
The competitive landscape hasn’t contracted to match. 64.7% of target contractors have been operating 16+ years, established businesses with legacy processes and no CFO. Fewer permits + labor shortages + tariff uncertainty = margin compression for anyone who doesn’t know their numbers.
Nonresidential is the bright spot, up 7.5%, driven by data centers and manufacturing megaprojects. But that’s concentrated growth, not broad-based. AIA’s 2026 consensus: 0.1-6.3% growth depending on sector. Acute shortages in HVAC, electrical, welding, and concrete.
How we measured: Residential permit data from U.S. Census Bureau Building Permits Survey and NAHB (2024 annual). Single-family: 981,911 (+6.7% YoY). Multifamily: 496,089 (−16.1% YoY). State multifamily declines from NAHB. 2025-2026 outlook from ConstructConnect Winter 2025 Forecast and AIA Consensus January 2026. Company count (149K) from public business registries and company records (NAICS 238x, $1-25M). Labor shortage from Walls & Ceilings / AGC 2026.
Want to know exactly where your company falls?
We'll pull your actual numbers and benchmark you against the industry. 15-minute call. Free.
Get the full report: The Level Index 2026
All 15 metrics, percentile tables, state-by-state bill rates, technician economics, and what top-quartile contractors do differently. Free PDF.
Based on operations data from 2,200+ contractor companies and PE-backed portfolio analysis. Primary metrics from operational/invoicing systems; some findings cite external labor, permit, and market sources.
Check your own numbers
Want to know where you actually rank? We'll show you and what to fix first.
The index shows what top performers do. Your own books show whether the leak is margin, labor, billing speed, WIP, customer concentration, or cash trapped in open jobs. Your numbers stay private, we never publish or share client data.
In the free audit, we check:
- •your margin, labor, billing, and cash metrics against the 2,200+ company peer range
- •whether your job costing, billing, and labor data are clean enough to trust
- •the first margin or cash leak to fix before the next close
We use this to prepare your audit before the call. Your numbers stay private.
Contractor Benchmarks by Job Type
ContractorsMargins vary dramatically by service type. These benchmarks are specific to contractors (HVAC, plumbing, electrical, roofing, GCs).
Service Calls
Typical gross margin: ~50% median (35-55%)
Maintenance Contracts
Typical gross margin: ~38% median (top quartile 53%)
Service Agreements
Typical gross margin: ~38% median (top quartile 53%)
Time & Materials
Typical gross margin: 35-45%
Install Projects
Typical gross margin: 15-25%
Commercial Projects
Typical gross margin: 10-20% (pass-through heavy)
Plus the operating deep-dives: labor productivity, sales and quote performance, collection gap and DSO, change orders, compensation design, finance software, and the full worked example.
Contractor Benchmarks by State
Bill rates vary significantly by state. Select yours to see state-specific data.
Benchmarks for other service businesses
Frequently Asked Questions
Common questions about the contractor benchmark dataset.
How many contractors does the Level Index cover?
The Level Index is drawn from the founding team's analysis of 2,200+ contractors across operating, private-equity, and CFO roles (financial reviews, interviews, PE due diligence, and tax consulting), plus published research, spanning HVAC, plumbing, electrical, mechanical, roofing, and general contractors across all 50 U.S. states.
What is the median gross margin for a service agreement?
The median service agreement gross margin is 37.9% in the Level Index. Top-quartile contractors hit 53%+. Contractors below 25% are typically underpricing SAs or not capturing pull-through revenue from maintenance visits.
What is a good collection rate for a contractor?
Median collection rate in the Level Index is 85.1%. Contractors should target 92-96%. The gap between 85% and 95% is real cash tied up in receivables, on $5M of billings, that's about $500K sitting uncollected at any given time. It is a point-in-time AR snapshot, not all permanently lost, but the longer it ages the more of it becomes a genuine write-off.
How fast should a contractor invoice after a job?
Median billing speed is 1 day when progress billing is included (about 25% of companies). Among post-completion invoicers, the adjusted median is 7 days. The bottom 10% wait 30+ days, that's a direct hit to working capital and collection probability.
What quote conversion rate should a contractor aim for?
The Level Index median is 73.9% on decided quotes. Top-decile contractors convert 92%+. The biggest lever is quote speed, quotes that sit longer than 7 days convert at half the rate of quotes sent within 24 hours.
How much does pull-through revenue actually add?
Median pull-through is 8.7% of SA revenue. Top-quartile contractors hit 29%+. On a $5M service agreement base, that's the difference between $435K and $1.45M of extra project work, and the margins on those follow-on jobs are typically 10-15 points higher.
From clients
What contractors say after working with us.
“We were doing $7M and I almost missed payroll twice in one quarter. Sam pulled the cash report apart line by line, turns out we had ~$340K in unbilled WIP sitting in the field. Got most of it billed and collected inside two weeks. The CFO retainer basically paid for itself the first month.”
“The eye-opener for me was when Sam showed me my biggest GC was actually losing me money on a fully-loaded basis. I'd been chasing that account for years. We repriced, lost them for 90 days, then they came back at better terms. That doesn't happen if nobody's running the math.”
“AR was a mess, $1.2M older than 60 days and probably $480K I'd written off in my head. Sam set up a weekly escalation cadence that we actually stuck to. Recovered about $620K in five months. Some of those calls were uncomfortable but they worked.”
Simple pricing
Three tiers, one ladder.
$99-$500/mo
Bookkeeping
The clean data layer: monthly books, reconciliations, and organized financials AI can work with.
$1,500-$5,000/mo
Scale
The full AI operating layer: custom agents, weekly actions, and benchmarks to grow margin per hour.
Custom
Platform / Multi-Office
Multi-branch benchmarking and scorecards for PE-backed and multi-location groups.
Want to know exactly where you fall?
We'll pull your numbers and rank you against the Level Index. Free audit included.
No commitment. Real numbers, not generic advice.
Disclaimer
The Level Index represents the personal analysis and professional opinions of the Level team, compiled from a variety of sources including financial reviews, industry interviews, private equity due diligence, tax and insurance consulting engagements, acquisition analysis, and published industry research. All data is anonymized and aggregated. Specific figures are rounded and should be treated as directional benchmarks, not precise measurements. No proprietary or confidential information from any single company, client, or employer is disclosed. The Level Index does not constitute financial advice. Individual results vary based on trade, geography, company size, and operational maturity. © 2026 Level. All rights reserved.
Every figure ships with its definition, sample size, and source. Free to cite with attribution to the Level Index. Download this dataset (JSON, free to cite)