Construction Job Costing: How to Track Profit Per Project (2026)

Most contractors know how much money came in last year. Very few know which jobs actually made money. FMI's 2024 survey found contractors who track job costs earn 2.3x higher net margins — not because they work harder, but because they know where they're losing money and fix it.
Key Takeaways
- Contractors who track job costs earn 2.3x higher net margins (FMI, 2024)
- Labor is the most common source of overruns — typically 15–25% over estimate without daily time tracking
- Job costing requires your estimate to be broken down the same way you track actuals — or the comparison is useless
- The goal is closing the feedback loop: use actuals to improve every future estimate
The 5 Cost Categories Every Contractor Must Track

1. Direct Labor
Track hours per crew member per phase, with burden rate applied (28–35% above base wage).
Fully Loaded Labor = Hourly Wage × (1 + Burden Rate) × Hours Worked
Example:
Carpenter at $32/hr × 1.32 burden × 48 hours = $2,027 actual
vs. $1,536 estimated (40 hrs) → $491 over, 32% labor overrun
2. Materials
Code every receipt to the job and phase at point of purchase — not at month-end. Track waste percentage vs. estimated waste.
3. Subcontractors
Track original subcontract amount, approved change orders, and invoices paid. Every verbal addition is a change order — document it. See our construction change order template.
4. Equipment and Tools
Owned equipment is not free. Calculate an internal rate: depreciation + fuel + maintenance + insurance ÷ annual billable days.
$35,000 truck ÷ 5 years + $4,800 insurance + $3,600 fuel + $1,200 maintenance
= $16,600/year ÷ 240 days = $69/day internal charge rate
5. Job Overhead (Indirect Costs)
Permits, dumpsters, temp utilities, supervision time, inspections. Frequently missing from job cost tracking — and from estimates.
The Job Cost Variance Formula
Variance ($) = Actual Cost − Estimated Cost
Variance (%) = (Actual − Estimated) ÷ Estimated × 100
Actual Gross Profit = Contract Price − Total Actual Cost
Profit Variance = Actual GP − Estimated GP
Example: $48,000 bathroom remodel estimated at $33,600 (30% GM) that runs $36,900 actual = $11,100 actual GP (23.1%) — $3,300 less than expected. Job costing tells you exactly which category caused it.
Copy-Ready Job Cost Tracking Template
JOB COST SHEET
Project: ________________________________
Contract Value: $_________________________
Start: _______________ End: ____________
════════════════════════════════════════════
CATEGORY ESTIMATED ACTUAL VARIANCE $ VAR %
═════════════════════════════════════════════
DIRECT LABOR
Demo / Site Prep $______ $______ $______ ____%
Framing $______ $______ $______ ____%
Rough MEP $______ $______ $______ ____%
Drywall $______ $______ $______ ____%
Finish Carpentry $______ $______ $______ ____%
Paint $______ $______ $______ ____%
Flooring $______ $______ $______ ____%
Punch / Cleanup $______ $______ $______ ____%
LABOR TOTAL $______ $______ $______ ____%
MATERIALS
Lumber / Framing $______ $______ $______ ____%
Drywall $______ $______ $______ ____%
Tile / Flooring $______ $______ $______ ____%
Cabinets $______ $______ $______ ____%
Fixtures $______ $______ $______ ____%
Misc $______ $______ $______ ____%
MATERIALS TOTAL $______ $______ $______ ____%
SUBCONTRACTORS
Electrical $______ $______ $______ ____%
Plumbing $______ $______ $______ ____%
HVAC $______ $______ $______ ____%
SUBS TOTAL $______ $______ $______ ____%
EQUIPMENT
Rental $______ $______ $______ ____%
Owned (internal) $______ $______ $______ ____%
EQUIPMENT TOTAL $______ $______ $______ ____%
JOB OVERHEAD
Permits / Insp $______ $______ $______ ____%
Dumpster $______ $______ $______ ____%
Supervision $______ $______ $______ ____%
JOB OH TOTAL $______ $______ $______ ____%
══════════════════════════════════════════════════════════════
TOTAL COSTS $______ $______ $______ ____%
CONTRACT VALUE: $______________________
ESTIMATED GROSS PROFIT: $______ ( ___% )
ACTUAL GROSS PROFIT: $______ ( ___% )
PROFIT VARIANCE: $______ ( ___% )
══════════════════════════════════════════════════════════════
LESSONS FOR NEXT ESTIMATE:
- ___________________________________________________
- ___________________________________________________
- ___________________________________________________
Weekly Job Costing Workflow
Daily: Crew logs hours by phase; receipts coded and submitted same day; sub invoices logged.
Weekly: Compare hours-to-date vs. estimated hours-to-date by phase. Flag any category running 10%+ over — investigate before it compounds.
At closeout: Finalize all costs → calculate variance by category → write 3 lessons → update estimating unit costs.
30–45 minutes/week per active project. That's the whole system.
Relevant Article:Avoid Costly Jobsite Mistakes with a Construction Documentation App
Connecting Job Costing to Your Other Documents

- Estimate + SOW → defines the cost baseline → how to estimate construction costs + construction scope of work template
- Change orders → update estimated cost and contract value simultaneously → construction change order template
- Invoices / draws → draw schedule should match cost incurred → contractor invoice template
- Schedule → slippage drives labor overruns; a 2-week slip at $4,500/week = $9,000 variance → construction project schedule
Sources: FMI/Autodesk Construction Disconnected 2024 · CFMA Benchmarker 2024 · NAHB Cost of Construction Survey 2025
Ready to explore how TaskTag can transform your construction projects?
Start your free trial today and see the difference!