Customer change orders — COR → e-sign → executed

A change order goes through four states. Each is a step the customer (and your insurer) can defend later.

1. **Draft** — you create the COR. Capture: title, what's changing and why, hard cost, markup %, schedule impact in days, and what triggered it (customer request, field discovery, unforeseen condition, design change, RFI-driven, allowance reconciliation).
2. **Priced** — you've confirmed the numbers internally. Click "Mark priced".
3. **Sent to customer** — click "Send to owner". The customer sees the CO on their /me/builds portal with the full description, hard cost, markup breakdown, total price, and any schedule extension.
4. **Signed** — the customer types their name to e-sign on their portal. The platform stamps the signature time + name.
5. **Executed** — a Cloud Function picks up the 'signed' transition and atomically:
• flips the CO to 'executed'
• adds the price to project.approvedChangeOrdersCents and project.currentContractCents
• adds the schedule impact days to project.currentCompletionDate
• snapshots contractSumAfterCents + completionDateAfter on the CO

You cannot delete an executed CO. To reverse one, mark it 'void' — the trigger then re-derives the project totals from the remaining executed COs.

Wally tool: ask Wally "draft a CO on the Smith build — add primary bedroom built-ins, $4,500 cost, 5 days, customer requested" and it will preview the CO before saving as a draft.