JOB COSTING VS
REAL JOB PROFIT.
Job costing tracks what you spent. Real job profit is what you actually earned, after overhead allocation, WIP accuracy, and billing timing are applied. Most subcontractors think they have both. They usually only have the first one. The gap between the two is where profit disappears.
HOW A JOB PROFIT NUMBER
IS ACTUALLY BUILT.
There are two distinct profit numbers on every job: gross profit and net profit. Job costing produces the input to gross profit. Net profit requires one more step. Most subcontractors stop at gross and call it done, then wonder why the bank account doesn't match.
Job costing gives you the 22% gross profit number. That's real and useful. If your overhead is running 14% instead of 11%, because it went up and nobody updated the rate, your net profit is actually 8%, not 11%. You ran this job to produce $80K, not $110K, and you don't know it until you close the books and run the math correctly.
The target benchmarks: 22–30% gross profit per project, 12% net profit after overhead, overhead at 9–13% of revenue. When you know all three numbers on every active job, you know exactly where you stand. When you only know gross, you're guessing on two of the three.
FOUR REASONS JOB COSTING
DOESN'T EQUAL JOB PROFIT.
OVERHEAD ISN'T IN THE JOB COST
Job costing tracks direct costs. Overhead, your office, your staff, your software, your insurance, your owner salary, is allocated at the company level, not the job level. If you're reading job costing reports without applying your overhead rate, you're looking at gross margin and calling it net profit. The difference is the overhead rate multiplied by the job's revenue.
BILLING TIMING CREATES FALSE MARGIN
A job that's 40% billed but 30% complete shows revenue without matching costs. The job costing report shows strong margin because revenue is ahead of cost. That margin is paper. When costs catch up in the next billing cycle, the number reverts. Reading job costing at a billing-ahead point overstates margin until the job normalizes.
UNBILLED CHANGE ORDERS ADD COST WITHOUT REVENUE
A $40K change order is approved and work begins. The cost codes to the job immediately. The billing event hasn't happened yet. Job costing shows the cost. The revenue isn't there yet. Every week that change order sits unbilled, the job's apparent margin drops, not because you're losing money, but because the billing hasn't caught the cost.
WRONG OVERHEAD RATE IN THE ESTIMATE
You estimated this job at 11% overhead. Your actual overhead rate is 16% because you added two PMs and a project coordinator since the estimate was built. The job costing report shows what you actually spent on direct costs. It doesn't know your overhead rate changed. The gap between estimated and actual overhead rate is pure profit erosion.
THE FOUR INPUTS THAT MAKE
JOB PROFIT RELIABLE.
Real job profit is a reliable number when these four things are working correctly at the same time. Missing any one of them produces a job profit number you can't trust.
| INPUT | WHAT IT REQUIRES | WHEN IT'S MISSING |
|---|---|---|
| Job costing: direct costs | All 7 categories coded to the job by work type. Fully burdened labor. Books closed before review. | Direct cost margin is understated. Labor variance invisible. Equipment blended into overhead. |
| Overhead rate | Verified against actual cost base monthly. Updated when costs change. Applied consistently across all jobs. | Net profit number is wrong regardless of how good the job costing is. Usually overstated. |
| WIP accuracy | Percent complete estimated in cost dollars, not schedule. Change orders reflected in baseline. Over/underbilling correctly classified. | Margin looks different than it is depending on whether you're overbilled or underbilled at the review date. |
| Cost-to-complete | PM estimates remaining work in cost dollars after close. CFO challenges against actuals. Updated when scope changes. | Projected job profit is optimistic. Loss shows up at closeout instead of at 30% complete when something could be done about it. |
The Job Profitability System inside CFOS manages all four inputs in a single monthly review cycle. Every active job. Every cost code. Overhead rate applied. WIP reconciled. Cost-to-complete challenged before the number goes into the WIP schedule.
A $4.9M concrete sub was netting $161K on $4.9M of revenue, 3.3%. He didn't know which jobs were making money. Didn't know if labor was profitable. Once job costing was connected to real job profit with the overhead rate applied and WIP cleaned up, net profit went to $1.1M. Same revenue. Same crews. Same work. The only thing that changed was the numbers became real. Read the case study →