A construction job-cost report is the single-job view that lines up, cost code by cost code, the original budget, approved change orders (COs), costs committed through signed subcontracts and purchase orders, actual costs posted to the ledger, and a forecast of what remains — so a US general contractor or subcontractor running accrual-basis books can see a job’s projected final cost and margin while there is still time to act. The biggest limitation: the report is a management tool, not a tax computation or the multi-job work-in-progress (WIP) schedule, and it is only as reliable as the commitment discipline behind it — costs the field has agreed to but the office has not entered will make any job look healthier than it is.
Quick answer
Read each cost-code line in order: revised budget (original budget plus approved change orders), actual cost to date, open commitments (signed subcontracts and purchase orders not yet billed), and forecast to complete for work not yet bought. Actuals + open commitments + forecast = projected final cost; revised budget − projected final = variance; revised contract price − projected final = projected gross profit. Any code trending negative needs a named cause and a decision — price a change order, backcharge the responsible party, re-buy the scope, or absorb the overrun. The job-costing definition and setup basics live in our guide to construction bookkeeping fundamentals; the portfolio schedule built from these numbers is in our construction WIP schedule example. For related topics, see the industry finance guides for small businesses.
What is a construction job-cost report?
A construction job-cost report is a periodic, per-project statement that compares what a job was expected to cost with what it is actually costing and what it is now expected to cost in total. Project managers use it to control the remaining work, owners and estimators use it to see whether the margin priced at bid is surviving execution, and the accounting team uses it as the cost backbone for the monthly close and the WIP schedule.
The report is an accrual-basis management report: on pure cash-basis books, unpaid bills are invisible, so “actual cost to date” understates the job’s real position and the commitment columns matter even more. Three lenses must not be confused: the management view in this report, the US Generally Accepted Accounting Principles (GAAP) book view that drives financial statements and the WIP schedule, and the tax view, where Internal Revenue Code (IRC) section 460 generally requires percentage-of-completion reporting for long-term contracts — contracts not completed within the tax year they are entered into — per the IRS Construction Industry Audit Technique Guide (Publication 5522, revised April 2021; accessed July 28, 2026). Revenue-recognition mechanics and the multi-job schedule stay with the WIP guide; this page owns the one-job report and the field-to-ledger decisions behind it.
How do cost codes organize the report?
Cost codes are the report’s rows: every budget dollar, commitment, and posted cost lands on exactly one code, so overruns have an address. A common US commercial practice builds cost codes on MasterFormat, the master list of numbers and titles published by the Construction Specifications Institute (CSI) to organize construction project information — the same divisions that organize the specifications then organize the budget and ledger. CSI’s current edition is MasterFormat 2020 (per the CSI MasterFormat FAQ, accessed July 28, 2026), and its groups, subgroups, and divisions listing (accessed July 28, 2026) organizes work as follows:
- Division 00 — Procurement and Contracting Requirements;
- Division 01 — General Requirements (supervision, temporary facilities, closeout);
- Facility Construction subgroup, Divisions 02–19 — including 02 Existing Conditions, 03 Concrete, 04 Masonry, 05 Metals, 06 Wood, Plastics, and Composites, 07 Thermal and Moisture Protection, 08 Openings, 09 Finishes, and 14 Conveying Equipment;
- Facility Services subgroup, Divisions 20–29 — including 21 Fire Suppression, 22 Plumbing, 23 Heating, Ventilating, and Air Conditioning (HVAC), 26 Electrical, and 28 Electronic Safety and Security (the 2020 edition’s changes concentrated in Division 28, per the CSI FAQ);
- Site and Infrastructure subgroup, Divisions 30–39 — including 31 Earthwork, 32 Exterior Improvements, and 33 Utilities; and
- Process Equipment subgroup, Divisions 40–49, with unused numbers reserved for future expansion.
A contractor typically takes the division as the first two digits, adds a subdivision for the scope (for example, 03-300 for cast-in-place concrete), and appends a cost type — labor, material, subcontract, equipment, or other — so each line answers both “what work” and “what kind of cost.” Residential and light-commercial builders often use a simpler trade list; the principle is the same. Whatever the structure, granularity controls usefulness. QuickBooks’ own job-costing setup guidance (accessed July 28, 2026) puts it bluntly:
“The level of detail in your Item List will determine the preciseness of your job cost reports.” — Intuit QuickBooks
What do the columns on a job-cost report mean?
Column names vary by software, but the logic is fixed:
- Original budget — the estimated cost by code, carried over from the winning bid. The IRS audit guide describes why this anchor matters:
“The preparation of the bid is the first step in the cost control system.” — Internal Revenue Service, Construction Industry Audit Technique Guide
-
Approved change orders — budget additions (or deductions) for signed scope changes. Keep change-order cost in its own column so base-job performance stays visible. The IRS guide defines change orders as written revisions to the contract that increase or decrease the total contract price paid to the construction contractors.
-
Revised budget = original budget + approved change orders.
-
Actual cost to date — costs posted to the ledger against the job: vendor bills, payroll and burden by timesheet, equipment charges, and subcontractor invoices.
-
Committed cost — the value of signed subcontracts and purchase orders. The open commitment is the unbilled remainder: committed value minus what has already been posted against it.
-
Forecast to complete (also called estimate to complete, or ETC) — the expected cost of remaining work not yet committed, estimated by the project team, not copied from the budget by default.
-
Projected final cost (also called estimate at completion, or EAC) = actual cost to date + open commitments + forecast to complete.
-
Variance = revised budget − projected final cost. Negative means the code is trending over budget.
-
Projected margin = (revised contract price − projected final cost) ÷ revised contract price.
Worked example: reading one job’s report line by line
The following is a hypothetical illustration with made-up inputs for a fictional company, Cedarline Builders LLC, a US general contractor with accrual-basis books and a monthly close. The job is the Sunset Plaza tenant improvement: original contract price $1,200,000, plus $40,000 of approved change orders, for a revised contract price of $1,240,000. The report is as of August 31, 2026. Every figure is invented to show the method.
Table 1: Hypothetical job-cost report for the Sunset Plaza tenant improvement as of August 31, 2026 (USD, made-up inputs).
| Cost code | Original budget | Approved COs | Revised budget | Actual to date | Open commitments | Forecast to complete | Projected final | Variance |
|---|---|---|---|---|---|---|---|---|
| 01 General Requirements | $110,000 | $0 | $110,000 | $55,000 | $12,000 | $38,000 | $105,000 | $5,000 |
| 03 Concrete | $180,000 | $8,000 | $188,000 | $172,000 | $0 | $22,000 | $194,000 | ($6,000) |
| 05 Metals | $95,000 | $0 | $95,000 | $60,000 | $28,000 | $9,000 | $97,000 | ($2,000) |
| 09 Finishes | $140,000 | $20,000 | $160,000 | $45,000 | $70,000 | $45,000 | $160,000 | $0 |
| 22 Plumbing | $85,000 | $0 | $85,000 | $30,000 | $48,000 | $8,500 | $86,500 | ($1,500) |
| 26 Electrical | $120,000 | $5,000 | $125,000 | $50,000 | $60,000 | $12,000 | $122,000 | $3,000 |
| All other codes | $270,000 | $3,000 | $273,000 | $90,000 | $120,000 | $65,500 | $275,500 | ($2,500) |
| Total | $1,000,000 | $36,000 | $1,036,000 | $502,000 | $338,000 | $200,000 | $1,040,000 | ($4,000) |
Walk through 03 Concrete: the revised budget is $180,000 + $8,000 = $188,000; the projected final cost is $172,000 + $0 + $22,000 = $194,000; and the variance is $188,000 − $194,000 = ($6,000), a 3.2% overrun on that code ($6,000 ÷ $188,000). Every other row follows the same three steps, and the totals cross-foot: $502,000 actual + $338,000 open commitments + $200,000 forecast = $1,040,000 projected final, against a $1,036,000 revised budget.
Table 2: Margin build-up for the same hypothetical job (USD).
| Measure | Method | Amount |
|---|---|---|
| Revised contract price | $1,200,000 + $40,000 COs | $1,240,000 |
| Projected final cost | from Table 1 | $1,040,000 |
| Projected gross profit | $1,240,000 − $1,040,000 | $200,000 |
| Projected margin | $200,000 ÷ $1,240,000 | 16.1% |
| Margin at bid | $200,000 ÷ $1,200,000 | 16.7% |
Interpretation: the job is 48.3% complete on a cost-to-cost basis ($502,000 ÷ $1,040,000), and 80.8% of its projected final cost is already bought out (($502,000 + $338,000) ÷ $1,040,000) — most of the remaining risk sits in subcontractor performance and the unbought $200,000, not in pricing. The change orders added $40,000 of revenue against $36,000 of budgeted cost, which should have lifted gross profit to $204,000; the net $4,000 overrun consumes exactly that $4,000 of change-order margin, leaving projected gross profit at the bid-day $200,000 on a larger revenue base — margin dilutes from 16.7% to 16.1%. The concrete overrun surfaced near the halfway point, with 88.7% of that code’s projected cost already posted ($172,000 ÷ $194,000): now is the moment to quantify the cause (rebar escalation, extra forming, a scope gap) and decide whether it is a change order, a backcharge, or an absorbed loss — not after closeout. Finishes is 71.9% bought out (($45,000 + $70,000) ÷ $160,000) and holding at budget; General Requirements trends $5,000 under, worth a schedule check because added duration can quietly consume that saving in supervision months.
What questions should the owner and project manager ask?
A monthly job-margin review works when both sides of the office-field line interrogate the same report:
- Which codes are trending over, and why? Every negative variance gets a named cause and a decision: change order, backcharge, re-buy, or absorb.
- Are all commitments entered the day they are signed? A purchase order sitting in a truck is an overrun the report cannot see.
- Is the forecast to complete honest? A forecast that always equals budget minus actuals is not a forecast. Re-estimate remaining work from the field each month.
- What is still unbought? Scopes without commitments carry the most pricing risk; compare the uncommitted forecast against current market quotes.
- Are change orders separated? If change-order cost blends into base codes, you cannot tell whether the base job or the changes are performing.
- Does the forecast match the schedule? Slippage adds time-driven cost to General Requirements even when trade codes look fine.
- Does this report tie to the ledger and the WIP schedule? Actuals must reconcile to posted job costs, and the projected final cost feeds the estimated-total-cost column on the WIP schedule.
Where do job-cost reports go wrong?
The failure modes are procedural, not mathematical:
- Late commitment entry. Subcontracts and purchase orders recorded only when the first invoice arrives hide the job’s true position for weeks. Enter commitments at signing so invoices draw down open commitments instead of surprising the budget.
- Loose coding at entry. Every bill, timesheet, and credit card charge needs both the job and the cost code at entry. In QuickBooks Online, projects group a job’s income and costs in one place (per Intuit’s projects setup guide, accessed July 28, 2026), and the Desktop guidance requires assigning expenses to the job on each bill, check, or timesheet — a cost posted to the wrong job or to overhead disappears from the report.
- Stale forecasts. The forecast column only has value when the project manager and superintendent re-approve it monthly.
- Basis confusion. This management report, the GAAP book numbers on the WIP schedule, and the tax percentage-of-completion computation under IRC section 460 are three related but distinct views; reconciling items among them are normal and expected.
FAQs
Is committed cost the same as actual cost?
No. Committed cost is the contractual obligation created when a subcontract or purchase order is signed; actual cost is what has been posted to the ledger as incurred or billed. A job can look on-budget in actuals while a freshly signed subcontract has already locked in an overrun, which is why the commitment column exists.
Is a job-cost report the same as a WIP schedule?
No. The job-cost report covers one job’s costs in detail and is a management tool. The WIP schedule lists every open job on one page and computes percent complete, earned revenue, and over/under billings for financial reporting. The job-cost report’s projected final cost feeds the WIP schedule; see the construction WIP schedule example for that side.
How often should we update the job-cost report?
Update commitments continuously as they are signed, post actuals through the normal accounts payable and payroll cycles, and re-approve the forecast to complete at least monthly as part of the close. Quarterly is too slow to catch a fading code while recovery options still exist.
Can a cash-basis contractor use a job-cost report?
Yes, with a caveat: cash-basis books only record costs when paid, so “actual to date” lags the job’s real position. Rigorous commitment tracking fills much of that gap, but accrual-basis job costing produces the cleanest actuals and is what GAAP financial statements and the WIP schedule require.
What is a good job margin?
There is no universal number worth trusting, and this article deliberately cites no industry benchmark: appropriate margins vary by contractor type, project mix, risk, and overhead structure. The useful comparison is internal — projected margin against the margin at bid, and against your own completed-job history.
The bottom line
Build the report monthly, read it code by code in the order budget → actuals → commitments → forecast → variance → margin, force commitments into the system at signing, and make every negative variance produce a decision. That discipline is what turns a job-cost report from a history document into a control tool. If your job margins only become visible after closeout, our construction bookkeeping services team can set up the cost-code structure, commitment entry, and a monthly job-margin review — the same kind of cost-overrun investigation and dashboard work described in our construction contractor payments and cost-overrun audit case study, an anonymized client engagement. To see how this report rolls up into the portfolio view, continue with the construction WIP schedule example.
This article is general educational information, not tax, legal, or accounting advice. Construction accounting methods, GAAP presentation, and IRC section 460 tax rules depend on your contracts and facts and change over time; consult a qualified construction accountant or tax advisor before changing how you recognize revenue or cost on your books.