NEW 21-day free trial · onboard your first project in a day · cancel anytime Start free

The Complete Guide to Construction Job Costing for Trade Contractors

Trade contractors who cannot explain where their margin went on a completed project are running on intuition rather than information, and intuition fails at scale: projects that look profitable during construction repeatedly close out at losses that no one saw coming.

This guide walks through the full job costing framework for trade contractors: how to build a schedule of values that supports cost tracking, how to monitor committed and actual costs against budget, how change orders and retainage affect your cash position, and how to read a project in real time rather than discovering overruns after the fact.

Start free

The problem this guide solves

Job costing is the practice of tracking the revenue and costs of each individual project to determine its profitability. It sounds straightforward, but most trade contractors operate without reliable job costing because the data that job costing requires, accurate cost allocations by project, committed costs from purchase orders and sub contracts, change order tracking, and retainage adjustments, is spread across accounting software, spreadsheets, email, and the estimator's memory. The result is that contractors know their company's overall profit and loss at tax time but cannot tell you, during the project, whether a specific job is on track, running over, or quietly hemorrhaging margin. This creates two failure modes. The first is project overruns that are discovered only at close out, after every opportunity to correct them has passed. The second is mispricing: contractors who cannot see where costs went on past projects repeat the same estimating errors on future bids, underpricing the categories where they consistently lose money. The schedule of values is the job costing foundation. A well-built SOV breaks your contract into line items that correspond to discrete, trackable cost categories. When costs are allocated against those same line items as they are incurred, you have a real-time view of budget versus actual for each component of the job. When the SOV is too vague or too aggregated, cost allocation becomes impossible and you are back to end-of-project surprises.

Why it matters

Retainage complicates cash position in a way that catches many trade contractors off guard. If your contract holds 10 percent retainage on every draw, you are effectively financing 10 percent of the project for the entire construction period. On a long project, the cash tied up in retainage can represent several months of operating capital. A contractor whose job costing does not account for retainage will consistently overestimate their available cash, making commitments against funds that are not yet receivable. Change orders are the other major job costing pressure point. Every approved change order that is executed before it is approved in writing is a cost incurred without a corresponding revenue booking. Over the course of a project with frequent verbal change orders, the gap between costs incurred and revenue approved can grow to a material figure. A contractor who tracks change orders through their job costing system catches this gap in real time. A contractor who does not discovers it only at closeout, when they are trying to recover amounts the GC has no record of approving. Work in progress reporting is the aggregate view of job costing across all active projects. A WIP report shows, for each active project: the contracted value, the revenue earned to date, the costs incurred to date, the estimated costs to complete, and the projected final margin. Contractors who read WIP reports regularly can see projects that are trending toward loss early enough to take corrective action. Contractors who do not have this view cannot.

Common mistakes

Try
Using a vague schedule of values as the cost tracking backbone
Reality
A schedule of values with three line items (materials, labor, overhead) cannot support meaningful job costing because costs cannot be meaningfully allocated to those categories in a way that reveals where margin is made or lost. A job costing SOV should mirror the estimating breakdown: if you estimated labor for rough-in, trim, and punch list separately, those are separate SOV line items, and labor costs are allocated to the matching line as they are incurred.
Try
Tracking only actual costs, not committed costs
Reality
Committed costs are costs you have contractually obligated yourself to pay but have not yet paid: purchase orders to suppliers, subcontract commitments, rental agreements. If you track only actual costs (invoices received and paid), your budget-versus-actual view will always understate your cost exposure on active projects, because the purchase orders and sub commitments you have already made are not yet visible. A job cost report that includes committed costs gives you a true picture of where the project stands.
Try
Not updating the budget when change orders are approved
Reality
An approved change order increases both your revenue and your cost budget. If you execute a change order but do not update the SOV and the cost budget, you will show a cost overrun against your original budget even though the additional cost is covered by the change order. Every approved change order should update the contract sum, the SOV, and the cost budget simultaneously so that your budget-versus-actual comparison is always against the current authorized scope.
Try
Allocating costs to the wrong project
Reality
In companies running multiple active projects with shared crews and shared material deliveries, cost misallocation is a chronic problem. Labor hours coded to the wrong job number, materials delivered to one project billed to another, and equipment costs spread across projects without a clear basis produce job cost reports that are wrong for every project involved. Misallocated costs hide overruns on the project receiving extra costs and hide losses on the project losing costs.
Try
Ignoring the impact of retainage on cash position
Reality
Job costing that tracks revenue as the certified draw amount without accounting for retainage overstates available cash. The correct cash-position view deducts retainage from earned revenue to show the net receivable for each project. A project with $200,000 in certified draws and 10 percent retainage has $180,000 of actual receivable, not $200,000. A contractor whose cash planning is based on the gross certified number will consistently overcommit.
Try
Not estimating costs-to-complete on active projects
Reality
Knowing what you have spent is only half of job costing. The other half is estimating what you still need to spend to complete the project and checking whether your remaining budget covers it. A project that is 60 percent complete but has spent 75 percent of its labor budget has a problem that is clearly visible if you estimate costs to complete. A contractor who only reviews historical costs misses this signal until it is too late to act on it.

The full process

  1. Build a job costing schedule of values at contract execution
    At contract execution, build a schedule of values that is detailed enough to support cost tracking by category. The SOV should mirror your estimate breakdown, with line items corresponding to cost categories where you have meaningful cost exposure: materials by major category, labor by phase, subcontract scope, equipment, and overhead allocation if applicable. Every line item should have a budgeted cost and a scheduled revenue value. The relationship between budgeted cost and scheduled revenue for each line item is your planned margin for that component of the job, and it is the baseline against which you will compare actual results.
  2. Record committed costs as soon as obligations are made
    As soon as you issue a purchase order or execute a subcontract, record the committed cost against the relevant SOV line item. Do not wait for the invoice to arrive. Your committed cost ledger tells you how much of each budget line is already obligated, leaving you with a clear view of how much is still uncommitted and available for additional spending or contingency. Committed cost tracking is the difference between a job cost report that reflects your true cost exposure and one that significantly understates it.
  3. Allocate actual costs to projects as they are incurred
    Every cost incurred on a project should be allocated to the correct project and to the correct SOV line item as soon as the cost is confirmed. This means labor hours must be reported by project at the time they are worked, not reconstructed from memory at the end of the month. Materials and subcontractor invoices must be coded to the project at the time of approval, not after the fact. The timeliness of cost allocation determines the timeliness of your job cost visibility: a cost not allocated until month-end cannot inform a management decision made in the middle of the month.
  4. Track change orders from submission through execution
    Every change order has a lifecycle: identified, submitted for approval, approved or rejected, executed, and billed. Your job cost system should track each stage. Identify the cost you will incur, the revenue you are requesting, and the net margin impact of the change. When a change is approved, update both the contract sum and the cost budget. When a change is executed, track the actual cost. When a change is billed in a draw, track the revenue. A change order that is executed but not yet approved should be flagged as a cost incurred against unconfirmed revenue, so you can see the pending margin exposure.
  5. Estimate costs to complete at each draw cycle
    At the time of each progress billing, do a quick estimate of costs to complete for each major SOV line item. Compare the sum of costs incurred to date plus estimated costs to complete against the budget for each line. Any line where that sum exceeds the budget is a cost overrun in progress. The earlier you identify an overrun, the more options you have: value-engineer remaining scope, recover costs through a change order if the overrun is caused by owner-directed changes, or at minimum plan your cash flow around a reduced final margin.
  6. Account for retainage in your cash position reporting
    Your job cost cash position for each project should show: total certified draws to date, total retainage withheld, total net receivable (certified draws minus retainage), total received, and total outstanding (net receivable minus received). This view tells you exactly how much of your earned revenue is in hand, how much is outstanding but not retained, and how much is locked in retainage. Your operating cash planning should be based on the net receivable position, not the gross certified amount.
  7. Produce and review a WIP report monthly
    A work in progress report is the aggregate job costing view across all active projects. For each project, the WIP report shows: contracted value, earned value (based on percent complete), costs incurred to date, estimated costs to complete, projected final cost, projected final revenue, and projected final margin. The WIP report surfaces projects trending toward loss early, when corrective action is still possible, and tells you the aggregate earned revenue across your portfolio so you can compare it to actual costs and identify systemic estimation errors that repeat across jobs.
  8. Close out the job cost at project completion and reconcile to final billing
    At project completion, close out the job cost record by confirming that all costs are allocated, all change orders are reflected in the contract sum, all draws are reconciled to certified amounts, and the final retainage balance is recorded. Compare final project results to the original estimate: where did actual costs exceed the budget, and by how much? Where did actual revenue fall short of contracted value due to rejected change orders or draw reductions? The closeout reconciliation feeds your estimating database so future bids are calibrated against real project results, not theoretical assumptions.

Where Scaftra fits

Scaftra connects the billing workflow to the job cost view directly through the schedule of values. Every pay application is generated from the SOV, and every approved change order updates the SOV and contract sum in real time, so your billing and your job cost baseline are always in sync. Retainage is tracked cumulatively and reflected in the project's financial position so you can see your net cash position, not just gross certified amounts, at any point in the project lifecycle. The project budget view shows contract value, billed to date, retainage held, and remaining balance by project, giving you the real-time financial position that job costing requires.

Key surfaces

  • Schedule of Values and Budget Tracking: Build and maintain a project SOV in Scaftra that serves as both the billing backbone and the job cost baseline. Each SOV line item carries a scheduled value and tracks billed-to-date so the budget versus billed position is visible at the line item level, not only at the project total.
  • Change Order Integration: Approved change orders update the SOV and contract sum automatically, so every subsequent draw reflects the current authorized scope. The change order log provides a complete audit trail of every scope addition or reduction, with approval status tracked at each stage.
  • Retainage Tracking: Retainage held is tracked cumulatively across every draw and reflected in the project's financial position. The retainage balance is visible separately from the gross certified amount so your cash position view is accurate rather than overstated.
  • Pay Application Workflow: Pay applications are generated from the live SOV, with completion percentages, retainage calculations, and cumulative billing all computed automatically. The draw history provides a complete billing record that supports both job cost reconciliation and audit-ready financial reporting.
  • Project Financial Dashboard: The project financial view consolidates contract value, billed to date, retainage held, net receivable, and remaining balance in a single dashboard. This is the real-time cash position view that job costing requires, without the manual reconciliation of separate billing and accounting records.

What changes

  • See project financial position in real time, not at closeout, so overruns can be identified and addressed while options still exist.
  • Never lose margin to unapproved change orders by tracking change order revenue and costs from submission through billing.
  • Know your true cash position by seeing net receivable (certified minus retainage) rather than gross certified amounts.
  • Calibrate future estimates against real project results by closing out job cost records at project completion.
  • Keep billing and job cost in sync automatically through the SOV connection between pay applications and change orders.
  • Identify systemic cost overruns in specific work categories by comparing actual costs to budget at the line-item level across multiple projects.

Who this guide is for

Specialty trade owner trying to understand where margin goesProject manager who cannot explain project overrunsController or bookkeeper new to construction accountingGrowing trade contractor transitioning from intuition to systems
  • Specialty trade owner trying to understand where margin goes.You finish projects that looked profitable during construction and discover at closeout that they were not. You cannot identify which cost category eroded the margin because costs were not tracked with enough granularity to tell you. This guide builds the job costing foundation that makes the answer to that question visible on your next project.
  • Project manager who cannot explain project overruns.You manage projects and you know when something is going wrong in the field, but you do not have the financial visibility to quantify the impact in real time or to predict the final margin. Job costing gives you the financial layer on top of the operational view so you can manage both simultaneously.
  • Controller or bookkeeper new to construction accounting.You understand accounting but construction-specific concepts like schedule of values, retainage, committed costs, and work in progress reporting are new. This guide builds the conceptual framework for construction job costing so you can set up processes that capture the right data at the right time.
  • Growing trade contractor transitioning from intuition to systems.Your company worked fine at five projects a year when you could hold everything in your head. At fifteen projects, the overhead of tracking every job's financial position manually has become unsustainable. This guide covers the systematic job costing approach that scales with project volume without requiring manual reconciliation on every job.

Frequently asked questions

What is the difference between job costing and regular accounting?
Regular accounting tracks income and expenses at the company level: total revenue, total costs, total profit for the period. Job costing tracks revenue and costs at the project level: what did this specific project earn, what did it cost, and what was its margin. Job costing is the layer that tells you which projects are profitable and which are not, which regular accounting alone cannot answer.
What is a schedule of values and how does it relate to job costing?
A schedule of values is the breakdown of your contract into line items with assigned values, submitted to the GC or owner at the start of the project. It serves double duty in job costing: as the billing baseline (you bill against it on every draw) and as the cost tracking baseline (you compare actual costs to the budget by matching the SOV's cost allocation). A good SOV makes job costing natural; a vague SOV makes it nearly impossible. See /learn/what-is-schedule-of-values/.
What is a committed cost?
A committed cost is a cost you have contractually obligated yourself to pay but have not yet paid or invoiced. Purchase orders to suppliers and executed subcontracts are the most common forms of committed costs. Including committed costs in your job cost report gives you a forward-looking view of total cost exposure, not just what has been invoiced to date.
How does retainage affect job costing?
Retainage is withheld from every draw and represents earned revenue you cannot collect until the project reaches substantial completion. Your job cost cash position should show certified draws minus retainage held as the net receivable, not the gross certified amount. Planning cash flow against gross certified amounts consistently overstates available cash by the retainage percentage. See /learn/what-is-retainage/ for how retainage is calculated and released.
What is a WIP report?
A work in progress report aggregates job cost data across all active projects and shows, for each project, the gap between earned revenue (based on percent complete) and costs incurred to date, along with the estimated cost to complete and projected final margin. WIP reports are the primary tool for identifying projects trending toward loss while there is still time to take corrective action.
How do I handle change orders in job costing?
Every change order has both a revenue component (the amount you are billing the GC or owner for the change) and a cost component (what the change will actually cost you). Track both from the moment the change is identified. When approved, add the change to both the contract sum and the cost budget. When executed, record the actual cost. When billed, record it in the draw. A change order not tracked through this lifecycle creates a gap between your cost exposure and your visible budget.
How far back should I go to build historical job cost data?
The most actionable historical data comes from the last 12 to 24 months of completed projects. Focus on projects where you can reconstruct final costs at the category level, even if you have to estimate. The goal is to identify your consistent cost overrun patterns by category (labor on trim work, material waste on specific products, sub cost overruns on certain scope types) and use that data to correct your estimating rates on future bids.

One job. One record. From the field to the books.

Bring one project onto Scaftra. We'll set up your trades, your rooms, your proof chain, and your vendor portal, and connect it to the financial system you already run.