Job Costing for Contractors: How to Track Profit by Project
Company-level profit hides losing jobs. A practical setup for cost codes, labor burden, and committed costs so every project shows its real margin.
A profitable year can hide two or three jobs that lost money. Job costing is how you find them, by assigning every dollar of cost to the project and the line of work that caused it.
Set up cost codes that match your estimate
Your cost codes should mirror how you estimate. If you bid concrete, framing, and electrical as separate lines, track them that way. Matching codes is what makes budget-versus-actual meaningful.
Burden your labor
Raw wages understate labor cost. Add payroll taxes, workers' comp, insurance, and benefits as a burden rate so each hour charged to a job reflects what it really costs you.
Track committed costs
Subcontracts and purchase orders lock in cost before invoices arrive. Tracking commitments shows overruns weeks earlier than actuals alone.
Review monthly with your PMs
- 1Compare budget, committed, and actual cost by cost code.
- 2Have the PM update cost to complete for each code.
- 3Flag any code projected to run more than 5% over budget.
- 4Feed updated estimates into the WIP schedule.