Skip to main content
2,200+ contractors in the research universe benchmarked. Do you know your gross profit per labor hour? See where you stand →
Level
Practical guide

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.

Try the 2-min diagnostic

Financial evidence in practice

Which labor-hour denominator belongs in pricing?

Paid hours, operational hours and productive job hours answer different questions. A blended wage is not a loaded job-hour cost. Recover the declared nonproductive time and overhead once, with explicit estimating assumptions.

Run the check

  1. Tie the payroll numerator to service dates and employer cost.
  2. Define the three hour populations and approved employee aliases.
  3. Separate payroll burden from allocated overhead.
  4. Compare budget and actual hours on the same cost basis.

Fictional example: Paid, operational and productive labor hours

Fictional $4,800 payroll over 160 paid hours is $30 per paid hour; over 120 operational hours it is $40. With $1,200 allocated overhead and 80 productive hours, the estimating basis is $75 per productive hour. These rates answer different questions. A separate fictional operational budget of 100 hours and $6,000 payroll gives 20% more actual operational hours and 20% lower payroll, with a lower payroll rate on the same operational-hour basis.

Invented teaching inputs; downloadable files store these dollar amounts in USD cents.

Inspect the expected output
{
  "fictional": true,
  "unit": "USD cents",
  "id": "loaded-labor",
  "operationalHoursVariancePct": 20,
  "payrollVariancePct": -20,
  "budgetCostCentsPerOperationalHour": 6000,
  "paidCostCentsPerHour": 3000,
  "operationalCostCentsPerHour": 4000,
  "productiveCostCentsPerHour": 7500,
  "pricingAssumption": "All declared overhead allocated to productive hours; not a payroll wage or observed quote rate",
  "limitation": "This is teaching arithmetic from supplied invented inputs, not source authenticity, financial assurance or authority to post."
}
Reproduce this calculation

Download the code and input into one folder, then run:

node reproduce.mjs loaded-labor.input.json

The code checks declared units and identities and refuses unsupported inputs. No browser or customer account is used. Source authenticity and accounting approval require separate evidence.

Reviewed 2026-10-06. Level financial-control guidance, with visibly fictional teaching examples. The example shows a control boundary, not a measured customer outcome or industry benchmark.

Read this content revision history

Continue with the related financial decision →

47.7%

gross margin on labor lines vs ~31.5% on materials (2.2M+ line items)

40%

of contractor jobs run over their labor-hour budget (n=315,393 jobs)

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

Level research covers 2,242 contractors. Each benchmark uses its own eligible sample, shown with the metric. 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.

Find out what an hour of your crew actually earns.

We connect to your books and rank jobs, crews, and technicians by real gross profit per hour, not what your software shows.

2,200+ businesses benchmarked$13.25B in revenue analyzedWeekly action cadence

No credit card. Start with a 15-min call. We only follow up if we can actually help.

No commitment. Real numbers, not generic advice.