Skip to content

Guide · Job costing

Construction labor job costing, step by step

Construction labor job costing charges each paid hour, at a loaded rate, to the job and cost code it served, then compares the running total with the estimate while the job is still open. It needs hours by job and code, a loaded rate that includes burden, and a written rule for time that belongs to no single job, such as drives and supply runs.

Last updated By ZeroBadge

This is general information, not legal advice. Laws differ by state and change over time. Check the primary sources below and talk to an employment lawyer about your situation.

What does labor job costing need to work?

It needs three inputs and one habit: hours by job and cost code, a loaded rate for each worker, a rule for shared time and a weekly look at the result. Take away any one and the report still prints, but it no longer says what the labor on a job really cost.

Hours by job and code
From the approved timesheet, not from memory on Friday. Hours with no location or code can be paid but cannot be costed without a guess.
A loaded rate
The wage plus payroll taxes, insurance and benefits, per hour you can charge to jobs. Costing at the bare wage understates every job. See how to calculate labor burden.
A shared-time rule
Where drives, supply runs, shop load-out and meetings are charged. Without it that time sits in a bucket nobody owns.
A weekly review
Compare the running total to the estimate every week while there is still time to change the job.

How should you set up labor cost codes?

Make each labor code match one line of the estimate you want to learn from, and keep the list short enough that a foreman can pick the right one without a manual. The number of codes is a trade-off: more codes tell the office more and cost the field more taps and more wrong picks.

An illustrative labor code list for tenant-improvement electrical work, matched to estimate lines
CodeEstimate lineCharge it when the crew is
100Conduit and box rough-inSetting boxes, bending and running conduit
200Wire pull and terminatePulling, making up and terminating wire
300Panels and gearSetting, wiring and labeling panels and switchgear
400Fixtures and trimHanging fixtures, devices and plates
900Punch listWorking the owner's or GC's list after substantial completion
Some contractors adopt a published numbering scheme. Others use a short list of their own. What matters is that the estimate and the field use the same one.
  • Keep rework visible with its own code or a flag. Rework buried in the original code makes the estimate look wrong when the install was fine.
  • Do not create a code for every task. Use the code that matches how you bid.
  • Change a code list between jobs, never during one. A mid-job change breaks every comparison to date.

If the field cannot tell you the code, a location can stand in for the job and the foreman can assign the code at the end of the day. Job-level costing first is better than code-level costing that nobody fills in. The glossary has short definitions of cost codes and job costing.

How do you allocate time that belongs to no single job?

Sort shared time into three buckets and write the rule for each: direct to one job, shared across jobs by a stated method, or overhead. Drives and supply runs are the usual shared time. The pay rule decides whether the minutes are paid, and the cost rule decides where they are charged, so write both.

Three buckets for time that is not on one site
BucketUse it forRule to write down
Direct to one jobA supply run for one job, the drive to a job when the crew came from the shop for itThe destination job carries it
Shared across jobsA supply run for two jobs, a drive between two jobs in one shiftA split method, applied the same way every time
OverheadShop time, safety meetings, training, a call-in dayA named overhead code, reviewed monthly

A split by on-site hours (illustrative, loaded rate assumed at $58.70)

Worker's shift
8.5 h
On site at Job A
4.0 h
On site at Job B
3.0 h
Shared: supply house stop 0.75 h plus the drive between jobs 0.75 h
1.5 h
Job A share of shared time: 1.5 × 4.0 ÷ 7.0
0.857 h
Job B share of shared time: 1.5 × 3.0 ÷ 7.0
0.643 h
Job A cost: (4.0 + 0.857) × $58.70
$285.11
Job B cost: (3.0 + 0.643) × $58.70
$213.84
Check: $285.11 + $213.84 = 8.5 × $58.70
$498.95

The split follows on-site hours, so the job that held the crew longer carries more of the shared time. Splitting by the materials bought is equally valid if you can document it. The test is that every minute lands once.

A day charged under other rules, and the single-day arithmetic, is worked through in tracking hours at multiple job sites. How drives are paid is a separate decision: see a company drive time policy.

Which job should carry the overtime premium?

That is your policy to set, and the choices are the job where the overtime hours were worked or a pro rata spread across every job the worker charged that week. Federal overtime is counted by workweek, not by job: covered employees get at least one and a half times the regular rate for hours over 40 in a workweek, and hours cannot be averaged across weeks (DOL Fact Sheet 23). So the premium belongs to the worker's week, and you decide which jobs share it.

One worker, 44 hours, two jobs, wage $40.00 (illustrative)

Monday to Wednesday at Job A
30 h
Thursday and Friday at Job B
14 h
Overtime hours (all fall at the end of the week, on Job B)
44 − 40 = 4 h
Premium owed: 4 × half of $40.00
$80.00 (wages and taxes on straight time are costed separately)
Rule 1, charge the job where the overtime hours fell
Job B $80.00, Job A $0.00
Rule 2, spread by hours: Job A 30 ÷ 44 × $80.00
$54.55
Rule 2: Job B 14 ÷ 44 × $80.00
$25.45
Both rules total the same premium
$80.00

Rule 1 makes the last job of the week look expensive. Rule 2 shares the cost but hides which job ran the crew past 40. Pick one, apply it to every job and show the premium as its own line so nobody mistakes it for a rate.

What does a worked job look like by cost code?

It looks like a table with a budget, hours to date, a percent complete that someone in the field judges, and a projection that divides one by the other. The example below is a third-floor tenant improvement six weeks in. All figures are illustrative.

Labor by code at week 6: budget, hours to date, percent complete and projected hours
CodeBudget hHours to datePercent completeProjected h (hours ÷ percent)Over or under
100 Conduit and box32021460%356.7+36.7
200 Wire pull2609635%274.3+14.3
300 Panels and gear1204030%133.3+13.3
400 Fixtures and trim18000%180.0 (not started, budget kept)0.0
Total880350944.3+64.3
A projection is arithmetic, not a forecast. It assumes the rest of each code goes at the pace of the part already done.

What the total says

Projected 356.7 + 274.3 + 133.3 + 180.0
944.3 h
Budget
880 h
Projected overrun: 944.3 − 880
64.3 h, or 7.3% of budget
At an assumed $58.70 loaded rate: 64.3 × $58.70
$3,774
Labor margin the bid assumed and the job is on pace to miss
$3,774

Conduit and box is the largest single line over, at +36.7 h. That is where to look first, with the foreman, this week.

Percent complete is the one number in the table that is a judgment. Have the same person set it on the same day each week, and write down how: by quantity installed where you can count it, by milestones where you cannot.

How does labor cost reach the WIP schedule and the next estimate?

It reaches both through the projection: the estimated cost to complete on your WIP schedule should carry the labor projection, and the hours per unit on each code should go back into the estimate book. Skipping the first overstates profit on open jobs. Skipping the second makes you repeat the miss on the next bid.

  • WIP schedule. If it still carries the bid's labor while the job is on pace for the projection above, the job shows $3,774 more profit than it will earn. Sureties compare work-in-progress schedules with later financial statements and watch for underbillings that grow on unprofitable jobs nearing completion, according to the National Association of Surety Bond Producers. A labor number that moves every week is easier to defend than one that jumps at year end.
  • Unit rates. Conduit and box was estimated at 320 h for 6,000 ft, which is 5.33 h per 100 ft. At 60% complete, 3,600 ft are in for 214 h, which is 5.94 h per 100 ft. That is 11.5% over, and the unit rate is what to carry to the next bid.
  • Crew mix. Record who worked each code. A rate built on journeymen and a job staffed with apprentices will not match, in either direction.

How often should you review labor against the estimate?

Review it weekly, right after the week is approved, and roll it into the WIP schedule at month end. The weekly look is what lets you move a crew or call a meeting while the overrun is still hours, not dollars.

A review rhythm

  1. DailyClear exceptions so hours do not carry a missing end time into the week. See the foreman's weekly checklist.
  2. After weekly approvalUpdate percent complete by code. Read the projection. Flag any code more than a few percent over for a conversation with the foreman.
  3. Month endMove the labor projection into estimated cost to complete on the WIP schedule.
  4. Job closeCompute actual hours per unit by code and add them to the estimate book.

What breaks labor job costing?

Common failure points and the fix
ProblemWhat it does to the numberFix
Hours with no location or codePaid but not costed, so jobs look cheaperAllocate by a stated rule and review the unallocated total weekly
Costing at the bare wageEvery job understated by the burdenUse the loaded rate; see the labor burden calculator
Stale percent completeA projection that is weeks out of dateUpdate it weekly by the same person
Drives charged to the first jobThe first job of the day is overstatedWrite the shared-time rule once
Overtime premium hidden in the rateA job looks slow when it ran long hoursShow the premium as its own line
Corrections after the week closedReports no longer match payrollCorrections carry a reason and keep the original

How ZeroBadge handles this

ZeroBadge supplies the hours input: every minute of a shift is classified on site, in transit or other and allocated to a jobsite, so hours by job arrive from the shift instead of from a Friday sheet. You set a labor budget and a loaded rate per worker, and a manager enters percent complete weekly. A move between sites stays one shift, and transit shows on its own line so your shared-time rule can apply to it. ZeroBadge does not set your cost codes or your overtime policy. See labor cost tracking.

Frequently asked questions

What is labor job costing in construction?
It is charging each paid labor hour, at a loaded rate, to the job and cost code it served so you can compare actual labor with the estimate while the job is open. The hours come from timesheets and the rate includes taxes, insurance and benefits.
Do I need cost codes, or is hours per job enough?
Hours per job is enough to start, and a job-level number that gets used beats a code-level number nobody fills in. Add codes when someone in the office will read them, usually when you want unit rates for the next bid.
Which job should the overtime premium be charged to?
That is a policy choice. You can charge the job where the overtime hours fell or spread the premium by hours across the worker's jobs that week. Apply the same rule to every job and show the premium on its own line.
How often should percent complete be updated?
Weekly, by the same person, right after the week is approved. A projection built on a percent complete that is a month old will be wrong in the same direction every time.
Where do drive hours and supply runs go in job costing?
Wherever your written shared-time rule says: to the destination job, split across the jobs served or to an overhead code. Whether those minutes are paid is a separate wage-and-hour question. See the drive time policy guide.

Sources

  1. 1.Fact Sheet #23: Overtime Pay Requirements of the FLSA · U.S. Department of Labor, Wage and Hour Division
  2. 2.A Surety's Perspective of Underbilling and Its Impact on Contractor Financials · National Association of Surety Bond Producers

Get started

See ZeroBadge on your workforce.

Tell us how your crews work today. We will show you a badge-recorded week built from your own jobsites.

What we will walk through

  • 01How the badge records a shift
  • 02Your jobsites as geofences
  • 03The weekly timesheet and approval
  • 04Sending approved hours to payroll