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.
B1, so every formula below can reference it.=SUMIF(StatusColumn,"Approved",AmountColumn) — this ignores pending or rejected COs so your running total only reflects money actually committed.=$B$1+SUMIF(...) gives you original contract plus approved changes — the number that should match what you're actually invoicing against.=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.
Back to all tutorials →