Change order accounting is how you keep contract value, estimates, billings, and job costs honest after the scope moves. Most margin leaks on construction jobs don't start as a bad bid — they start as work that left the trailer without a paper trail, sat as "pending," or hit the books under the wrong cost code. By the time the P&L looks wrong, the job is already half done.
Below: approved vs pending vs unapproved, updating contract value and estimates, billing COs, job-cost coding for CO work, and impact on the WIP schedule and percentage-of-completion (POC). Suspect unbilled COs? Start with a DIG Diagnostic.
A change order isn't just a field event. On the books it touches five places at once:
| Seat | What should move when a CO is real |
|---|---|
| Contract value | Up (or down) for the approved price |
| Estimated cost at completion | Up for the expected cost of the CO work |
| Job costs | Actual labor, materials, subs posted to the right job / code |
| Billings | Pay apps that include the CO once it's billable |
| Earned revenue (POC) | Recalculated from the new contract × new % complete |
Miss any one and the WIP lies: contract up / estimate stale → fake profit; costs without approval → unbillable underbillings; billed before paper → collectability risk. The fix is matching paper to books every cycle — not a clever journal entry.
Blackline Financial is construction-only bookkeeping and advisory for contractors and specialty trades (roughly $1M–$30M). We do not prepare tax returns — tax treatment of long-term contracts is something we coordinate with your CPA. Job costing, monthly close, and WIP / CO hygiene for Frame-level work live on services. Every engagement starts with a DIG Diagnostic; every package is custom-quoted.
These three words get used interchangeably in the trailer. On the books they mean different things — and only one of them should change contract value.
| Status | What it means | Books treatment |
|---|---|---|
| Approved | Owner (or GC) signed; price and scope agreed | Update contract value and estimated cost; bill per contract / SOV; cost the work to the job |
| Pending | Submitted; waiting on signature or negotiation | Do not raise contract value yet; track separately; may accrue costs if work already started (flag as risk) |
| Unapproved | Work done or directed with no paper (or paper rejected) | Do not treat as contract; costs still hit the job; often the root of sticky underbillings |
Approved is the only status that should increase the contract column on the WIP. Pending is a pipeline, not revenue. Unapproved is a claim or a giveaway until someone papers it — and "we'll catch it at the end" is how contractors finance the owner's project.
Pending isn't worthless — it's a forecast. Track pending COs off to the side (or in a pending column) so cash planning and bonding conversations know what's in flight. Just don't let pending quietly become "we already booked it."
When a CO is approved, update both sides of the estimate — price and cost — in the same close cycle. Updating only the contract value is how jobs look more profitable than they are.
Contract value. Add the approved CO amount to the job's current contract. The WIP "contract" column should always mean current price including approved change orders, not original bid. If you run a schedule of values, add a CO line (or revise the affected lines) so billing can follow.
Estimated cost at completion (EAC). Add the expected cost of the CO work — labor, materials, equipment, burden, subs — using the same cost codes you estimate with. If the CO is a credit / deductive change, reduce EAC as well as contract. Stale EACs poison percent complete; poisoned percent complete poisons earned revenue under POC.
Estimated gross profit. New contract − new EAC. Thin pricing or cost already spent above the CO price should drop estimated GP — that's information, not something to hide. Confusing markup vs margin at bid time is how "approved" COs still lose money.
Timing. Catch the books up in the same month the CO is signed (or the next close). Leaving approved COs off the WIP for "later" fakes the over/under position until a bank or surety asks for a current schedule.
| Update | Do | Don't |
|---|---|---|
| Contract | Raise (or lower) for approved COs only | Book pending / unapproved as contract |
| EAC | Raise for expected CO cost in the same cycle | Leave original estimate untouched after a big CO |
| GP | Recalculate; face thin or negative CO margin | Assume every CO is "extra profit" |
| History | Keep original bid + CO log auditable | Overwrite the original contract with no trail |
Approved doesn't automatically mean billed. Billing COs is its own failure mode — and one of the most common sources of underbillings.
When you can bill. Follow the contract (on execution, in place, or next pay-app cycle). Put a hard internal deadline on it — treat a missed CO draw like a missed payroll.
On the pay app. Add the CO to the schedule of values, include it in the current application, and keep retainage rules consistent with the base contract unless the CO says otherwise.
What not to do.
If the portfolio under-bill is mostly "COs we haven't invoiced," that's a process fix, not a margin mystery. If the under-bill is "work we did that will never get a CO," that's fade — update EAC and let POC tell the truth.
Change-order work that posts to the wrong place is invisible until it's expensive.
Same job, clear codes. CO costs belong on the same job as the base contract. Use cost codes that match how you estimate — ideally a CO-specific code, a CO suffix on existing codes, or a phase that your job costing in QuickBooks Online setup can report. The goal: you can answer "what did CO #7 actually cost?" without a forensic rebuild.
Labor, burden, subs, materials. Same burden rules as base work; vendor bills and POs should reference the job and the CO (or CO code). Dump codes and untagged materials make the CO look fine until closeout while base codes eat the overrun.
Unapproved work already in motion. Still post costs to the job (so WIP/EAC stay honest), flag pending/unapproved exposure, and push the paper. Parking those costs in overhead just moves the lie.
| Coding habit | Result |
|---|---|
| CO costs on job + CO code | CO margin visible; WIP/EAC updateable |
| CO costs on job, no CO tag | Base codes absorb overruns; CO looks fake-profitable |
| CO costs in overhead / dump | Job and company both lie; underbillings harder to explain |
| CO revenue without CO cost codes | Inflated CO GP; surprise at closeout |
Clean coding is what makes the next section — WIP and POC — trustworthy. Pretty CO logs on top of mushy job costs are still mush.
Change orders are not a side schedule. They rewrite the inputs that drive the WIP schedule and percentage-of-completion.
WIP columns that move
| WIP column | CO effect |
|---|---|
| Contract value | + approved CO price (only) |
| Estimated total cost | + expected CO cost (EAC) |
| Costs to date | Actual CO costs as posted via job costing |
| Percent complete | Usually costs to date ÷ new EAC — moves when either side changes |
| Earned revenue | New contract × new % complete |
| Billed to date | + CO billings once pay apps include them |
| Over / under billing | Recast after contract, earned, and billed all update — see over / under billing |
POC. Under cost-to-cost, earned follows percent complete. A proportional CO (price and EAC up together) may barely move % complete, but earned still steps up with the larger contract as work progresses. Cost ahead of price — or cost spent before approval — can drop % complete and expose fade. That's the system working.
Underbillings linked to COs. Sticky underbillings usually mean approved-but-unbilled COs, pending/unapproved work already costed, or EAC up with no contract bump. Don't "bill harder" until you know which — over / under billing walks that fork. Thin COs also fade estimated GP; that read lives on the same WIP that drives POC, not a separate magic report.
Example only — not a client case, not a quote. Round placeholder figures to show the books path.
Starting position (Job D, before CO):
| Item | Amount |
|---|---|
| Original contract | $1,000,000 |
| Original EAC | $800,000 |
| Costs to date | $400,000 |
| Percent complete | 50% |
| Earned revenue | $500,000 |
| Billed to date | $480,000 |
| Position | $20,000 under |
Approved CO #1: +$100,000 price, expected cost +$70,000. Same month, $40,000 of CO cost is already posted; CO not yet billed.
| Item | After CO books catch-up (illustrative) |
|---|---|
| Contract | $1,100,000 |
| EAC | $870,000 |
| Costs to date | $440,000 |
| Percent complete | ~50.6% ($440K ÷ $870K) |
| Earned revenue | ~$556,600 |
| Billed to date | $480,000 (CO not on pay app yet) |
| Position | ~$76,600 under |
Illustrative only. Not a client case, not a quote.
How to read it:
Stack CO catch-up every month as part of close (how we close), not the week a pay app or bonding packet is due.
This only works on construction books: complete job costing, a current WIP, and a disciplined close. A tidy CO log on top of unreconciled accounts is still fiction.
Change order accounting is how contractors update contract value, cost estimates, job-cost coding, and billings when scope changes — so the WIP schedule and percentage-of-completion stay honest. Approved COs change the books; pending and unapproved COs need tracking without pretending they're contract revenue.
When the CO is approved (signed / executed). Pending submissions and unapproved field work should not raise the WIP contract column. Update estimated cost at completion in the same cycle as the contract bump.
Approved COs raise contract value and usually raise EAC. Percent complete (often cost-to-cost) and earned revenue recalculate from those new inputs; billings catch up when the CO hits a pay app. The over/under column on the WIP moves as a result — see WIP schedule, POC, and over / under billing.
Costs hit the job (and can inflate earned revenue if EAC isn't faced), but you can't invoice without paper. That gap looks like underbilling. Fix the paper — or, if the work will never be approved, update EAC and recognize the margin hit instead of chasing an invoice that isn't coming.
Post CO labor, materials, and subs to the same job with codes that isolate CO cost (CO code, suffix, or phase). That is what makes CO margin and EAC updates real. Setup patterns for QBO: job costing in QuickBooks Online.
Yes — the DIG Diagnostic is where we review books, job costing, WIP, and close for contractors (roughly $1M–$30M). Ongoing close and WIP hygiene sit in Foundation / Frame; fractional CFO planning in Blueprint — all custom-quoted on services / contact. We don't prepare tax returns; we coordinate with your CPA when tax questions come up.
Tell us about your construction business and we'll put together a custom quote — usually within one business day. DIG first; no invented rate card.
Book the DIG Diagnostic →Call (480) 617-2664
Blackline Financial · 4320 E Brown Rd, Suite 103, Mesa, AZ 85205