All guides

Guide

Change orders, commitments and the cost you have not been billed for yet

Most of a job’s cost is decided long before an invoice arrives: when the subcontract is signed, when the purchase order is issued, when the change order is approved. A job cost system that only sees invoices is reporting history. Managing committed cost and change orders is how you see the job’s outcome while you can still change it.

Updated October 2026

The three numbers on every cost code

NumberWhat it isWhere it comes from
BudgetWhat you planned to spend, as adjusted by approved change ordersThe estimate, plus approved changes
CommittedWhat you have agreed to pay but not yet been billed forOpen purchase orders and subcontracts, including their approved change orders
Incurred (actual)What has been billed to you or earned by your peoplePosted vendor bills, pay applications, payroll, equipment and allocations

Projected cost at completion is incurred cost plus the cost still to come. For a subcontracted scope, the cost to come is mostly the unbilled balance of the subcontract, so committed cost does most of the work. For self-performed scopes it is a judgment: the remaining labor and material the project manager expects. Either way, the comparison that matters is projected cost against budget, by cost code, every month.

Change orders: owner side and vendor side

A change order has two sides that are often confused. An owner change order changes the contract value and usually the budget. A subcontract or purchase order change order changes a commitment. A single event, say unforeseen rock, produces both: a change order to the owner for the added scope, and a change order to the excavation subcontractor for the added work. Track both, and tie them to each other.

StageOwner change orderCommitment change order
Potential / pendingPriced and submitted, not yet approved; show exposure, do not change contract valueProposed by the vendor; show exposure, do not change committed cost
ApprovedContract value and budget change as of the effective dateCommitted cost changes; the PO or subcontract balance moves
Rejected or withdrawnKeep the record; the cost may still hit the job without the revenueKeep the record; the vendor may still perform and bill

The dangerous state is work performed on a pending owner change order. The cost is real and posts to the job; the revenue is a hope. A forecast that assumes approval overstates margin, and a forecast that ignores the pending change understates it. Carry pending changes separately so the reader can see both cases.

Purchase orders, subcontracts and requisitions

Not every commitment is equally firm. A requisition the project manager has raised is intent; a purchase order the vendor has accepted is binding; a signed subcontract is binding and large. Treat them as stages rather than one bucket.

  • Requisitions (pre-encumbrance): planning exposure, visible but not binding
  • Purchase orders and subcontracts (encumbrance): binding commitment, the floor under projected cost
  • Receipts and pay applications: the commitment converting into incurred cost
  • Closeout: open balances on complete POs released so they stop inflating projected cost

None of these stages are expenses or liabilities under GAAP. They are budgetary controls. Only posted invoices, pay applications and payroll reach the financial statements, which is why the job cost report and the general ledger need to be the same system: the commitment columns live beside the posted columns, and the posted columns are the ones that roll up.

Forecasting with commitments

The estimate to complete on a cost code cannot be less than the open binding commitments on it; the subcontractor is going to bill that balance whether or not the project manager believes it. A forecast review should start from the committed floor and ask what else is coming. When projected cost exceeds budget on a code, the questions are: is there a pending change order that will cover it, is there a commitment change order that should have been issued, or is this real fade that needs to be in the margin forecast now.

Where it goes wrong

  • Subcontracts tracked in a contracts folder, not in job cost, so committed cost is whatever someone last typed into a spreadsheet
  • Change orders approved verbally in the field and entered weeks later, after the cost has already posted against the old budget
  • Pending change orders counted as contract value in the forecast
  • Complete purchase orders left open with small balances, overstating projected cost on every job
  • Vendor change orders issued without a matching owner change order, so the margin loss is discovered at closeout
  • Projects closed while commitments are still open, so late invoices land on a closed job

How Forge ERP handles change orders and commitments

Forge keeps the commitment stages explicit. Approved purchase requisitions post pre-encumbrances; approved purchase orders and contracts post binding encumbrances; job cost reports show pre-encumbered, encumbered and actual cost as separate columns and a total commitment exposure beside them. Only posted actual-ledger entries reach the financial statements. Project change orders carry an approval and an effective date; approved changes adjust the budget and contract value as of that date, while pending entries stay non-posting and show as potential cost and revenue impact in the change-order exposure report. Purchase orders have their own change orders, so a vendor change moves the commitment without retyping the PO.

Forecasts are prepared by cost code, submitted, and approved by someone other than the preparer where another approver exists; the estimate to complete cannot be set below open binding encumbrances. Project closeout is refused while binding encumbrances, approved requisitions, draft or pending change orders, or an unresolved forecast remain, so a job cannot be closed with cost still on its way.

Forge ERP covers projects, purchasing, accounts payable, billing and receivables, job cost and WIP, reporting and close. Payroll runs in your payroll provider and lands in Forge as job-costed labor with burden. Forge is in beta with a 14-day free trial.

Frequently asked

Is committed cost the same as an accrual?
No. An accrual records cost for work already performed but not yet invoiced, and it posts to the ledger. Committed cost records an obligation for work not yet performed, and it does not post to the ledger. A subcontract that is 60% performed and 50% billed has an accrual for the unbilled 10% and a commitment for the remaining 40%.
Should pending change orders be in the budget?
Not in the approved budget. Show them as a separate exposure line so projected margin can be read with and without them. Once approved, they move into the budget and contract value as of their effective date.
How do I keep committed cost accurate?
Issue every subcontract and purchase order through the system before work starts, issue change orders against them rather than new POs, and review open commitment balances at each month-end close, closing out what is complete.

Related guides

See it on your own cost codes.

Start a 14-day trial, or send us your chart of accounts and cost-code list and we will walk you through Forge on them.

Request Early Access