Your P&L says you made money last month. Great. But which jobs made it? If you run a contracting, agency, consulting, or any other project-based business, the monthly P&L is a blended average that hides your best and worst work in the same number. Job costing is the practice of assigning every dollar of labor, materials, subcontractors, and a fair share of overhead to the specific project that caused it, so you can see profit one job at a time. It is the difference between knowing you are profitable and knowing why.
Most owners under $10M in revenue skip this because it feels like accounting busywork. It is not. The Project Management Institute has reported that roughly a third of projects experience scope creep, and every hour of unbilled creep comes straight out of a margin you never measured. This post walks through how job costing works, what to track, and how to use it to fix the jobs that are dragging the whole company down.
Key Takeaways
- Job costing assigns direct labor, materials, subs, and a share of overhead to each project so you can compute gross profit per job, not just per month.
- Labor is the number most owners get wrong. Use a fully loaded hourly rate (wages plus taxes, benefits, and paid time off), not the base wage.
- You need three things to start: a job or project field on every transaction, timesheets tied to jobs, and a simple overhead allocation rule.
- Compare estimated cost to actual cost on every closed job. The gap tells you whether your problem is pricing, execution, or scope control.
- The goal is not perfect accounting. It is a monthly list of jobs ranked by margin that changes how you quote the next one.
What Job Costing Actually Measures
Job costing answers one question for each project: after everything it took to deliver this, how much did we keep? To answer it you build a small P&L per job.
The four buckets
- Direct labor. Hours worked on the job multiplied by a loaded hourly cost for each person.
- Direct materials and supplies. Anything bought for that job specifically. Lumber, software licenses passed through, printing, travel.
- Subcontractors and outside services. Anyone you paid to do part of the work.
- Allocated overhead. A slice of rent, insurance, equipment, admin salaries, and software that keeps the doors open. This one is optional at first, but it is what turns gross profit per job into something closer to true profit per job.
What comes out the other end
Revenue on the job minus the four buckets gives you job profit. Divide by revenue and you have job margin. Do this for every job you closed in the last quarter and sort the list. Most owners are surprised twice: once by how good the best jobs are, and once by how many jobs are near zero or negative. If you have never looked at margin this way before, our post on gross margin vs. net margin explains why the blended number can look healthy while individual jobs are bleeding.
Why Monthly P&Ls Hide the Problem
A monthly P&L reports revenue and expenses by account, not by cause. Payroll is one line. Materials is one line. A month with three profitable jobs and two losers looks identical to a month with five average jobs.
The three ways losing jobs stay hidden
- Timing. You invoice a deposit in March and eat the labor in April and May. March looks great, May looks terrible, and neither month tells you the truth about the job.
- Averaging. A 40% margin job and a negative 10% margin job average to 15%. That 15% is what your P&L shows, and it looks fine.
- Unassigned costs. Materials bought on the company card without a job code land in a general expense account. The job that used them looks more profitable than it was.
Job costing fixes all three because it follows the job across months and forces every cost to name the project it belongs to.
Setting Up Job Costing in Your Books
You do not need new software to start. QuickBooks Online, Xero, and most industry tools already support projects or jobs. What you need is discipline about how transactions are entered.
Step 1: Put a job on everything
Every invoice, bill, expense, and payroll allocation gets a project tag. If a cost cannot be tied to a job, it is overhead. There is no third category. This is where most setups fail, so make it a rule for whoever enters transactions, and review untagged items weekly.
Step 2: Track time by job
Labor is usually the biggest cost and the one that never gets tracked. If your team does not log hours to jobs, your job costing is a guess. A simple timesheet app that syncs to your accounting file is enough. Field crews, designers, and consultants all need the same thing: hours, job, and date.
Step 3: Compute a loaded labor rate
A $30-per-hour employee does not cost $30 per hour. Add employer payroll taxes, workers' comp, health insurance, retirement match, and paid time off, then divide by the hours they actually work on billable jobs. For most small businesses the loaded rate lands 25% to 40% above base wage. Use that number in every job cost calculation. Using base wage is the single most common reason owners think a job was profitable when it was not.
Step 4: Pick an overhead allocation rule
Keep this simple. Two common methods:
- Percentage of direct labor. Total annual overhead divided by total annual direct labor cost. If overhead is $300,000 and direct labor is $600,000, add 50% on top of every job's labor cost.
- Per direct labor hour. Total annual overhead divided by total billable hours. If overhead is $300,000 and the team logs 20,000 job hours, add $15 per hour.
Either method is fine. What matters is that the same rule is applied to every job so the comparisons are fair.
Reading the Results: Estimate vs. Actual
The real value of job costing shows up when you compare what you thought a job would cost to what it actually cost. Every closed job should have both numbers side by side.
Three patterns and what they mean
- Actual labor consistently over estimate. Your estimating assumes a pace the team does not hit, or scope grows and nobody bills for it. Fix the estimating model or start writing change orders.
- Actual materials over estimate. Prices moved, waste is high, or purchases are being tagged to the wrong job. Check supplier pricing and the tagging discipline before blaming the crew.
- Estimates are accurate but margin is still thin. The job was delivered as planned and it still did not make enough. That is a pricing problem, not an execution problem. How to price your services so every job is profitable covers how to rebuild the quote from cost up.
The monthly job margin review
Once a month, pull every job closed in the period, sort by margin, and ask three questions. Which job types or customers sit at the top? Which sit at the bottom? What would change if you quoted the bottom third 15% higher or stopped taking that work? That conversation is the whole point of job costing.
Common Mistakes That Make the Numbers Lie
Job costing is only as good as the inputs. Watch for these.
- Owner time is free. If you spend 20 hours on a job and never cost it, the job looks better than it is. Assign yourself a loaded rate and log hours like everyone else.
- Overhead allocated on revenue instead of effort. A big-ticket, low-effort job gets loaded with overhead it did not consume, and a small, labor-heavy job gets off easy. Allocate on labor.
- Deposits counted as profit. A 50% deposit is cash, not earned margin. Job profit is only real when the job is complete and all costs are in.
- Ignoring warranty and rework. Callbacks and fixes after the invoice is paid belong to the original job, not to the month they happen in.
- Tracking too much detail too soon. Ten cost codes per job is plenty for a business under $10M. A hundred cost codes means nobody fills them in.
When Job Costing Needs a CFO
Job costing tells you what happened. Turning that into pricing rules, capacity planning, and a decision about which customers to keep is a leadership job, and it is one of the core things a fractional CFO does for a project-based business. If your jobs are already tagged and you still cannot explain why a busy year produced a thin bottom line, that is usually the point where an outside finance lead pays for itself. The Pro CFO's Fractional CFO service works from your job cost data to set margin targets by job type, build estimating guardrails, and run the monthly review with you until it sticks.
Conclusion
A monthly P&L tells you whether the business made money. Job costing tells you which work made it and which work gave it back. Start with the basics: a job tag on every transaction, timesheets tied to jobs, a loaded labor rate, and one simple overhead rule. Then compare estimate to actual on every closed job and sort the list by margin. Within a quarter you will know which jobs to price up, which to stop taking, and which to go find more of. That knowledge is worth more than any single month's profit, because it changes every month after it.
