On this page9 sections
- What is construction job costing?
- How do you set up cost codes for job costing?
- What should a job cost report show?
- Why do committed costs matter so much?
- How does job costing connect to your WIP report?
- Can you do construction job costing in QuickBooks?
- How often should a small GC review job costs?
- Where CooperBuild AI fits
- FAQ
- What is construction job costing?
- What's the difference between committed costs and actual costs?
- How many cost codes should a small general contractor use?
- Can QuickBooks Online do job costing for contractors?
- How does job costing affect over and under billing?
By Adam Hicks, CooperBuild AI · November 3, 2026
Construction job costing is tracking every dollar of labor, material, equipment and subcontract cost against the budget for the specific job and cost code it belongs to, so you can see each job's projected final cost and margin while there's still time to act. The short version: set up cost codes that match how you estimate, code every cost at the source, track committed costs (not just paid bills), and review a job cost report every week or two. Done right, it tells you which jobs make money and why, not just whether the company did.
Most small GCs don't skip job costing because they don't care. They skip it because it happens after the fact, in the books, by someone who wasn't on site. That's the part to fix.
What is construction job costing?
Job costing treats each project as its own profit center. Every cost gets two tags: the job it belongs to and the cost code inside that job (for example, concrete, framing, electrical, general conditions). Overhead that isn't tied to one job, like office rent or the estimator's time, goes to a separate overhead bucket so it doesn't distort job margins.
The goal is a line-by-line comparison of what you planned to spend against what you've spent and what you've already committed to spend. A company-level profit and loss statement can't give you that. It can look fine while one job quietly eats the profit from three others.
How do you set up cost codes for job costing?
Start from your estimate, not from a giant standard list. If your estimate is organized by trade or by CSI-style divisions, use the same structure for cost codes so the budget lines up one to one with how the job was priced.
A few practical rules:
- Keep it short. A small GC usually does better with 20 to 40 codes than with 300. If nobody can remember which code to use, costs get dumped into "misc."
- Split by cost type when it matters. Labor, material, equipment and subcontract often need separate codes within a trade, because labor overruns and material overruns have different fixes.
- Use job numbers, not just names. A simple numbering scheme, with one number reserved for overhead, makes coding receipts and timesheets faster. That's advice small GCs give each other on r/GeneralContractor too.
- Keep change orders separate. Track approved change order budget in its own column or code so you can see how the base contract is performing on its own.
What should a job cost report show?
A useful job cost report lines up each cost code with these columns:
- Original budget, from the estimate.
- Approved change orders, added or deducted.
- Revised budget, which is the original budget plus approved changes.
- Actual cost to date: posted vendor bills, payroll and burden, equipment charges and sub invoices.
- Open commitments: signed subcontracts and purchase orders not yet billed.
- Forecast to complete: the PM's estimate of remaining cost not yet bought.
- Projected final cost: actual plus open commitments plus forecast to complete.
- Variance: revised budget minus projected final cost.
Any code trending over budget needs a named cause and a decision: price a change order, backcharge, re-buy the scope, or absorb it. If you track change orders well, many overruns turn into billable changes instead of lost margin. Our construction change order process guide covers that side.
Why do committed costs matter so much?
Committed costs are the most common blind spot in small-GC job costing. A cost you've agreed to pay, like a signed $200,000 subcontract, is real the day it's signed, even if the first invoice hasn't arrived.
If you only look at paid or posted bills, a job looks healthier than it is. Here's an example with made-up numbers: a drywall sub is 80% complete on a $200,000 subcontract but has only billed $100,000. Your actuals show $100,000, but your real exposure on that line is $160,000 earned, with $40,000 still to come. Without the commitment in the report, you won't see the squeeze until the bills land.
How does job costing connect to your WIP report?
A work-in-progress (WIP) report is the company-wide view built from job cost data. For each active job it shows contract value, costs to date, estimated cost at completion, percent complete, earned revenue and billings to date.
Under the common cost-to-cost method, percent complete is costs to date divided by estimated cost at completion. Earned revenue is contract value times percent complete. If you've billed more than you've earned, the job is overbilled, which is a liability. If you've earned more than you've billed, it's underbilled, an asset, and a sign you're financing the owner's job with your own cash.
That's why sloppy job costing breaks more than margin reports. If costs are missing or the forecast to complete is stale, percent complete is wrong, so revenue and the billing position are wrong too. Bonding companies and lenders read WIP schedules closely, so this matters beyond the office. Retainage adds another wrinkle to billings, which we cover in retainage in construction.
Can you do construction job costing in QuickBooks?
Yes, up to a point. In QuickBooks Online Plus or Advanced, you can turn on Projects, create one project per job, and assign every bill, expense, check, timesheet and invoice to that project in the Customer/Project field. Products and Services items can work as simple cost codes. QuickBooks Online Advanced adds project estimates and an estimates-versus-actuals view, according to Intuit's help documentation.
Where contractors and their bookkeepers say it gets hard:
- Every line has to be tagged. Skipping the project field on a single bill line means that cost goes missing from the job.
- Committed costs live outside the ledger. Signed subcontracts and open POs aren't actual costs yet, so they usually end up in a spreadsheet.
- WIP often turns into an export. Many bookkeepers describe pulling QuickBooks data into Excel each month to build the WIP schedule by hand.
None of that makes QuickBooks wrong. It's a ledger, and it's good at being a ledger. The problem is when budgets, commitments and change orders live in three other places, a pattern we wrote about in the Procore, Excel and QuickBooks stack.
How often should a small GC review job costs?
Weekly or every other week on active jobs is a good rhythm, with a full WIP review at month-end close. The point is to catch a variance while you can still do something about it: talk to the sub, write the change order, or adjust the schedule.
Two habits make the reviews worth having:
- Code at the source. The person who buys the material or approves the timesheet tags the job and cost code at that moment, not the bookkeeper three weeks later.
- Have the PM own the forecast. Accounting knows what's been spent. Only the PM knows what's left to buy.
Where CooperBuild AI fits
Most job costing problems come from the budget, commitments, change orders and the books living in different places, so someone rebuilds the numbers by hand every month. That's the same problem we describe in bill from the scope you won.
CooperBuild AI keeps the estimate, the job, subcontracts, change orders, billing and built-in accounting (general ledger, payables and receivables) in one workspace, and it connects to QuickBooks Online if that's where your books live today.
If your job cost report only shows up after the job is over, start a 14-day free trial, no credit card needed, and run your next job's costs from the estimate you won.
FAQ
What is construction job costing?
Construction job costing is the practice of tracking every labor, material, equipment and subcontract cost against the budget for the specific job and cost code it belongs to, so you can see each job's projected final cost and margin.
What's the difference between committed costs and actual costs?
Actual costs are costs already posted to the books, like paid or entered bills and payroll. Committed costs are amounts you're obligated to pay under signed subcontracts and purchase orders that haven't been billed yet. Projected final cost should include both, plus the forecast to complete.
How many cost codes should a small general contractor use?
There's no fixed number, but a short list that mirrors how you estimate works best. Many small GCs do well with a few dozen codes split by trade and cost type, rather than hundreds that nobody codes consistently.
Can QuickBooks Online do job costing for contractors?
Yes. QuickBooks Online Plus and Advanced let you track income and costs by project, and Advanced adds project estimates versus actuals. Contractors often track committed costs and build WIP reports outside QuickBooks, which is where errors creep in.
How does job costing affect over and under billing?
Under the cost-to-cost method, percent complete comes from costs to date divided by estimated cost at completion. If job costs are missing or the forecast is stale, percent complete and earned revenue are wrong, so the overbilling or underbilling on your WIP report is wrong too.