Demo only — synthetic data. Every name, time and number is made up and lives only in your browser; reset any time. Texts, deposits, payments and calendar sync are simulated — nothing is sent, charged or synced, and no real patient or staff data is shown.

One empty chair, start to finish

Reviewer walkthrough (about 2 minutes)
  1. Run steps 1–6 below and watch the schedule, waitlist and event log change together.
  2. Reset, then turn on Owner override at step 2 — the slot is kept and nothing is released.
  3. Open Rule tests to see the scheduling rules checked with fixed dates.
  4. Book a real test visit on /book, then use "Manage appointment" to reschedule or cancel.
  5. Staff views (dashboard, reminders) need a staff sign-in and stay protected.

1. Appointment unconfirmed

The 10:30 AM consultation got a (simulated) 48h reminder and a 4h follow-up. No reply.

2. Risk reason shown

The score rises and the dashboard shows exactly why — the owner can override and keep the slot.

3. Slot released

With no reply and no override, the chair is released back into the schedule.

4. Matching waitlist offer

The first waitlist patient whose service and time window match gets a claim link (simulated text).

5. Patient claims it

Sample Patient D taps the link. The same booking rules as /book re-check the slot before saving.

6. Chair refilled

The schedule, waitlist and event log all show the refilled chair.

Before → now (this demo day)

Chairs filled

2 → 2

At-risk / open chairs

1 → 1

Phone calls needed

1 → 0

Simulated texts sent

0 → 0

"Before" is the same sample day handled by phone: one unconfirmed chair and one call to chase it. Counts only — not measured clinic results.

Schedule — Wed 7 Oct, Portland time (sample)
Read-only
9:00 AMSample Patient A · Cleaning (30 min)
Confirmed
Risk 12
Why: Replied Y to 48h reminder · No missed visits
10:30 AMSample Patient B · Consultation (45 min)
Awaiting reply
Risk 40
Why: Awaiting reply to 48h reminder
2:15 PMSample Patient C · Cleaning (30 min)
Confirmed
Risk 20
Why: New patient — default score

Risk score = share of past visits missed (20 for new patients), raised when reminders go unanswered. It's a prompt for the owner, never a decision about care.

Waitlist (sample)
Sample Patient E · Cleaning · Afternoons
waiting
Sample Patient D · Consultation · Any morning this week
waiting
Event log (newest first)
  • No events yet. Run step 1.