Try Updoot Free

When spreadsheets get messy, try Updoot

← Back to BlogHow smart managers are never chasing timesheets again.Never chase timesheetsShow me

How to Track Labor Costs by Job

How to Track Labor Costs by Job
Share LinkedIn Facebook

Quick Answer

To track labor costs by job, have employees record their time against a specific job or project, multiply those hours by a fully loaded labor rate that includes wages, overtime, employer taxes and benefits, and compare the result to the job estimate. Review estimate vs. actual after every job, look for patterns in jobs that run over and use what you learn to price and schedule future work.

Most service businesses know whether last month was profitable. Far fewer know which jobs made money and which ones quietly lost it. A job that looked great on the quote can turn into a loss after two extra days of labor, a callback and a crew that drove across town three times.

Tracking labor costs by job, often called job costing, shows you exactly where the money goes. This guide covers how to record time by job, how to calculate a fully loaded labor rate, how to compare estimates to actuals and how to use the results to price better and schedule smarter.

Note: This is general information, not accounting or tax advice. Confirm tax and benefit costs with your accountant or payroll provider.

What Is Job Costing for Labor?

Job costing is tracking the costs of each individual job, project or customer. Labor is usually the biggest and most variable piece, so labor job costing focuses on how many hours each job took and what those hours cost.

Overall labor costLabor cost by job
ShowsTotal labor for the businessLabor for each specific job
AnswersAre labor costs too high overall?Which jobs make or lose money?
Helps withBudgets and labor percentagePricing, estimating and scheduling

Both matter. See labor cost percentage for the big-picture view.

Why Track Labor by Job?

Step 1: Record Time by Job

Everything depends on accurate hours for each job. Employees need an easy way to record which job they're working on:

Make it as simple as possible. If recording the job takes more than a few seconds, people will skip it or guess. Also decide how to handle time that isn't tied to a specific job, such as travel between jobs, shop time, meetings and training.

Remember that all hours actually worked must be recorded and paid for non-exempt employees, whether or not they're assigned to a job. Job coding is for your cost tracking; it should never change what employees are paid for. See how to track employee hours.

Step 2: Calculate a Fully Loaded Labor Rate

Hourly wages alone understate what labor really costs. A fully loaded labor rate adds employer costs on top of pay:

Fully loaded hourly rate = (Wages + employer payroll taxes + benefits + workers' comp + other employer costs) ÷ Hours worked

Example

ItemAnnual amount
Wages ($22/hour × 2,000 hours)$44,000
Employer Social Security and Medicare (7.65%)$3,366
Unemployment taxes (estimate)$450
Workers' comp (estimate)$2,200
Health and other benefits (estimate)$5,000
Total cost$55,016
Fully loaded hourly rate ($55,016 ÷ 2,000)about $27.51

That's about 25% higher than the $22 wage. Using $22 in job costing would make every job look more profitable than it really is. According to the IRS, the employer share of Social Security is 6.2% on wages up to the annual wage base and Medicare is 1.45% with no cap. Your other costs will depend on your state, industry and benefits.

Some businesses also add a share of non-billable time, such as travel and shop time, into the job rate. Others track it separately. Pick one approach and use it consistently.

Step 3: Calculate Labor Cost for Each Job

Job labor cost = Hours on the job × Fully loaded rate (plus overtime premiums where they apply)

EmployeeHours on jobLoaded rateLabor cost
Lead tech14$31.00$434.00
Tech14$27.50$385.00
Helper10$21.00$210.00
Total38$1,029.00

If some of those hours were overtime, add the overtime premium. Overtime is calculated on all hours worked in the workweek, not per job, so the premium is often shared across the jobs worked that week or assigned to the jobs that caused the extra hours. Choose a method and apply it the same way each time.

Step 4: Compare Estimate vs. Actual

JobEstimated hoursActual hoursVarianceEstimated laborActual labor
Johnson install3238+6 (19%)$880$1,029
Lee repair43.5−0.5$110$96
Garcia replacement2027+7 (35%)$550$743

The Garcia job ran 35% over. Before quoting the next replacement job, find out why: was it a part delay, an unexpected problem, travel or an estimate that was too low to begin with?

Step 5: Find the Patterns

One job running over is a story. Several jobs running over is a pattern. Review job costing monthly and look for:

For a structured way to review what happened, see the project retrospective template.

Step 6: Use It to Price and Schedule

Job Costing Template

JobCustomerPriceEst. hoursActual hoursLoaded rateLabor costMaterialsGross profitMargin
[job #][name]$$$$$%
[job #][name]$$$$$%

A spreadsheet works well for this. Add a notes column for why a job ran over, and review it monthly.

Common Job Costing Mistakes

Worked Example: One Job, Start to Finish

An HVAC company quotes a furnace replacement at $6,500. The estimate assumes 16 crew hours, $3,200 in equipment and materials and a loaded labor rate of $28 an hour.

ItemEstimateActual
Crew hours1622
Labor cost ($28/hour)$448$616
Equipment and materials$3,200$3,350
Return trip for missing part$02 hours, included above
Gross profit$2,852$2,534
Gross margin43.9%39.0%

The job still made money, but almost five points less than planned. The review shows two causes: a missing part that needed a return trip, and older ductwork that took longer to connect. The fixes are simple: confirm all parts before the job date, and add a site visit before quoting older homes. The next similar job is quoted with a ductwork allowance and comes in on estimate.

Handling Non-Job Time

Not every paid hour belongs to a specific job. Common non-job time includes:

TypeExamplesHow to handle it
TravelDriving between jobs, supply runsAssign to jobs, or track as overhead
Shop and prepLoading trucks, cleaning toolsUsually overhead
Meetings and trainingHuddles, safety trainingOverhead
CallbacksReturning to fix a problemCharge back to the original job
AdminPaperwork, orderingOverhead

Track non-job time as its own category rather than letting it disappear. If non-job time is 20% of all hours, that's a real cost your prices need to cover. Charging callbacks back to the original job is especially useful, because it shows the true cost of rework. All of this time is paid work time for non-exempt employees, regardless of how you categorize it for costing.

Job Costing by Business Type

BusinessHow time is usually trackedWhat to watch
HVAC, plumbing, electricalJob code at clock-in or by work orderCallbacks, return trips, travel
Construction and remodelingBy project and phaseChange orders, waiting on other trades
Landscaping and lawn careBy route or propertyDrive time, weather delays
CleaningBy site or homeTime per site vs. estimate
Professional servicesBy client or projectNon-billable time, scope creep

Getting Crews to Track Time by Job

Job costing only works if crews record time accurately. A few things help:

Estimate Accuracy Over Time

Track estimate accuracy by job type each month: the percentage of jobs that finish within 10% of estimated hours. If accuracy improves, your quotes are getting better. If it doesn't, look at whether estimates are based on real data from past jobs or on hopeful guesses. Over a year, even small improvements in estimate accuracy can make a big difference in profit.

Job Costing Checklist

CheckDone?
Every employee records time by job
Fully loaded labor rate calculated and updated yearly
Non-job time tracked as its own category
Callbacks charged back to the original job
Overtime premium handled the same way every time
Estimate vs. actual reviewed after each larger job
Patterns reviewed monthly
Estimating guide updated with real averages

Start with the first three. Once crews are recording time by job and you have a realistic loaded rate, the rest gets much easier, and you'll quickly see which jobs are really paying the bills.

Using Job Costs to Have Better Pricing Conversations

Job costing data makes pricing conversations with customers easier. Instead of guessing, you can explain that similar jobs take a certain number of hours on average, and that older homes or hard-to-reach equipment usually add time. When you need to raise prices, real numbers from your own jobs make the case clearly, both to customers and to your team. Many owners find that once they see true labor costs by job type, a few services they thought were profitable were actually breaking even, and a small price change on those services makes a big difference to the bottom line.

Track Time by Job With Updoot

Updoot's employee time clock records every punch to the minute, with GPS punch locations so you can see where crews clocked in. The payroll report shows regular hours, overtime and PTO for every employee each pay period, and project management keeps each job's tasks, owners and due dates in one place. The KPI dashboard shows hours worked and budget vs. actual, so you can spot jobs and weeks that run over.

Sources

Related Reading

Labor Cost Percentage →

Labor Budget →

Employee Time Clock →

Frequently Asked Questions

What is job costing? ▶
Tracking the costs of each individual job, project or customer, including labor, materials and other direct costs.
How do you calculate labor cost for a job? ▶
Multiply the hours worked on the job by a fully loaded labor rate, and add any overtime premium that applies.
What is a fully loaded labor rate? ▶
The total hourly cost of an employee, including wages, employer payroll taxes, workers' comp, benefits and other employer costs.
How do employees track time by job? ▶
By choosing a job code when they clock in, switching jobs during the day, noting the job on their timesheet or recording times on work orders.
How is overtime handled in job costing? ▶
Overtime is based on all hours in the workweek, so the premium is usually shared across jobs or assigned to the jobs that caused the extra hours. Use one method consistently.
What should I do with travel and shop time? ▶
Either build it into your loaded rate or track it separately as overhead. All of it still has to be paid.
How often should I review job costs? ▶
After each larger job and monthly for patterns across all jobs.
Why do jobs run over estimate? ▶
Common causes are low estimates, rework, waiting on parts or approvals, travel time and unexpected problems.
How should travel time be handled in job costing? ▶
Either assign travel to the jobs it serves or track it as overhead. Either way, it's paid work time for non-exempt employees and needs to be covered in your prices.
How do you get crews to track time by job accurately? ▶
Explain why it matters, make it fast, don't use the data only to criticize, share results and fix wrong job codes weekly.

Ready to try Updoot free?

Record every punch to the minute with GPS locations, and see hours, overtime and budget vs. actual in one place. Free to start.

Start Free Today