Guides
How to calculate labor cost per job
Labor cost per job is the hours each person worked on the job multiplied by what an hour of their time really costs you: the wage plus payroll taxes, insurance and benefits. Get both numbers right and you can see whether a job made money on labor, and what to charge for the next one.
Below are the formula, the costs that are easy to miss, tracking hours by job and pricing new work from finished jobs. Example numbers are examples, not industry averages.
What is the formula for labor cost per job?
For each person on the job: hours on the job × loaded hourly cost. Add up the lines and you have the job’s labor cost. The loaded hourly cost is the wage plus everything you pay because that person is on your payroll.
- Hours on the job come from timesheets kept by job, not just by person. If a day was split between two jobs, each job gets its share.
- Wage is the person’s hourly rate on the day the work was done. If someone got a raise partway through the job, hours before the raise use the old rate.
- Burden is what you pay on top of the wage: the employer’s payroll taxes, workers’ comp and other insurance, and benefits.
- Loaded hourly cost = (yearly wages + yearly burden) ÷ paid hours per year.
The free labor burden calculator works out the loaded hourly cost from a wage and your burden figures. Run it once for each pay level on your crews and keep the results next to your price list.
Why does the wage alone underprice a job?
Because a $30 wage costs you more than $30 an hour. If you cost jobs at the wage, every job looks more profitable than it was, and quotes built on those numbers come in too low.
- Payroll taxes: the employer pays 6.2% Social Security and 1.45% Medicare on wages, 7.65% in total, and Social Security stops at a yearly wage base (IRS Topic 751). Federal unemployment tax applies to the first $7,000 of each person’s wages for the year, and state unemployment taxes have their own wage bases (IRS Topic 759).
- Workers’ comp and liability insurance: premiums depend on your state, your insurer and the type of work, so take the rate from your policy.
- Benefits: health cover, retirement contributions, and tool or phone allowances.
With the labor burden calculator’s example inputs (a $30 wage, 7.65% payroll taxes, 5% insurance and $6,000 a year in benefits), an hour costs $36.68, about 22% more than the wage. This is general information, not tax advice. Rates and wage bases change, so check yours with your accountant.
What do you do with hours no customer pays for?
Not every paid hour lands on a job. Driving between sites, loading the van, shop time, estimate visits and callbacks to fix earlier work are paid but rarely billed. There are two ways to handle them, and either works as long as you stick to one.
- Put them on the job when they belong to it. Travel to a single site, a return visit to finish the punch list or a morning spent collecting that job’s materials can be logged on the job. Its labor cost then shows what it really took.
- Spread the rest over billable hours. Time that belongs to no job, such as shop days, estimates and training, has to be recovered in your prices. The labor burden calculator divides the yearly cost by billable hours only, which gives the cost per billable hour.
In the calculator’s example, 20% non-billable time and 80 hours of paid time off push the cost per billable hour to $47.68, against $36.68 per paid hour. Use the cost per paid hour to cost finished jobs, and the cost per billable hour when you price new ones.
How do you track hours by job?
Labor cost per job is only as good as the hours behind it. Weekly totals per person won’t do: you need hours per person, per job, per day.
One row per person, job and day
If someone works on two jobs in a day, they get two rows. The free crew timesheet template is laid out this way, and a pivot table on it totals hours and pay by job.
One name per job
“Maple St.” and “Maple Street” become two jobs in any total. Agree on a job name or number before the first hour is logged.
Record the day while it’s fresh
Collect hours at the end of each day, from the foreman or from each person, not on Friday from memory. Add a short note for anything unusual: a return visit, waiting for materials, a late start.
If your crews don’t clock in on their phones, the guide to tracking crew hours without GPS sets out a daily routine for the foreman and the office.
How do you compare actual labor cost with the budget?
Give the job a labor budget before it starts, in hours and in money: the hours you priced times the loaded hourly cost. Then compare the hours logged so far against it while the job is still running, not after the final invoice. Here is an example: a two-day heat pump install priced at 30 crew hours.
| Step | Calculation | Result |
|---|---|---|
| Hours on the job | 2 people × 16 h, plus a 3 h return visit | 35 h |
| Cost at the wage only | 35 h × $30 | $1,050.00 |
| Labor cost, loaded | 35 h × $36.68 | $1,283.80 |
| Labor budget | 30 h × $36.68 | $1,100.40 |
| Over budget | 5 h × $36.68 | $183.40 |
Costed at the wage, this job looks $233.80 cheaper than it was. Materials are left out on purpose: keep them as a separate line, at what you paid for what the job used, so you can tell which side of the job ran over.
How do you price the next job from your history?
Each finished job tells you how long that kind of work really takes. After a handful of similar jobs, you have a better estimate than any rule of thumb.
- Group jobs by type: a single mini-split install, a panel upgrade, a 10 kW rooftop array. Compare like with like.
- Estimate in hours, not dollars. Take the actual hours from past jobs and multiply them by today’s cost per billable hour. Hours stay valid after a raise; old dollar totals don’t.
- Read the notes on jobs that ran over. A return visit or a missing part happens once. The same overrun on every job of that type means the estimate is wrong.
- Add materials, overhead and margin separately. Labor cost is one part of the price, not the price.
In the example above, 35 hours at the $47.68 cost per billable hour gives $1,668.80 of labor to cover before materials, overhead and profit. If the next similar job is priced at 30 hours again, expect the same overrun.
How does HiVis track labor cost per job?
In HiVis job costing, the office or a foreman enters hours per person, job and day. Each entry counts toward the job’s labor cost as soon as it’s entered, priced at the person’s hourly rate on that date, so a raise in March doesn’t change what January’s work cost. A job can have a labor budget, set in dollars, not hours, and HiVis emails the people who can see labor costs when spending gets close to it or goes over.
- Hours without a rate are shown separately instead of counting as zero.
- Materials issued from stock with a unit cost show on the project’s Materials tab as a separate net cost, not against the labor budget.
- Reports show hours and labor cost by project and by person, with CSV export.
Questions and answers
See your crews, hours and costs in one place
Book a 30-minute demo or start a 30-day trial. We set up your workspace and help move your data.