CONSTRUCTION JOB COSTING EXPLAINED.
Job costing is tracking every dollar you spend on a specific project — labor, material, equipment, subcontractors, and direct job expenses — so you know exactly what that project cost to build. Without it, the P&L shows whether the company made money. With it, you know which of the six active projects made money and which ones lost it. Those are completely different levels of financial visibility.
Most subcontractors know they need job costing. Most have been told to get it set up. Most have tried and ended up with either nothing usable or a system so complex nobody touches it. The reason is that job costing has to be built to match how the work is actually done — the specific trades, phases, and cost types in your business. A generic chart of accounts does not produce useful job cost data. This page covers what job costing actually is, how to structure it, and what it looks like when it is working.
TRACKING EVERY DOLLAR TO A SPECIFIC PROJECT.
Every Dollar Has a Project Address
Job costing means every expense — every labor hour, every material purchase, every equipment charge, every subcontractor invoice — is coded to the specific project it belongs to before it hits the books. The result is a job cost report for each active project that shows what you estimated versus what you have actually spent, by cost category, as of the last reconciliation. That report is the difference between managing projects by gut feel and managing them with data.
The PM Pulls It Up Without Calling Accounting
Ask your project manager: how much have we spent on labor for the rough-in phase as of last month, fully burdened — including payroll taxes, workers comp, and health insurance? If they open a screen and show you the number in 30 seconds, you have working job costing. If they say "I have to check with accounting" — you do not. That is not a technology problem. It is a structure problem. The system was either not set up correctly or the data is not being entered at the right level of detail.
HOW EVERY PROJECT GETS BROKEN DOWN.
The fully burdened labor rule: Never track labor at base wage only. A $28/hour carpenter costs $38–$44/hour fully burdened when you add payroll taxes (7.65%), workers comp (varies by trade, often 8–15%), health insurance, and 401k. Estimating at $28 and tracking at $28 hides the true cost. Estimating and tracking at the same fully burdened rate is the only way bid-to-actual comparison is meaningful.
WHY JOB COSTING BREAKS DOWN — AND HOW TO FIX EACH ONE.
Too Complex — 1,500 Line Items Nobody Can Read
Software implementation teams build job cost structures that cover every possible scenario. The result is a system so granular that project managers cannot find the right code, enter time to whatever looks close, and the data is useless. Fix: seven categories, subcategories by trade-specific types, phase breakdown for labor only on projects over 3 months. Simple enough that the PM can navigate it in 30 seconds.
Too Generic — Top-Level Categories Only
One code for all labor. One code for all material. The books are technically accurate but produce no actionable information. You know total labor was $187K — you do not know that underground labor was on budget and above-slab ran 22% over. Fix: minimum one subcategory per cost type that matches how you estimate the work.
Estimating and Job Costing Don't Match
The estimate has six labor phases. The job cost system has one labor code. You cannot compare bid to actual because they are in different languages. Fix: build the job cost code structure to mirror the estimate structure. The alignment meeting — estimator, PM, bookkeeper, CFO in one room mapping every estimate line to a cost code — is the session that makes the system work.