Direct Labor Hours: How to Find and Calculate Them
Direct labor hours are the hours your crew spends working on a specific job. Find them by taking the hours each person actually worked and keeping only the time attributable to a job — excluding shop time, driving, training, and paid leave. The formula is direct labor hours = total hours worked − indirect hours. CRMb counts them from the hours your crew punches against each job in Punch, so the figure comes from a timesheet rather than a recollection.
Almost every number that tells you whether a job made money sits on top of this one. Labor cost per job, your overhead rate, your margin, your bid for the next job of the same type — all of them start with "how many hours went into this?" Get that number from memory and every figure downstream inherits the error.
What counts as a direct labor hour
A direct labor hour is time spent by a person on work a customer is paying for, on an identifiable job. If you can point at a job and say "this hour went there," it is direct.
Direct labor hours:
- Framing, wiring, planting, cleaning, installing — the work itself
- Job-site setup and cleanup for that job
- A site visit to diagnose a problem you were called out for
- Rework on a specific job, even when you are not billing for it
Indirect labor hours:
- Shop time: loading the truck, maintaining tools, organizing stock
- Driving between jobs (see how to charge for drive time — billable is a separate question from direct)
- Estimating, quoting, and sales calls
- Training, safety meetings, and admin
- Paid time off, holidays, and idle time between jobs
The line that trips people up: indirect does not mean unpaid, and direct does not mean billable. You pay for a safety meeting, and it is still indirect. You eat the cost of a warranty callback, and those hours are still direct — they belong to that job, which is exactly why you want them counted there. A job that needed eight hours of free rework is a job that told you something about your pricing.
The direct labor hours formula
The calculation is subtraction, once the hours are categorized:
Direct labor hours = total hours worked − indirect hours
Per employee, per period:
Direct labor hours = hours on jobs (job A + job B + job C …)
And the ratio worth watching:
Direct labor hour ratio = direct labor hours ÷ total paid hours
That ratio is your labor utilization. A crew at 85% is spending most of its paid time on customer work. A crew at 55% is being paid for a lot of hours that no job is carrying, which is either a scheduling problem, a travel problem, or a pricing problem — and the ratio tells you which to go look at. The same idea, measured per person, is crew utilization rate.
How to find direct labor hours: a worked example
One technician, one week.
| Activity | Hours | Direct? |
|---|---|---|
| Job 101 — install | 14 | Direct |
| Job 102 — service call | 9 | Direct |
| Job 103 — warranty rework | 3 | Direct |
| Driving between sites | 6 | Indirect |
| Shop: restocking the truck | 4 | Indirect |
| Safety meeting | 2 | Indirect |
| Total paid | 38 | — |
Direct labor hours: 14 + 9 + 3 = 26.
Indirect hours: 6 + 4 + 2 = 12.
Direct labor hour ratio: 26 ÷ 38 = 68%.
Two things fall out of that table. First, Job 103's three hours of free rework are still direct hours — they cost real money and they belong to Job 103, so the job's true margin includes them. Second, 12 of 38 paid hours were not on any job. If your pricing assumes 38 billable hours a week from this technician, your pricing is wrong by about a third, and no amount of markup on materials fixes it.
Why direct labor hours are the base for overhead
Once you know your direct labor hours, you have the denominator most contractors use to spread overhead across jobs. Total overhead for a period, divided by direct labor hours in that period, gives an overhead rate per direct labor hour:
Overhead rate = total overhead ÷ direct labor hours
At $9,000 of monthly overhead and 500 direct labor hours, that is 9,000 ÷ 500 = $18 per direct labor hour. A job with 26 direct hours then carries 26 × 18 = $468 of overhead before profit. The full method is in how to calculate your overhead rate.
This is the reason an inflated hours figure is so expensive. Count indirect time as direct and your denominator grows, your overhead rate per hour shrinks, and every job looks like it carries its share when it does not. The business runs at a loss while the individual jobs all appear profitable — a pattern that usually surfaces a year late, at tax time.
Direct labor hours are not paid hours, and not billed hours
Three different numbers get called "hours," and conflating them is the most common error here:
- Paid hours — everything on the timesheet, direct and indirect, 38 in the example above.
- Direct labor hours — the subset attributable to jobs, 26.
- Billed hours — what the customer was invoiced for, which on a fixed-price job may be zero hours and one lump sum.
Payroll runs on paid hours. Job costing runs on direct labor hours. Invoicing runs on the contract. A fixed-price job still consumes direct labor hours even though the customer never sees an hourly figure, and those hours are exactly how you learn whether the fixed price was any good. For the cost side, see how to calculate labor cost per job.
Turning direct labor hours into cost
Hours are a quantity. To cost a job you need the hours multiplied by what an hour of that person actually costs you — the loaded, or burdened, rate. The bare wage is not it: payroll taxes, workers' compensation, and benefits typically add 15% to 30% on top.
Direct labor cost = direct labor hours × loaded hourly rate
At 26 direct hours and a $42 loaded rate, the job carries 26 × 42 = $1,092 of labor, plus its overhead share. Work the loaded rate out properly in how to calculate labor burden rate — calculating burden is where most of the error in labor costing lives, not in the hours.
Capturing the hours without a paper timesheet
The formula is easy. Getting trustworthy inputs is the hard part, because direct labor hours have to be recorded against a job while the work happens. Reconstructed on Friday from memory, they round to comfortable numbers and quietly understate the jobs that ran long — which are the only jobs with anything to teach you.
CRMb shares its backend with Punch, the time-tracking app. A crew member punches in at the job site from their phone, or from a shared iPad on the wall, and those hours land against that job. The job's labor cost is then built from real punched time at your loaded rate, and Reports put the margin you actually earned next to the margin you quoted. Capacity shows the scheduled hours ahead, so you can see the gap between hours you have sold and hours you can staff.
That closes the loop the whole exercise exists for: the direct labor hours from the last job of a type become the estimate for the next one. See how to estimate labor hours for a job for the forward-looking half, and post-job profitability review for the backward-looking one.
Frequently asked questions
How do you find direct labor hours?
Take each person's hours for the period and keep only the time booked to a job — the work itself, job-site setup and cleanup, site visits, and rework. Subtract everything else (driving, shop time, estimating, training, paid leave) as indirect. The cleanest way to find them is to record hours against a job as the work happens, so the split is already made when you need the number.
What is the direct labor hours formula?
Direct labor hours = total hours worked − indirect hours. Equivalently, add up the hours booked to each individual job. To get the utilization view, divide direct labor hours by total paid hours.
What is the difference between direct and indirect labor?
Direct labor is work attributable to a specific job a customer is paying for. Indirect labor supports the business without belonging to any one job — shop time, driving, estimating, admin, training, and paid leave. Both are real costs you pay; only direct labor can be assigned to a job, which is why indirect labor is recovered through your overhead rate instead.
Are direct labour hours the same thing as direct labor hours?
Yes — "labour" is the British and Canadian spelling, "labor" the American one. The concept, the formula, and the accounting treatment are identical.
Is drive time a direct labor hour?
Usually not. Travel between sites is normally indirect, recovered through your overhead rate, because it supports the day rather than belonging to one job. Some contractors do book travel directly to a job when a site is unusually remote and the trip exists only for that job. Either treatment works as long as you apply it consistently — inconsistency is what makes period-over-period comparisons meaningless.
Does rework count as direct labor?
Yes. Hours spent fixing a job belong to that job even when you are not billing for them, because the point of job costing is to learn what a job truly cost. Burying warranty rework in indirect time makes the original job look more profitable than it was and hides a quality or estimating problem worth finding — see how to track callback and warranty costs.
What is a good direct labor hour ratio?
It varies by trade and how much travel the work requires, but many field-service businesses run between 60% and 80% of paid hours as direct. What matters more than the benchmark is the trend: a ratio drifting down means more paid time is going to things no job is carrying, and your pricing has to cover it either way.
How do direct labor hours affect my bid?
They set the labor line and, through your overhead rate, a share of the overhead line too. Bidding from optimistic hours understates both at once, which is why bids built on real hours from finished jobs of the same type beat bids built on memory. See how to bid a construction job.
Getting started with CRMb
Direct labor hours only work as a management number when they are captured as the work happens. CRMb builds job labor from the hours your crew punches in Punch at your loaded rate, shows the margin those hours actually produced in Reports, and carries the result into your next estimate.
Start a 14-day free trial and cost your next job from hours you can point at.