Case statuses — complete reference
Every case in the portal moves through a defined set of statuses. Here's what each one means, who can change it, and what triggers the transition.
Lifecycle
received → invoicing → design → production → finishing → qc → shipped → delivered
↓
remake_requested ←
Plus terminal states: cancelled (at any point) and on_hold (any point).
What each status means
received
- Set by: system, when the dentist submits the case
- Meaning: lab has the case in the queue but hasn't started work
- Typical duration: minutes to a few hours during business days
invoicing
- Set by: lab admin
- Meaning: lab is preparing custom pricing (quote-pending cases)
- Used when: case falls outside the standard price list, e.g. complex implant or unusual restoration
- Next: returns to design once the dentist accepts the quote
design
- Set by: lab admin or designer
- Meaning: CAD design is in progress
- Typical duration: 1-2 business days
production
- Set by: lab admin or production tech
- Meaning: milling, printing, or layering
- Typical duration: 2-5 business days depending on case type
finishing
- Set by: lab admin, ceramist, or finishing tech
- Meaning: glazing, polishing, contouring, characterization
- Typical duration: 1-2 business days
qc
- Set by: lab admin or QC manager
- Meaning: final quality check before shipping
- Typical duration: same-day or next business day
shipped
- Set by: lab admin or shipping
- Meaning: case has left the lab. Tracking number visible in the case detail.
- For prepay accounts: the Stripe authorization is captured at this point
delivered
- Set by: system (via shipment webhook) or manually by dentist/lab
- Meaning: package was received at the practice
- For net-terms accounts: invoice becomes due based on terms (e.g. Net 30 from this date)
on_hold
- Set by: lab admin (rarely by system)
- Meaning: case can't proceed — needs dentist input
- Common reasons: unclear impression, missing shade info, conflicting tooth selections
- Notifications: emails + SMS forced (you cannot opt out — this is important)
remake_requested
- Set by: dentist on the original case
- Meaning: a remake child case has been created. The original case is parked at this status.
- Next: the child case follows the normal lifecycle
cancelled
- Set by: dentist (before production) or lab admin (any time, with reason)
- Meaning: case will not be completed
- For prepay accounts: any held authorization is released
Status history
Every transition is recorded in case_status_history with timestamp, who made the change, and the previous status. View this in the timeline tab on each case detail page.