Maintenance Ticket Workflow: What Statuses You Actually Need
A small maintenance operation needs enough ticket statuses to show whose court a job is in — a vendor's, an approver's, or nobody's — without turning every update into a form nobody fills out correctly. Ten statuses cover it: new, assigned, scheduled, in progress, waiting on vendor, waiting on approval, completed, rejected, closed, and cancelled. What matters more than the list is which moves between them are actually allowed.
What does each ticket status mean?
- New — reported, not yet assigned to anyone.
- Assigned — a vendor or internal owner is on the hook, but no date is set yet.
- Scheduled — a date is set.
- In progress — work is actively happening.
- Waiting on vendor— the ball is in the vendor's court: parts, scheduling, or the work itself.
- Waiting on approval— the ball is in an approver's court: an owner or manager needs to sign off.
- Completed — the work is done, pending any closing formalities.
- Rejected — an approver said no. This sends the ticket back toward more work, not to a dead end.
- Closed — finished and reconciled. Nothing moves out of this state.
- Cancelled — abandoned. Nothing moves out of this state either.
Which status changes are actually allowed?
The list of statuses matters less than the map between them. Here is what a workable transition table looks like in practice:
- Newcan move to assigned or cancelled — nothing else, since a report with no owner cannot be "in progress."
- Assigned can move to scheduled, in progress, or cancelled.
- Scheduled can move to in progress, waiting on vendor, or cancelled.
- In progress can move to waiting on vendor, waiting on approval, completed, or cancelled.
- Waiting on vendor can move back to in progress or scheduled, or to cancelled.
- Completed can move to waiting on approval, if a sign-off is still required, or straight to closed.
- Waiting on approval can move to closed, rejected, or back to in progress.
- Rejected can move to in progress or cancelled.
- Closed and cancelled are terminal — neither one moves anywhere.
What is the difference between waiting on vendor and waiting on approval?
They look similar — both mean the ticket is stalled — but they describe different kinds of stalling, and different people need to check them. Waiting on vendor is a work-side block: a vendor needs parts, needs to reschedule, or is mid-job. Waiting on approval is a decision-side block: someone internal, or an owner, needs to review cost or sign off before the ticket can close.
A manager chasing vendors should be looking at a different queue than a manager reviewing spend, and collapsing both into one generic "blocked" status makes that impossible. From waiting on vendor, a ticket can move back to in progress, back to scheduled, or to cancelled. From waiting on approval, a ticket can move to closed, to rejected, or back to in progress — the approver's decision, not a vendor's, decides which.
Why constrain which status changes are allowed?
Letting any status jump to any other status feels flexible, but it quietly destroys the record you built the ticket to keep in the first place.
- Skipping straight from new to completed loses the record of who was assigned and when — exactly the information you need if a tenant disputes the timeline.
- Letting a closed ticket jump back into an active state reopens something that was already reconciled, rather than creating a new ticket for a new problem. That corrupts history instead of fixing a mistake.
- Due-soon and overdue reminders key off status. A ticket that skips scheduled or in progress silently breaks those reminders for that ticket, even though nothing looks wrong on the surface.
- Rejected is meant to mean "back to work," not "stuck." A rejected ticket can only move to in progress or cancelled — it cannot dead-end in a rejected state with no way forward.
How does ticket status relate to assignment status?
Ticket status is the record-level state — where the job stands overall. Underneath it, the assignment tracks the specific vendor or worker's own progress: assigned, accepted, scheduled, in progress, needs follow-up, completed, or cancelled.
Needs follow-up is its own small loop — "the vendor said they would get to it" — without forcing the whole ticket backward. A ticket can sit in progress at the ticket level while its assignment cycles through needs follow-up more than once, which keeps the vendor relationship messy in exactly one place instead of leaking that mess into the ticket's own history.
TurnRoster enforces exactly this set of statuses and transitions, so a ticket cannot skip straight from new to closed or reopen after it is closed. See TurnRoster pricing or get started.