Construction job costing, explained: the margin you'll actually make
A construction job almost never loses money on bid day. It loses it quietly — one cost code at a time, over weeks, in amounts too small to notice individually. By the time the loss is obvious it's usually in the past tense: the project closes out, the accountant runs the numbers, and the margin you thought you had turns out to have been spent in March. Job costing is the discipline of seeing that erosion while there's still time to do something about it.
This is a plain-English walk through how job costing actually works — the one distinction that separates contractors who know their number from those who find out at closeout, the two forward-looking figures that turn a pile of invoices into a forecast, and why a change order you forgot to log is a margin you already gave away.
The bid margin is a hope. The projected margin is a fact.
Every job starts with an estimate: a contract value, a budget built up from cost codes, and the difference between them — your intended margin. That number is a hope. It's what the job will earn if nothing runs over, no one eats a change, and every sub honors their price. Nobody has ever run that job.
Job costing exists to replace that hope with something you can act on: a projected margin that updates as real costs land. The whole method is a machine for answering one question at any moment — "given what I've spent and committed so far, and what's left to do, what will this job actually make?" Everything below is in service of that one number.
Committed vs actual: the distinction that runs the whole thing
The single most common job-costing mistake is tracking only money that has already gone out the door. Your accounting system shows actual cost — invoices paid, payroll run, material received. But actual cost is a rear-view mirror. The day you sign a $40,000 subcontract, none of it is "actual" yet — and all of it is spent. That is committed cost.
- Committed — money you've obligated but not yet paid: signed subcontracts, issued purchase orders, approved change orders to your subs. The moment the signature dries, the money is gone whether the invoice has arrived or not.
- Actual — money that has actually been spent: paid invoices, labor burden, material delivered and billed. This is what your books show.
A job that looks 40% spent on actual can be 90% spent on committed — and a contractor watching only actuals will feel comfortable right up until the invoices catch up to the contracts. Committed + actual is your true exposure. Tracking commitments the day you sign them, not the day they bill, is the difference between forecasting a problem and discovering one.
Cost to complete and estimate at completion
Two forward-looking numbers turn tracking into forecasting. They sound like jargon; they're just arithmetic.
Cost to complete (CTC) is your honest answer to "what will it take to finish this from here?" It is not the budget minus what you've spent — that assumes the budget was right, which is the very thing in question. It's a fresh estimate of the remaining work, made by someone who can see the site. On a line that's blowing its budget, the CTC is where you admit it.
Estimate at completion (EAC) is the punchline: what you've already spent (actual) plus what's still committed plus your cost to complete. In one line —
The value of EAC is that it's forward-looking. A division can be perfectly on budget today and still be heading for an overrun, because the costly part of its work hasn't happened yet. EAC catches that; a simple budget-minus-spent view does not. Watching EAC by cost division — not just for the job as a whole — is how you find the one trade that's quietly eating the margin the other fifteen earned.
Change orders: the margin you give away by forgetting
Change orders are where job margin most often leaks, and it's rarely because of the change itself — it's the paperwork. Extra work gets done, everyone agrees it's owed, and then it never makes it onto the contract or into the budget. Come closeout, you did the work and didn't get paid for it. (For time-and-material extras specifically, the same leak has its own fix — a signed ticket at the point of work.)
Clean change-order handling follows two rules:
- An approved change order revises both sides. It increases the contract value and the budget for the affected division. Track only one and your margin math drifts.
- A pending change order counts nowhere. Until it's approved, it's not contract and it's not budget — it's a note. Letting pending COs inflate your numbers is how optimistic forecasts are born.
Handled this way, your revised contract and revised budget always tell the truth, and the projected margin reflects the job as it really is — extras and all.
The Job Costing Tracker
Budget, committed, and actual on one dashboard — by cost division, for every project you're running. Read your cost to complete, your estimate at completion, and the margin you're actually on track to make, with an OK / WATCH / OVER chip on every line. Change orders revise the contract and the budget automatically; pending ones count nowhere. Pure Excel & Google Sheets formulas — no macros to trust, nothing to break. Built by a licensed architect who has sat through the job-cost meetings where the numbers arrived too late.
How to actually run it, without a full-time cost engineer
Job costing has a reputation as something only big GCs with dedicated staff can do. It isn't. A one-file discipline, kept current in a few minutes a week, gets a small builder most of the way there:
- Budget by cost division, not one lump. A single "materials" number tells you nothing when it runs over. Sixteen divisions — general requirements, concrete, framing, mechanical, and so on — tell you exactly where.
- Log commitments at signing, actuals as they bill. The habit that makes the whole thing work. A five-minute entry when you issue a PO is worth more than an hour of reconciliation later.
- Update cost-to-complete honestly, once a period. Walk the job, look at the lines that are drifting, and revise the remaining estimate. This is the only subjective input, and it's where the forecast earns its keep.
- Read the division table, not the ledger. You don't manage a job by scrolling invoices. You manage it by looking at which divisions say WATCH or OVER, and acting on those before they close out.
The point of all of it is time. Every figure in job costing — committed cost, cost to complete, estimate at completion — exists to move the moment you learn about a problem earlier, from the closeout meeting back to a Tuesday when you can still call the sub, reprice the next phase, or write the change order. The margin was never really lost on bid day. It was lost, or saved, in the weeks you either watched it or didn't.
This is general information about construction cost tracking, not accounting, tax, or financial advice, and not a substitute for your accounting system or your accountant. Cost definitions and reporting requirements vary by contract and jurisdiction — set your budgets, rates, and change-order terms to your own project and confirm your books with a qualified professional.