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.
| Code | Estimate line | Charge it when the crew is |
|---|---|---|
| 100 | Conduit and box rough-in | Setting boxes, bending and running conduit |
| 200 | Wire pull and terminate | Pulling, making up and terminating wire |
| 300 | Panels and gear | Setting, wiring and labeling panels and switchgear |
| 400 | Fixtures and trim | Hanging fixtures, devices and plates |
| 900 | Punch list | Working the owner's or GC's list after substantial completion |
- 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.
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.
| Code | Budget h | Hours to date | Percent complete | Projected h (hours ÷ percent) | Over or under |
|---|---|---|---|---|---|
| 100 Conduit and box | 320 | 214 | 60% | 356.7 | +36.7 |
| 200 Wire pull | 260 | 96 | 35% | 274.3 | +14.3 |
| 300 Panels and gear | 120 | 40 | 30% | 133.3 | +13.3 |
| 400 Fixtures and trim | 180 | 0 | 0% | 180.0 (not started, budget kept) | 0.0 |
| Total | 880 | 350 | 944.3 | +64.3 |
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
- DailyClear exceptions so hours do not carry a missing end time into the week. See the foreman's weekly checklist.
- 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.
- Month endMove the labor projection into estimated cost to complete on the WIP schedule.
- Job closeCompute actual hours per unit by code and add them to the estimate book.
What breaks labor job costing?
| Problem | What it does to the number | Fix |
|---|---|---|
| Hours with no location or code | Paid but not costed, so jobs look cheaper | Allocate by a stated rule and review the unallocated total weekly |
| Costing at the bare wage | Every job understated by the burden | Use the loaded rate; see the labor burden calculator |
| Stale percent complete | A projection that is weeks out of date | Update it weekly by the same person |
| Drives charged to the first job | The first job of the day is overstated | Write the shared-time rule once |
| Overtime premium hidden in the rate | A job looks slow when it ran long hours | Show the premium as its own line |
| Corrections after the week closed | Reports no longer match payroll | Corrections 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?
Do I need cost codes, or is hours per job enough?
Which job should the overtime premium be charged to?
How often should percent complete be updated?
Where do drive hours and supply runs go in job costing?
Sources
- 1.Fact Sheet #23: Overtime Pay Requirements of the FLSA · U.S. Department of Labor, Wage and Hour Division
- 2.A Surety's Perspective of Underbilling and Its Impact on Contractor Financials · National Association of Surety Bond Producers
Keep reading
- SolutionLabor cost trackingLoaded rates, job budgets and forecasts from badge-recorded hours.
- GuideHow to calculate labor burdenBuild the loaded rate that every job cost number depends on.
- GuideTrack hours at multiple job sitesOne day charged to two jobs under different allocation rules.
- ToolLabor burden calculatorTurn a wage into a loaded hourly rate with your own taxes and benefits.
- GuideCompany drive time policyDecide how drives are paid and which job carries them.
- GlossaryJob costing, definedA short definition with the terms it connects to.
