Gross Profit Per Hour for Contractors
Skilled labor is the scarce input, so the number that governs your profit is gross profit per human hour, not revenue. Labor carries 47.7% margin but 40% of jobs run over their hour budget. This is the playbook for pricing and protecting the hour.
47.7%
gross margin on labor lines vs ~30% on materials (2.2M+ line items)
40%
of contractor jobs run over their labor-hour budget (n=430)
99.4%
median actual-vs-budgeted labor hours, but the mean is 119%
Why the hour, not revenue, is the real unit of value
A contractor does not run out of demand. It runs out of skilled hours. The journeyman who can diagnose the failure, close the upsell, and finish clean is the constraint, and no amount of revenue growth relaxes it. That is why the number that actually governs a contractor's profit is gross profit per human hour, not top-line revenue or even gross margin percentage.
The data backs this up. Labor lines carry a 47.7% gross margin across 2.2M+ quote line items, nearly double the 23.6% on subcontracted work. Labor is about 29% of quoted revenue at the median but it is where the profit concentrates. Grow the hours that earn the most, protect them from waste, and the P&L follows.
The takeaway: You are not selling jobs. You are selling the hours of scarce, skilled people. Price and schedule the hour, and the job takes care of itself.
The 40% problem: most of the waste is in labor hours
Across 2,200+ contractors, the median job lands almost exactly on its labor-hour budget (99.4%), which sounds fine until you see the mean: 119%. A minority of runaway jobs drags the average up, and 40% of jobs exceed their hour budget while 18% run past 150% of it. The hours were already sold at a fixed price, so every hour over budget comes straight out of margin.
The reason it stays invisible is that most contractors measure labor at the company level, not the job level. Company payroll looks normal. The 40% of jobs bleeding hours never surface, because nobody compares budgeted to actual hours per job while the job is still open.
Pricing the hour: bill rate, role mix, and the apprentice cliff
Median rate-card rates run from about $34/hr for a helper to $76/hr for a journeyman, and the company-level average bill rate median is $79/hr with a top decile of $148/hr. The sharpest jump in the ladder is apprentice to journeyman, so your staffing mix moves margin more than small rate changes do.
Two shops at the same revenue can earn very different gross profit per hour purely on role mix and utilization. The one that keeps its journeymen billable on high-margin service labor, and its helpers supporting rather than fronting jobs, prints more profit from the same headcount. That is the lever, and it is a scheduling and pricing decision, not a hiring one.
Get the next one
Get next week's benchmark by email
Real numbers from 2,200+ service businesses. One email a week.
The fix: measure hours-vs-budget per job, while the job is open
The discipline is simple to state and hard to sustain: capture budgeted hours at bid time, track actual hours to the job (not just to payroll), and review the variance while the job is still open, not at closeout when the overrun is already unrecoverable. That single loop converts labor from a cost line you notice quarterly into a margin lever you steer weekly.
Level runs this across the field and accounting systems so gross profit per hour is a live number per job, crew, and technician, not a spreadsheet someone rebuilds after the quarter closes. When the runaway job shows up in week one instead of month three, you can still do something about it.
Use the data yourself
Frequently asked
What is gross profit per hour for a contractor?
Gross profit per human hour is job gross profit divided by the billable field hours that produced it. It reframes the business around its real constraint, skilled labor, instead of revenue. A contractor with lower revenue but higher gross profit per hour is healthier than a bigger shop burning hours on low-margin work, because skilled hours, not sales, are what run out.
Why is labor higher margin than materials or subcontracted work?
Across 2.2M+ contractor quote line items, labor carries about 47.7% gross margin versus roughly 30% on materials, 25.5% on equipment, and 23.6% on subcontracted work. Materials and equipment are supplier cost you mark up, and subcontractor work is mostly pass-through, so competition holds those margins near 25-34%. Labor margin is the spread between your billed rate and your fully burdened cost, which you control.
How many contractor jobs go over their labor-hour budget?
About 40% of jobs exceed their budgeted labor hours, and 18% run past 150% of budget, across 2,200+ contractors. The median job lands on budget at 99.4% of planned hours, but the mean is 119% because a minority of runaway jobs drags it up. Those overruns are pure margin loss, since the hours were sold at a fixed price.
How do I improve gross profit per hour?
Three moves: price labor for its real value (it earns the highest margin of any cost type), fix your role mix and utilization so journeymen stay on high-margin service work, and measure hours-vs-budget per job while the job is still open so overruns get caught in week one, not at closeout. Growing revenue without doing these just adds more low-margin hours.