Knowledge · Cost control

The company can look fine
while a job is losing money.

Job costing is what lets a builder see the result of each job on its own, not just the combined number the whole business posts. It is the foundation cost control, WIP and the forecast are all built on, and it is where a losing job either gets caught while it is live, or stays hidden until the money is gone.

01 / Overview

Costing the job, not just the business

Job costing is the discipline of attributing every cost to the specific job that incurred it, and to the cost code within that job, so a builder can see how each job is performing on its own. It sounds like accounting detail and it is really the foundation of financial control, because almost everything a builder does to manage money, cost control, WIP reporting, the forecast, depends on the costs having been attributed to the right job in the first place.

The distinction that makes it matter is between costing the business and costing the job. A company profit and loss tells a builder how the whole business did. Job costing tells them how each job is doing, right now, while it is still live. Those are very different pieces of information, and only the second one lets a builder act in time. Job costing runs on the cost codes that address the money and feeds the cost control that keeps the job on track, so this page sits at the base of the finance cluster rather than to one side of it.

Why it matters

A builder can run a profitable business and still have jobs that lose money, hidden inside a healthy overall result. Job costing is what surfaces the losing job while there is still time to change the outcome, rather than at the annual accounts when the job is finished and the loss is locked in. It is the difference between knowing the business made money last year and knowing which jobs are making or losing it today.

02 / The mechanism

How job costing works

Job costing runs the same way on every job, a consistent cost structure, every commitment and cost coded to it, and a live comparison of budget, committed and actual that rolls forward into a forecast.

  1. 01

    Give every job a cost structure

    Each job carries the same set of cost codes, the addressing system for its money, so costs land in comparable buckets across every job. Without a consistent structure, job costing collapses into a single total per job that cannot be compared, analysed or trusted.

  2. 02

    Code every commitment and cost to a job

    Every purchase order, subcontract and invoice is coded to the job and the cost code it belongs to, as it is raised. This is where job costing is won or lost, an uncoded or wrongly coded invoice is a cost the job never sees until it is too late to act on.

  3. 03

    Track budget, committed and actual per job

    For each job and code, the budget from the estimate is compared to what has been committed through orders and what has actually been invoiced. The three together show the job’s true cost position, not just what has been paid but what has been promised.

  4. 04

    Forecast the remaining cost

    The committed and actual costs are combined with an honest estimate of the cost still to come, so the job carries a live forecast of where it will finish, not just a record of where it has been.

  5. 05

    Feed the invoice actuals back

    As real invoices land, they update both the job’s position and, over time, the cost rates the business estimates from. Job costing done well is a loop, the actuals from finished work sharpen the estimates for the next job.

03 / The foundation

What job costing holds up

Job costing is worth doing well because so much sits on top of it. The live cost position it produces is what cost control acts on. The committed costs it captures are, per the committed costs reference, the earliest true signal a job is drifting. The accurate per-job costs it produces are what make WIP reporting and the forecast final cost trustworthy rather than arithmetic built on guesswork. And the whole thing surfaces the measures a builder runs the business on.

The implication is that an error at the job-costing base propagates all the way up. A cost coded to the wrong job does not just misstate that job, it distorts the cost control, the WIP, the forecast and the KPIs that all read from it. This is why the unglamorous discipline of coding every commitment and invoice to the right job and code, as it happens, is worth more than any report built downstream of it. The reports are only ever as honest as the costing underneath them.

04 / Failure modes

Where job costing breaks down

Job costing fails in a few consistent ways, costing the business instead of the job, coding late or wrongly, ignoring commitments, or letting the cost structure drift between systems.

Costing the business, not the job

Running a single company profit and loss with no per-job breakdown. The business looks fine in total while one job quietly loses money, hidden by the others, and nobody knows which one until it is far too late to fix.

Costs coded late or not at all

Invoices entered weeks after the work, or coded to the wrong job to clear the inbox. The job’s position is always stale and often wrong, so decisions are made against numbers that describe a job that no longer exists.

Actuals but no commitments

Tracking only invoices that have arrived, not orders that have been raised. The job looks under budget right up until the committed costs land as invoices, at which point the overrun that was always there suddenly appears.

Structure that does not carry through

The estimate uses one set of codes, the accounting system another, and the claim a third. Nothing reconciles, so job costing becomes a manual exercise in mapping one structure to another rather than a number the business can trust.

05 / FAQ

Common questions.

Job costing is the discipline of attributing every cost to the specific job, and the specific cost code within that job, that incurred it, so a builder can see the true financial result of each job on its own rather than only the combined result of the whole business. In practice it means every purchase order, subcontract and invoice is coded to a job and a cost code as it is raised, and each job carries a live comparison of its budget against what has been committed and what has actually been spent. Job costing is the foundation the rest of a building company’s financial control is built on, because cost control, WIP reporting and the forecast all depend on knowing where each job actually stands, and none of them work if the underlying costs were never attributed to the right job in the first place.

Because the company profit and loss hides the one thing a builder most needs to see, which individual jobs are making money and which are losing it. A business can post a healthy overall result while one job quietly runs at a loss, subsidised by the others, and the whole-of-business number gives no warning at all. By the time the losing job shows up in the annual accounts, it is finished and the money is gone. Job costing surfaces the problem while the job is still live and the result can still be changed, which is the entire point. The company profit and loss tells a builder whether the business made money last year; job costing tells them which jobs are making or losing it right now, and that is the number that lets them act.

They are layers built on the same foundation. Cost codes are the addressing system that makes job costing possible, the consistent buckets every cost is attributed to. Job costing is the discipline of actually attributing costs to those codes on every job. Cost control is what a builder does with the resulting position, comparing budget, committed and actual to keep the job on track while it still can be. And WIP reporting reconciles the earned revenue against what has been billed across all jobs, which only works if each job’s costs are accurate. Get the job costing wrong at the base and every layer above it, cost control, the forecast, the WIP position, inherits the error. This is why job costing is treated as foundational rather than as one report among many.

Tracking only actual invoices and ignoring committed costs. A builder who costs a job purely on invoices that have arrived sees a job that looks comfortably under budget, right up to the moment the orders already raised turn into invoices and the real position appears. The overrun was there all along, hidden in commitments the costing never captured. Committed cost, the money promised through purchase orders and subcontracts but not yet invoiced, is the earliest true signal that a job is drifting, and a job-costing system that leaves it out is always reporting the past rather than the present. Capturing commitments as they are raised, not waiting for the invoice, is what turns job costing from a historical record into a tool a builder can actually steer by.

06 / Keep reading

Related knowledge, guides and features

Know the result of every job, while it is still live.

VIABUILD codes every order and invoice to the job and cost code as it is raised, and holds budget, committed and actual against each job in real time, so a losing job shows up while you can still change the outcome.