Contractor Bill Rates by State and Trade (2026)

You're Probably Undercharging
If I could tell every contractor one thing, it would be this: test whether your bill rate still covers your real cost per billable hour. Run the cost build below before treating a percentile as a price recommendation.
From reviewing the financials of over 1,000 contractors, first in private equity evaluating contractor acquisitions, then building accounting products alongside 1,000+ commercial contractor teams, one pattern I have seen is a shop that priced labor when it started and never meaningfully repriced. That is one possible explanation, not a cause established by the percentile. A low recorded value can also reflect work mix, flat-rate pricing, or a field holding wage or cost instead of customer price.
When that happens, labor costs, insurance, vehicle expenses, and overhead keep climbing while the rate stays flat.
Below is what the Level Index rate-card field shows across 1,770 contractors. Read it with one limit in mind: some companies enter customer billing rates in that field, while others enter loaded cost or base wage, so these figures position you against recorded rate-card values, not certified customer prices.
National Bill Rate Benchmarks
| Percentile | Recorded rate-card value | How to read it |
|---|---|---|
| P10 | $39/hr | May be a wage or cost entry rather than a customer price. If it is your customer price, check job margin first. |
| P25 | $55/hr | Could be a low customer price or a loaded-cost entry. Your job margins tell you which problem you have. |
| Median | $79/hr | Middle of the recorded values across a cross-trade sample. |
| P75 | $116/hr | Upper quartile of recorded values. Does not by itself prove pricing discipline or a commercial mix. |
| P90 | $148/hr | Top decile of recorded values. Market, work type, and field usage can all contribute. |
Source: Level Index contractor research, the company-level recorded rate-card metric, n=1,770 contractors. The field mixes customer labor prices, loaded costs and base wages. It is not a verified distribution of customer billing rates, nor the total invoice after trip charges, materials and equipment.
The median across the sample is $79/hr. That number hides wide geographic and role-based variance.
About the trade cut: the sample spans HVAC, plumbing, electrical, mechanical, refrigeration, and fire protection contractors, but HVAC, plumbing, and electrical rates are not separately measured subsets in this data, so this page does not publish a trade-by-percentile table. To compare within your trade, use a matched population: your regular-hour customer labor rate for the same work type (service, install, or project) in your own market, compared against quotes you have actually won and lost there.
Bill Rates by State
Geography is one visible source of variance. The recorded values below are state averages from the rate-card field, so they carry the same mixed-entry limit as the national table. Per-state sample sizes are not published here, and the state cut has not been re-derived alongside the national figures, so treat it as directional.
| State / province | Average recorded rate-card value | Range | Notable |
|---|---|---|---|
| Illinois | $128/hr | $62-174 | Highest state average in this cut. Chicago commercial work is a possible driver, not a measured one. |
| Massachusetts | $118/hr | $50-196 | Wide range. Metro versus rural split not separately measured. |
| Washington | $118/hr | $57-187 | Seattle metro is a possible driver, not separately measured. |
| Alaska | $118/hr | $94-141 | Small sample; treat as low confidence. |
| California | $113/hr | $65-175 | Large variance. Metro commercial versus Central Valley residential mix not separately measured. |
| British Columbia | $112/hr | $68-154 | Canadian row; currency normalization and comparability with U.S. rows are not established here. |
| Oregon | $110/hr | $60-154 | Portland metro is a possible driver, not separately measured. |
| New York | ~$108/hr | $55-170 | NYC metro versus upstate split not separately published. |
Fictional example, not a market finding: a California shop bills customers $80/hr and sees the recorded state average of $113/hr. Because the state figure mixes customer bill rates with loaded cost and wage entries, that gap does not prove the shop is 29% below market. Use it as a prompt to check the shop's own numbers. Assume a loaded labor cost of $35/hr (a planning assumption; a $35 base wage would load higher, as shown below). Labor margin at $80 is ($80 - $35) / $80 = 56%. At $113 it would be ($113 - $35) / $113 = 69%. On 20,000 billed hours, the $33/hr difference is $660,000 of labor gross profit only if every hour is kept at the new rate. That is the assumption to test against your decided-quote conversion and customer contracts. Before any price change, pull job-level margin by job type and review local quotes you have actually lost on price.
Rate Cards by Role
Within any company, rates vary by role. Here are median rate-card values by field role from the Level Index, across 18,000+ field employees with tracked rate-card data:
| Role | Median rate-card value |
|---|---|
| Helper | $34 |
| Apprentice | $39 |
| Technician | $54 |
| Mechanic | $75 |
| Journeyman | $76 |
These recorded medians are not wage bands or a verified customer-price ladder. Neither the levels nor their differences establish pricing or profitability until field definitions are matched. An earlier version of this table showed per-role P25, P75, and P90 values, Superintendent / Foreman and Electrician rows, and per-role sample counts from a 1,567-company cut. Those figures do not reconcile with the current canonical role medians, so they are withheld until re-derived rather than shown alongside conflicting numbers.
Important caveat: This data comes from the "rate card" field in contractor management software, which companies use inconsistently. Some enter their customer billing rate, others enter loaded labor cost or even base wages. The medians reflect a blend of both, so neither the absolute values nor the spread establishes customer pricing, wages or a profitable markup. The two populations have not been separated, so do not assume any percentile band represents true customer bill rates.
For planning, commonly quoted ranges put commercial HVAC customer billing rates at $100-$200/hr (what the customer pays) and journeyman wages at $25-$45/hr (what the tech earns). These are illustrative ranges we have not verified against a defined sample. The ratio between your customer rate and your wage is your gross labor multiplier, and it needs to cover:
- Base wages + payroll taxes + benefits (the "loaded" labor cost)
- Vehicle/truck costs allocated per tech
- Tool and equipment usage
- A share of office overhead
- Profit margin
A common planning range is a 2.5-3.5x multiplier on the employee's fully loaded labor cost (base wage plus taxes, benefits, workers comp, and PTO, not just the base wage). This is an illustrative assumption, not a measured standard. A tech with a $50/hr loaded cost would be billed at $125-175/hr under that range. Markup and margin differ: a 2.5x multiplier is a 60% labor gross margin on price ($125 - $50 = $75, and $75 / $125 = 60%), and 3.5x is about 71%. Whether 2.5x covers your overhead depends on your overhead per billable hour, so check it directly: loaded cost + overhead per billable hour + target profit per hour is your minimum rate.
For a deeper breakdown of how rates shift from helpers and apprentices to journeymen and foremen, including BLS wage comparisons and markup multipliers, see our bill rate benchmarks by skill level.
Why Most Contractors Underprice
1. They Don't Know Their True Cost Per Hour
Most contractors calculate their bill rate based on labor cost plus a "reasonable" markup. But they undercount the labor cost.
True hourly cost includes the items below. The ranges are illustrative planning assumptions, not measured medians; replace them with your payroll and insurance figures:
- Base wage: $25-45/hr depending on trade and experience
- Payroll taxes: employer Social Security is 6.2% up to its annual wage base; employer Medicare is 1.45% without that cap. Together they total 7.65% on wages below the Social Security limit, before unemployment taxes. See IRS Topic 751.
- Workers comp: 5-15% of payroll in construction trades
- Health insurance: $500-1,500/month per employee
- Paid time off: equivalent of 10-15% of base wage
- Training time: 40-80 hours/year of non-billable time
Illustrative arithmetic using the planning ranges above: a tech earning $35/hr base carries roughly $46 to $57 per paid hour ($35 + $2.68 FICA + $1.75 to $5.25 workers comp + $2.88 to $8.65 health spread over 2,080 paid hours + $3.50 to $5.25 PTO), before state unemployment and training time. Use your own payroll register, not these ranges. If you're marking up from the base wage instead of the loaded cost, your margins are thinner than you think.
2. They Overestimate Billable Hours
The other common mistake: assuming techs are billable for 8 hours per day, 250 days per year (2,000 hours).
After vacation, sick days, training, drive time, admin time, callbacks, and weather delays, a planning range of 1,000-1,500 billable hours per year is a reasonable starting assumption, depending on trade, company size, and how tightly you track time. That is an illustrative range, not a measured median, and it is 25-50% fewer hours than the theoretical 2,000. Some software vendors publish lower figures for their own customer populations; those are vendor results, not Level measurements, and we have not verified them. Measure your own: billable hours divided by total paid hours per tech over the last 12 months. Do not substitute billing capture (hours invoiced divided by hours logged on jobs), which uses a different denominator.
Your bill rate needs to cover all your costs over actual billable hours, not theoretical hours. In a fictional example, if you need $150K in revenue per tech to cover all costs and profit, and your tech bills 1,200 hours per year, your minimum rate is $125/hr, not $75/hr based on 2,000 hours.
3. They're Afraid of Losing Customers
The common owner question is whether raising rates will cost jobs. It may cost some. We do not have a measured figure for how many customers contractors lose after a 10-15% increase, so test it on your own quote data rather than assuming the loss will be small or that the customers lost will be low-margin ones.
In the Level Index, the median quote conversion rate on decided quotes is 73.9% (won divided by won plus lost, pending quotes excluded, across 794 companies with at least 20 decided quotes). That is a cross-trade median, not a target for well-run contractors.
The breakeven test for a price increase is: new conversion must be at least old conversion × old gross profit per job ÷ new gross profit per job.
Fictional whole-job price example (a 10% labor-only rate change would not necessarily raise the total invoice by 10%): a $1,000 job with $600 of direct cost earns $400 gross profit. Raise the price 10% to $1,100 with the same cost and gross profit becomes $500. Breakeven conversion is 73.9% × $400 ÷ $500 = 59.1%.
| Scenario (per 100 decided quotes) | Conversion | Revenue | Gross profit |
|---|---|---|---|
| Current price | 73.9% | $73,900 | $29,560 |
| +10%, conversion falls to 68% | 68% | $74,800 | $34,000 |
| +10%, conversion falls to 55% | 55% | $60,500 | $27,500 |
In the second row revenue rises only about 1.2%, but gross profit rises about 15% because cost does not rise with price. In the third row the increase loses gross profit. Which row you land in is an empirical question for your market, so track decided-quote conversion before and after the change.
A high rate does not prove better technicians or better analysis. What protects margin is knowing your true costs and pricing from them.
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.
How to Benchmark Your Rates
Step 1: Calculate your loaded labor cost per billable hour. Add annual wages, employer payroll taxes, benefits, workers compensation and other direct technician costs. Divide by actual customer-billable hours for the same period, not paid hours or hours merely logged on jobs. Paid leave and training already included in annual wages should not be added again. Count truck and tool costs once, either here or in allocated overhead.
Step 2: Calculate your required markup. Your bill rate needs to cover loaded labor + allocated overhead + target profit margin. A 3x multiplier on loaded cost is a common planning assumption, not a measured norm; it equals a 66.7% labor gross margin on price.
Step 3: Compare to market. Use the tables above as directional context. Because they mix customer rates with cost and wage entries, a gap of 15% or more below your state's recorded average is a reason to check your job margins and lost-quote reasons, not proof that you are underpriced. Whether you sit above or below, verify your job-level profitability confirms the margin is actually there.
Step 4: Adjust. If you need to raise rates, do it on new customers immediately and existing customers at the next contract renewal, subject to any price-adjustment or notice terms in the signed contract, which override a general playbook. As an illustrative assumption, if your labor and material costs rose 3-8% a year, three years of flat rates would leave you about 9-26% behind cost on a compounded basis (1.03³ ≈ 1.09; 1.08³ ≈ 1.26). Replace those rates with your own cost history.
A Worked Minimum-Rate Check
Here is a fictional annual cost build for one technician. Replace each input with your own records; none is a market benchmark.
| Input or calculation | Illustrative value |
|---|---|
| Annual wages, including paid leave and training | $72,000 |
| Employer taxes, benefits and workers compensation | $24,000 |
| Total direct technician cost | $96,000 |
| Actual customer-billable hours | 1,200 |
| Direct cost per billable hour ($96,000 / 1,200) | $80 |
| Allocated annual overhead, including truck and tools | $30,000 |
| Overhead per billable hour ($30,000 / 1,200) | $25 |
| Break-even labor rate ($80 + $25) | $105/hr |
| Target operating margin on labor revenue | 20% |
| Required labor rate ($105 / (1 - 20%)) | $131.25/hr |
At $131.25/hr, assuming all 1,200 billable hours are delivered and invoiced at that rate without credits, this scenario earns $157,500 of annual labor revenue and $31,500 after the modeled $126,000 of direct cost and overhead. Revenue is not collected cash. That is a 20% operating margin on this labor model, not whole-company net profit. Margin uses selling price as the denominator: adding a 20% markup to $105 gives $126, which produces only a 16.7% margin.
This calculation assumes the labor charge covers the listed costs without separate fees. If trip charges or materials contribute toward the same overhead, reconcile those contributions so you do not recover the same allocation twice. For flat-rate jobs, compare the net labor portion of completed-job revenue with the hours required to deliver that work. Then test whether customers accept the required price. If the market will not support it, inspect job mix, dispatch, callbacks and overhead rather than assuming a state average solves the problem. Our gross profit per hour guide explains how to keep paid, job-logged and billable hours separate.
When Lower Rates Are the Right Strategy
Not every contractor should charge $150/hr. Here are legitimate reasons for lower rates:
Residential service in a price-sensitive market. If your customer base is homeowners in a market with many competing contractors, your rate ceiling is lower. But your volume should be higher and your overhead should be proportionally lower.
Apprentice-heavy workforce. If 60% of your field labor is apprentices at $18-22/hr, your loaded costs are genuinely lower, and a $75-85/hr bill rate can still produce healthy margins.
Volume/flat-rate model. Some contractors price low on hourly rates but make it up on flat-rate pricing for specific jobs. In this model, the hourly rate is less relevant, job-level margin is what matters.
Market entry. If you're new and building a customer base, lower introductory rates are a valid strategy. Just know when to raise them. The contractors who get stuck are the ones who never transition from "market entry" pricing to "established business" pricing.
The Bottom Line
The median recorded rate-card value is $79/hr and the 75th percentile is $116/hr (n=1,770, mixed field usage). Among the eight selected high-average jurisdictions shown, including British Columbia, recorded averages run from about $108/hr in New York to $128/hr in Illinois. Lower-average states are not shown.
If you haven't meaningfully raised your rates in 2+ years, recheck whether your rate still covers loaded cost, overhead, and target profit over actual billable hours. If labor costs, insurance, fuel, and overhead have climbed for you, your rates need to climb with them.
Price for what your work is worth and what the market supports. The contractors who build wealth aren't the ones working the most hours, they're the ones getting paid fairly for the hours they work.
Q: How does Level help with pricing strategy? A: We analyze your actual labor costs (loaded, not just base wages), calculate your true overhead rate, and compare your bill rate against the Level Index rate-card distribution and your own job margins. If the numbers show a gap, we model the impact of a rate increase on your revenue and profitability, including the conversion breakeven above. The first profitability discussion is free; analysis follows agreed records and scope.
Q: Should I use hourly billing or flat-rate pricing? A: It depends on your service mix. For service and repair work, flat-rate pricing (based on the job, not the hour) can produce higher margins because efficient techs don't get penalized for working fast. For project and install work, T&M or fixed-bid pricing is more common. We help contractors analyze which pricing model produces the best margin for each service type.
Source and Claim Note
The national and role tables reference Level's public contractor benchmark dataset. Read the metric definitions and eligible sample sizes in the Level Index. These are Level's proprietary contractor research records, not a nationwide price survey. The state table comes from an older analysis that has not been recalculated alongside the current national table. The planning ranges and minimum-rate example are illustrative. This October 15, 2026 editorial update does not change the underlying benchmark values or observation periods.
Related Reading
Use the hourly rate calculator to test your own costs and hours, and the quote conversion guide to assess price acceptance. If you need help joining payroll, field time and invoices, see Level's HVAC finance and operating support.
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