Guide

Construction job costing basics

Job costing is the process of tracking what a job actually costs versus what you estimated it would cost. Most contractors who are not profitable are not unprofitable because they charge too little — they are unprofitable because they do not know where the money goes after the job starts.

What job costing tells you

  • Whether the job made or lost money (estimated margin vs actual margin)
  • Where the overrun happened (labor, materials, subs, or scope creep)
  • Which types of jobs are consistently profitable and which are not
  • Whether your labor estimates are accurate by trade and task type
  • Whether your material estimates account for waste, delivery, and handling correctly

The four cost categories to track

Direct labor

Estimated: Hours × burden rate (from estimate)

Actual: Time cards or timesheets by job code

Common leak: Mobilization time, travel between sites, cleanup not accounted for in estimate

Materials

Estimated: Quantity × unit cost + waste factor

Actual: Receipts and POs coded to job

Common leak: Waste over budget, theft, incorrect takeoffs, price increases not caught

Subcontractors

Estimated: Sub quote + coordination markup

Actual: Sub invoices coded to job

Common leak: Change orders from subs passed through at cost without markup

Equipment

Estimated: Rental costs or internal rate × hours

Actual: Rental receipts or equipment log

Common leak: Equipment sitting idle on job site, excess rental days

The job costing calculation

Actual job cost = Actual labor + Actual materials + Actual subs + Actual equipment

Actual margin = (Contract value − Actual job cost) ÷ Contract value × 100

Variance = Actual margin − Estimated margin

A negative variance means the job earned less than estimated. Find out why before the next bid.

Minimum job costing system

You do not need expensive software to start job costing. The minimum viable system:

Assign a job code to every jobA simple number: J2024-001, J2024-002, etc.
Code every labor hour to a jobCrew members note job code on timesheets daily, not weekly
Code every material purchase to a jobReceipt or PO includes job code before purchase is made
Code every sub invoice to a jobDo not allow sub invoices without a job reference
Run actual vs estimate at job closeBefore final billing, compare actual costs to estimated costs by category

How to use job costing to improve bids

After 10 jobs with complete job costing data, you will have patterns. Common findings:

  • — Labor on [specific task type] consistently runs 15% over estimate — your labor unit cost is wrong
  • — Material waste on framing jobs averages 12%, not 8% — adjust your waste factor
  • — Small jobs under $10K consistently lose money — overhead rate is too high relative to job size
  • — Jobs with this sub consistently have change orders — cost of coordination is higher than estimated

Each of these findings translates directly into a bid adjustment that improves margins going forward.

Check your estimate margin before the job starts

Bid Command verifies your estimate hits your target margin before you submit it.

Open Bid Command →

Related