Change order record
What it's for
A change order record is one change order in full: its lines, its status, and the history of how it got there. It is the screen you open to edit a change order while it's still a draft, move it to the next status, or see who approved it and when.
Reach it by opening a row on the project record's Change orders tab. The
route is /projects/<project>/change-orders/<change order>.
Tabs
- Change order lines — the change order's cost lines, grouped by the project phase they belong to.
- Status — the control that moves the change order to its next status, and the history of every status change so far.
Panels and controls
Header
The header shows the change order's number (or title, if it has no number yet) and a five-step status tracker: Draft → Sent → Tentatively approved → Approved → Done. The current status is highlighted.
A Stalled badge appears next to the title when the change order has sat in Sent or Tentatively approved for 7 days or more without moving — those are the two statuses where the customer, not your company, is expected to act next. The badge clears as soon as the change order moves to its next status or is re-sent. Your team is also notified once a stalled change order reaches 14 days.
Change order lines
Lines are grouped under the project phase they bill against. While the change order is in Draft, each phase's lines are editable in place — Description, Kind, Qty, Unit price, and Unit cost each have their own field, with Save to keep an edit and Remove to delete the line (with a confirmation). A row at the bottom of each phase's lines lets you Add line to that phase. If the project has a phase that has no lines on this change order yet, an Add a line to another phase section lets you pick that phase and add the first one.
Once the change order leaves Draft (moves to Sent or later), the lines become read-only — the table just shows what's on the change order, with no edit, add, or remove controls. This keeps the change order's lines fixed once it becomes the customer-facing record a customer may already be looking at; to change something after that point, a new change order is created instead.
Each line shows its Total (quantity × unit price), and the aside card shows the change order's grand Total across every line and phase.
Status
Move to <next status> advances the change order exactly one step along the fixed lifecycle (Draft → Sent → Tentatively approved → Approved → Done) — there is no skipping steps and no moving backward. An optional Reason field records a note with that specific status change. Moving to Approved adds each line's cost to its phase's budget and creates the billing milestones the change order calls for; it never touches a milestone that already exists.
Below the control, a transition history table lists every status change so far: From, To, Reason, and When.
Aside
The Related records card links back to the Project and shows the change order's Total.
What it accepts
| Field | Format | Required | Rule |
|---|---|---|---|
| Line description | Free text | Yes | Rejected with "Description is required." if blank |
| Line kind | Pick one: Labor, Part, Material, Fee, Lease, Discount | Yes | |
| Line quantity | Decimal quantity | Yes | Must be a positive amount |
| Line unit price | Dollars (a credit line can be negative) | Yes | Rejected with "Unit price must be a dollar amount." if not a valid amount |
| Line unit cost | Dollars (can be negative, matching a credit line) | Yes | Rejected with "Unit cost must be a dollar amount." if not a valid amount |
| Status-change reason | Free text | No | Stored on that transition's history row only |
Line edits and additions are only accepted while the change order is in Draft; the same forms aren't shown once it has moved past that status.
How to configure it
Nothing in Settings changes how this screen behaves.
Who can see it
This screen sits behind the Projects area.
Owners, office managers and dispatchers can open it. Technicians cannot — they work the project's individual jobs from the field app, not its change orders. The gate is checked on the server, not just hidden in the sidebar, so a direct link does not get around it.
The full role matrix is on Roles & permissions.