BuildQuantify logoBuildQuantify
COST TRACKING

Change Order Tracker in Excel

Change orders are where budgets quietly drift. A simple running log that compares the original contract to every approved change keeps that drift visible instead of discovered at project close-out.

1
Record the original contract value.
Put this in a labeled cell at the top of the sheet, e.g. B1, so every formula below can reference it.
2
Log each change order as a row.
Columns: CO Number, Description, Date Submitted, Status (Pending/Approved/Rejected), and Amount (use negative numbers for credits/deductions).
3
Sum only approved change orders.
=SUMIF(StatusColumn,"Approved",AmountColumn) — this ignores pending or rejected COs so your running total only reflects money actually committed.
4
Calculate the revised contract value.
=$B$1+SUMIF(...) gives you original contract plus approved changes — the number that should match what you're actually invoicing against.
Add a "% of Original Contract" column using =RunningTotal/$B$1 — many owners and GCs start asking questions once cumulative change orders cross 5–10% of the original contract value, so this flags that threshold automatically.

Keeping this updated in real time — not retroactively at the end of the job — is what actually prevents scope creep from becoming a dispute at closeout.

Worked example: an $850,000 contract

With the original contract value of $850,000 in cell B1, the log might look like this:

CO #DescriptionStatusAmount
CO-01Added footing at grid CApproved$12,400
CO-02Owner deletes landscapingApproved-$6,500
CO-03Upgraded window packagePending$9,600
CO-04Extra parking stripingRejected$3,200

The SUMIF on Approved rows returns $5,900, so the revised contract value is $855,900 and cumulative changes are about 0.69% of the original contract. CO-03 is not counted yet, but =SUMIF(StatusColumn,"Pending",AmountColumn) shows $9,600 of pending exposure. If it is approved, the revised value would be $865,500, which is useful for forecasting.

Extra columns worth adding

  • Days to approve with =IF(DateApproved="",TODAY()-DateSubmitted,DateApproved-DateSubmitted). Slow approvals are a cash-flow risk.
  • Schedule impact (days) so time extensions are tracked next to the dollars.
  • Reference to the RFI, ASI or email that triggered the change, which makes disputes much easier to resolve.

Frequently asked questions

Should rejected change orders stay in the log?

Yes. Keep them with a Rejected status so there is a record of what was requested and declined. The SUMIF on Approved already ignores them.

What if a change order is partly approved?

Log the approved portion as its own line with the approved amount, and note the original CO number in the description so the history is traceable.

Back to all tutorials →
← Back to all tutorials