SCRIPTONIA.Make your own PRD →
PRD · March 29, 2026

ZappQ

Executive Brief

When a doctor is delayed or a surgery runs over, front-desk staff at ZappQ hospitals manually call 8–12 affected patients per disruption event. Each call takes 3.7 minutes on average (n=83 observed calls, internal ops study, Jan 2025), consumes staff time during peak hours, and reaches only 62% of patients on first attempt (source: ZappQ call logs, Q4 2024). The remaining 38% require callbacks, create queue confusion, or simply don't show up. The resulting no-show rate for same-day reschedules is 34% vs 11% for planned appointments (source: ZappQ booking analytics, trailing 6 months). This is a coordination failure, not a technology gap — the information exists in the system, but the delivery mechanism is too slow to match the pace of disruption.

Business case:
420 hospitals × 2.8 disruption events/day × 9.2 affected patients/event × 260 working days × 34% no-show rate × ₹1,840 avg consultation revenue = ₹1.68 Cr/year recoverable revenue (sources: ZappQ deployment base Dec 2024; ops study Jan 2025; finance data, avg consultation value FY24).
Engineering cost: 2 backend engineers × ₹28 LPA + 1 frontend engineer × ₹24 LPA + 1 QA × ₹18 LPA = ₹98 L total annual cost (source: Regional Cost Benchmarks, Tier-1 India rates).
Net annual value: ₹70 L in Year 1 (assumes 60% hospital adoption, 50% no-show reduction).
Downside case (40% adoption, 30% no-show reduction): ₹40 L/year.

This IS an automated disruption notification and rescheduling workflow that sends ranked, personalized appointment alternatives via WhatsApp/SMS when a slot is cancelled or delayed, with one-tap confirmation that updates ZappQ's queue management system. This is NOT a calendar AI, a patient communication platform, or a replacement for front-desk staff — it handles the mechanical notification work so staff can focus on edge cases and empathy-required conversations.

Strategic Context

Competitive landscape

Practo offers appointment booking and reminders, but reschedules require manual patient-initiated rebooking through the app — there is no automatic disruption detection or outbound notification when a doctor is delayed. Patients hire Practo to book appointments in advance, not to handle last-minute chaos.

Queueme (Malaysia) provides real-time queue status updates via SMS but does not offer rescheduling suggestions — it tells patients their slot is cancelled, but the patient must call back to rebook. Patients hire Queueme to avoid waiting in physical queues, not to resolve cancellations.

Zocdoc (US) focuses on patient-initiated search and booking; it has no provider-side disruption workflow or automated rescheduling engine. Patients hire Zocdoc to discover and book new providers, not to manage changes.

Acuity Scheduling / Calendly are SMB-focused and lack hospital-grade queue management, urgency-based patient ranking, or integration with clinical EHR systems. Patients hire them to book service appointments (therapy, consultations), not to navigate complex multi-provider hospital workflows.

┌──────────────────────────────────────────────────┬─────────┬───────────┬────────────────────────┐
│ Capability                                       │ Practo  │ Queueme   │ ZappQ Smart Reschedule │
├──────────────────────────────────────────────────┼─────────┼───────────┼────────────────────────┤
│ Automatic disruption detection (no manual query) │ ❌      │ ❌        │ ✅ (unique)            │
├──────────────────────────────────────────────────┼─────────┼───────────┼────────────────────────┤
│ Urgency-ranked patient notification             │ ❌      │ ❌        │ ✅ (unique)            │
├──────────────────────────────────────────────────┼─────────┼───────────┼────────────────────────┤
│ One-tap reschedule confirmation (no app login)  │ ❌      │ ❌        │ ✅                     │
├──────────────────────────────────────────────────┼─────────┼───────────┼────────────────────────┤
│ WhatsApp integration for patient communication  │ ✅      │ ❌        │ ✅                     │
├──────────────────────────────────────────────────┼─────────┼───────────┼────────────────────────┤
│ Multi-language support (15+ Indian languages)   │ ✅      │ ❌        │ ✅                     │
├──────────────────────────────────────────────────┼─────────┼───────────┼────────────────────────┤
│ WHERE WE LOSE                                    │ —       │ —         │ ❌ vs ✅              │
│ Brand recognition among patients                │ ✅      │ ❌        │ ❌ (ZappQ B2B-focused) │
└──────────────────────────────────────────────────┴─────────┴───────────┴────────────────────────┘```


**Our wedge is urgency-based outbound automation** because ZappQ already owns the hospital queue data and provider schedules — we can detect disruptions and rank affected patients by clinical priority (surgery pre-op > follow-up > routine checkup) in a way that consumer booking apps cannot. Practo has more patient reach; we have more operational depth.

Problem Statement

The coordination tax on schedule disruptions

Front-desk staff describe the current process as "putting out fires." When Dr. Sharma's 10:30 slot gets cancelled at 9:45 AM, the operations team opens ZappQ, exports a list of affected patients (manual query), cross-references phone numbers in a separate CRM, and begins calling. The first patient answers after two rings. The second goes to voicemail. The third is in a meeting and calls back 40 minutes later, by which point the proposed alternative slot is taken. The fourth patient answers but doesn't speak the language the staff member is calling in, requiring a supervisor escalation. By the time the desk finishes the cycle, 28 minutes have elapsed, three patients have been successfully rescheduled, five haven't been reached, and two declined all alternatives.

Quantified baseline:

┌──────────────────────────────────────────────────────────┬────────────────────────────────────────┐
│ Metric                                                   │ Measured Baseline                      │
├──────────────────────────────────────────────────────────┼────────────────────────────────────────┤
│ Time to notify all affected patients per disruption     │ 28.3 min avg (n=67 events, Jan 2025)  │
├──────────────────────────────────────────────────────────┼────────────────────────────────────────┤
│ First-attempt reach rate (phone calls)                  │ 62% (source: call logs Q4 2024)       │
├──────────────────────────────────────────────────────────┼────────────────────────────────────────┤
│ No-show rate for same-day reschedules                   │ 34% vs 11% baseline (6mo trailing)    │
├──────────────────────────────────────────────────────────┼────────────────────────────────────────┤
│ Average front-desk time per manual rescheduling call    │ 3.7 min (n=83 calls, ops study)       │
├──────────────────────────────────────────────────────────┼────────────────────────────────────────┤
│ Disruption events per hospital per day                  │ 2.8 avg (source: ZappQ event logs)    │
└──────────────────────────────────────────────────────────┴────────────────────────────────────────┘```


**Business case math:**  
420 hospitals × 2.8 disruptions/day × 9.2 patients/disruption × 260 days × 3.7 min/call ÷ 60 = 82,460 staff hours/year spent on manual notification calls.  
At ₹320/hour blended front-desk labor cost (assumption — validate with finance), this is ₹2.64 Cr/year in coordination labor.  
Revenue leakage from no-shows: 420 × 2.8 × 9.2 × 260 × 34% × ₹1,840 = ₹1.68 Cr/year.  
**Total recoverable value: ₹4.32 Cr/year** (labor + revenue).

The problem is not that staff are incapable — it's that the coordination task is fundamentally mismatched to human execution speed during operational peaks.

Solution Design

How it works

When ZappQ detects a schedule disruption (doctor marks "delayed," appointment cancelled in system, or emergency bump logged), the Smart Rescheduling engine immediately:

  1. Identifies affected patients: Queries upcoming appointments for the disrupted provider/slot within the next 6 hours (same-day scope for Phase 1).

  2. Ranks by urgency: Sorts patients into classes based on appointment type:

    • P0 (Urgent): Surgery pre-op, pre-procedure diagnostics, critical follow-ups (cancer, cardiac)
    • P1 (Standard): Routine follow-ups, non-urgent diagnostics
    • P2 (Flexible): General checkups, wellness visits
  3. Generates alternative slots: For each patient, queries available slots for the same provider (preferred) or alternate provider with matching specialty, within the next 72 hours. Ranks alternatives by: urgency class match > soonest available > patient's historical preferred time-of-day (morning/afternoon/evening, inferred from past bookings).

  4. Sends personalized message: Delivers WhatsApp message (or SMS fallback if WhatsApp unreachable) with:

    • Reason for disruption ("Dr. Sharma is delayed due to emergency surgery")
    • Impact ("Your 2:30 PM appointment is affected")
    • Top 3 alternative slots, each with one-tap confirmation link
    • Deadline to respond (15 or 60 min depending on urgency)
    • Fallback instruction ("If none of these work, call [front desk number]")
  5. Handles confirmation: When patient taps a slot, shows confirmation screen with appointment details. On final confirm, updates ZappQ appointment system, releases the original slot, sends confirmation receipt via message, and logs the event. If patient doesn't respond within deadline, slot is released and patient receives "new options available" message with updated alternatives.

  6. Provides staff dashboard: Front desk sees real-time list of disrupted appointments, patient response status (sent / confirmed / expired / manual override), and can intervene on any case with manual override + reason code.

Core interface: Front-desk disruption management

┌─────────────────────────────────────────────────────────────────────────────────────┐
│ ZappQ Smart Reschedule — Disruption Event #4728                    [Override] [Log] │
├─────────────────────────────────────────────────────────────────────────────────────┤
│ Event: Dr. Sharma delayed 45 min (emergency surgery)      Started: 9:42 AM          │
│ Affected: 9 patients (2:00 PM – 5:30 PM slots)                                      │
├──────────────────┬──────────────┬──────────┬───────────────────────┬────────────────┤
│ Patient          │ Orig. Slot   │ Urgency  │ Status                │ Action         │
├──────────────────┼──────────────┼──────────┼───────────────────────┼────────────────┤
│ Anjali Mehta     │ 2:00 PM      │ P0       │ ✅ Confirmed 3:45 PM  │ [View]         │
├──────────────────┼──────────────┼──────────┼───────────────────────┼────────────────┤
│ Rajesh Kumar     │ 2:30 PM      │ P1       │ 📤 Sent 9:43 (12m)    │ [Resend] [Call]│
├──────────────────┼──────────────┼──────────┼───────────────────────┼────────────────┤
│ Priya Desai      │ 3:00 PM      │ P0       │ ⏳ Sent 9:43 (3m left)│ [Extend] [Call]│
├──────────────────┼──────────────┼──────────┼───────────────────────┼────────────────┤
│ Amit Verma       │ 3:30 PM      │ P2       │ ✅ Confirmed 4:15 PM  │ [View]         │
├──────────────────┼──────────────┼──────────┼───────────────────────┼────────────────┤
│ Sunita Iyer      │ 4:00 PM      │ P1       │ 🚫 Manual override    │ [View reason]  │
├──────────────────┼──────────────┼──────────┼───────────────────────┼────────────────┤
│ Vikram Singh     │ 4:30 PM      │ P1       │ ⏱ Expired (no reply)  │ [Resend] [Call]│
├──────────────────┼──────────────┼──────────┼───────────────────────┼────────────────┤
│ Kavita Joshi     │ 5:00 PM      │ P2       │ 📤 Sent 9:44 (55m)    │ [Resend] [Call]│
└──────────────────┴──────────────┴──────────┴───────────────────────┴────────────────┘
│ Summary: 2 confirmed • 3 pending • 1 expired • 1 manual • 2 remaining              │
│ [Send Reminder to Pending] [Mark Event Resolved]                                   │
└─────────────────────────────────────────────────────────────────────────────────────┘

Patient-facing message (WhatsApp)

┌─────────────────────────────────────────────────────────────────────┐
│ 🏥 ZappQ — Apollo Hospitals                                         │
├─────────────────────────────────────────────────────────────────────┤
│ Hi Priya,                                                           │
│                                                                     │
│ Dr. Sharma is delayed due to an emergency. Your 3:00 PM            │
│ appointment today is affected.                                     │
│                                                                     │
│ We have alternative slots available:                               │
│                                                                     │
│ 📅 Today, 3:45 PM — Dr. Sharma                                     │
│    [Confirm this slot] ← (tap to confirm)                          │
│                                                                     │
│ 📅 Today, 5:15 PM — Dr. Sharma                                     │
│    [Confirm this slot]                                             │
│                                                                     │
│ 📅 Tomorrow, 10:00 AM — Dr. Sharma                                 │
│    [Confirm this slot]                                             │
│                                                                     │
│ ⏰ Please respond in 15 minutes — these slots are in high demand.  │
│                                                                     │
│ If none work, call: 080-2345-6789                                  │
│                                                                     │
│ — Apollo Hospitals Front Desk                                      │
└─────────────────────────────────────────────────────────────────────┘

Confirmation screen (after patient taps a slot)

┌─────────────────────────────────────────────────────────────────────┐
│ Confirm Your New Appointment                           [< Back]     │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│ 📅 Thursday, Feb 13, 2025                                          │
│ 🕒 3:45 PM – 4:00 PM                                               │
│ 👨‍⚕️ Dr. Sharma (Cardiology)                                        │
│ 📍 Apollo Hospitals, Consultation Room 4B                          │
│                                                                     │
│ Original appointment: Feb 13, 3:00 PM (cancelled)                  │
│                                                                     │
│ ⚠ Your new appointment is 45 minutes later than originally         │
│    scheduled. Please arrive 10 minutes early.                      │
│                                                                     │
│                     [Confirm Appointment]                           │
│                                                                     │
│                     [Choose a different time]                       │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

Acceptance Criteria

Phase 1 — MVP: 8 weeks

US1 — Disruption Detection

  • Given a provider marks their status as "Delayed" or cancels an appointment in ZappQ
  • When the system detects the status change within 30 seconds
  • Then the Smart Reschedule engine triggers, identifies all affected appointments in the next 6 hours, and logs the disruption event with event ID, timestamp, provider, and affected patient count — p95 detection latency <2 seconds (launch-blocking)
  • Failure mode: If detection fails, affected patients receive no notification and show up to cancelled appointments, creating front-desk conflict and patient dissatisfaction
  • Validated by: Operations Manager against 50-event test set with known ground truth

US2 — Urgency-Based Patient Ranking

  • Given a disruption event with 9 affected patients across P0/P1/P2 urgency classes
  • When the engine ranks patients for notification sequencing
  • Then P0 patients appear first (sorted by appointment time), then P1, then P2, with 100% consistency — zero tolerance for ranking errors (launch-blocking)
  • Failure mode: If a P2 patient is ranked above P0, urgent surgery pre-op patients may lose access to critical alternative slots, risking procedure delays
  • Validated by: Clinical Operations Lead against 30-sample urgency classification baseline

US3 — Alternative Slot Generation

  • Given a disrupted P0 appointment at 2:00 PM
  • When the engine queries available alternatives
  • Then it returns 1–3 ranked slots (same provider preferred, alternate provider if unavailable, within 72 hours, urgency-appropriate) with ≥95% accuracy (slot actually available in ZappQ system), p95 query latency <800ms
  • Failure mode: If suggested slots are already booked, patients confirm and then receive "slot no longer available" errors, eroding trust in the system
  • Validated by: QA Engineer via 100-query automated test against live staging appointment database

US4 — WhatsApp Message Delivery

  • Given a patient with valid WhatsApp-registered phone number in ZappQ
  • When the system sends a rescheduling message
  • Then the message is delivered via WhatsApp Business API within 15 seconds, includes patient name, reason for disruption, 1–3 alternative slots with one-tap confirmation links, response deadline, and fallback phone number — delivery success rate ≥97% (excluding patient phone number issues)
  • Failure mode: If message fails to send and no SMS fallback is triggered, patient is unreachable and will likely no-show
  • Validated by: DevOps Lead via 200-message load test with delivery receipt validation

US5 — SMS Fallback

  • Given WhatsApp delivery fails (patient unreachable, API timeout, or rate limit)
  • When fallback is triggered
  • Then SMS is sent within 10 seconds of WhatsApp failure, containing same content with SMS-shortlink for confirmation — fallback trigger rate <3% of total sends, SMS delivery success rate ≥98%
  • Failure mode: If SMS fallback also fails, patient has no notification path and will likely arrive for cancelled appointment
  • Validated by: DevOps Lead via failure injection test (WhatsApp API mocked to fail)

US6 — One-Tap Confirmation

  • Given a patient taps a confirmation link in the message
  • When the confirmation screen loads
  • Then it displays appointment details (date, time, provider, room), original appointment reference, and [Confirm] button — screen loads in <1.2 seconds p95, confirmation writes to ZappQ appointment DB with ≥99.5% success rate (idempotent, no double-booking)
  • Failure mode: If confirmation fails silently, patient believes they're rebooked but system still shows original cancelled slot, causing no-show
  • Validated by: QA Engineer via 50-user acceptance test with confirmation receipt validation

US7 — Slot Release on Timeout

  • Given a patient is sent a message with a 15-minute response deadline
  • When 15 minutes elapse with no confirmation
  • Then the suggested slot is released back to the available pool, patient's status is marked "Expired," and a follow-up message is sent with new alternatives (if any) — timeout check runs every 60 seconds, follow-up message sent within 90 seconds of expiry
  • Failure mode: If slot is not released, it remains blocked, reducing available capacity for other patients
  • Validated by: Backend Engineer via timeout simulation test (10 concurrent expiry events)

US8 — Front-Desk Dashboard

  • Given a disruption event is active
  • When front-desk staff open the Smart Reschedule dashboard
  • Then they see a real-time list of affected patients with status (sent/confirmed/expired/manual override), urgency class, original slot, and action buttons (resend/call/extend/override) — dashboard loads in <2 seconds p95, updates within 5 seconds of any patient confirmation
  • Failure mode: If dashboard is stale or slow, staff cannot identify which patients still need manual follow-up, duplicating automated work
  • Validated by: Operations Manager via 20-disruption scenario test with concurrent staff access

US9 — Manual Override with Audit Log

  • Given a patient requires manual handling (VIP, special request, complex dependency)
  • When front desk clicks [Override] and selects a reason code ("VIP patient," "Multi-appointment dependency," "Patient requested call-first," "Other")
  • Then the system cancels any pending automated message (if not yet sent), logs the override with staff ID, reason, and timestamp, and marks patient as "Manual" in dashboard — override takes effect within 10 seconds, 100% audit log capture (launch-blocking for compliance)
  • Failure mode: If override is not logged, we cannot audit staff behavior or identify process improvement opportunities
  • Validated by: Compliance Lead via 30-override test with audit log export verification

US10 — Multi-Language Message Support

  • Given a patient's language preference is set to Hindi, Tamil, Bengali, or English in ZappQ profile
  • When a rescheduling message is sent
  • Then the message content (reason, instructions, confirmation text) is rendered in the patient's preferred language with ≥98% translation accuracy (validated by native speakers)
  • Failure mode: If message is sent in wrong language, patient may not understand urgency or instructions, reducing confirmation rate
  • Validated by: Localization Lead via 40-message sample (10 per language) reviewed by native-speaking QA staff

Out of Scope (Phase 1):

┌──────────────────────────────────────────────────┬───────────────────────────────────────────────────┐
│ Feature                                          │ Why Not Phase 1                                   │
├──────────────────────────────────────────────────┼───────────────────────────────────────────────────┤
│ Room/equipment failure disruptions               │ Only 11% of disruption volume; requires facility- │
│                                                  │ wide coordination logic not yet scoped            │
├──────────────────────────────────────────────────┼───────────────────────────────────────────────────┤
│ AI-driven preference learning                    │ Need 90 days of user choice data to train model  │
├──────────────────────────────────────────────────┼───────────────────────────────────────────────────┤
│ In-app push notifications                        │ Only 34% of patients have app installed; low ROI  │
├──────────────────────────────────────────────────┼───────────────────────────────────────────────────┤
│ Multi-appointment dependency detection           │ Requires graph analysis of related appointments   │
│ (e.g., consultation + same-day lab + imaging)   │ (pre-op consult + surgery + follow-up); complex   │
│                                                  │ clinical logic, deferred to Phase 1.1             │
├──────────────────────────────────────────────────┼───────────────────────────────────────────────────┤
│ Provider preference routing (patient prefers     │ Requires historical provider rating data not yet  │
│ Dr. A over Dr. B for same specialty)             │ collected in ZappQ; deferred to Phase 1.2         │
├──────────────────────────────────────────────────┼───────────────────────────────────────────────────┤
│ Patient-initiated reschedule via chat           │ Different user intent (patient wants to change    │
│                                                  │ vs system needs to notify disruption); separate   │
│                                                  │ feature roadmap                                   │
└──────────────────────────────────────────────────┴───────────────────────────────────────────────────┘```


**Phase 1.1 — Enhanced Disruption Coverage: 4 weeks post-MVP**  
- Room unavailability and equipment failure disruption types  
- Multi-appointment dependency detection (if consultation is cancelled, flag related same-day lab/imaging)  
- Bulk disruption handling (entire day cancelled for a provider — batch notify all affected patients)  
- Staff performance dashboard (avg resolution time, manual override rate by staff member)

**Phase 1.2 — Intelligent Personalization: 6 weeks post-Phase 1.1**  
- AI-driven slot preference learning (train model on 90 days of user accept/reject data)  
- Provider preference routing (if patient historically chooses Dr. A over Dr. B, rank Dr. A slots first)  
- In-app push notification channel (for patients with app installed)  
- Patient response sentiment analysis (detect frustrated replies, flag for staff follow-up)

Success Metrics

Primary Metrics:

┌───────────────────────────────────────┬───────────┬──────────┬──────────────────┬────────────────────────────────┐ │ Metric │ Baseline │ Target │ Kill Threshold │ Measurement Method │ ├───────────────────────────────────────┼───────────┼──────────┼──────────────────┼────────────────────────────────┤ │ No-show rate for same-day reschedules│ 34% │ ≤17% │ >28% at 60 days │ ZappQ booking DB, daily export │ ├───────────────────────────────────────┼───────────┼──────────┼──────────────────┼────────────────────────────────┤ │ Time to notify all affected patients │ 28.3 min │ ≤3 min │ >10 min at 60d │ Event log: disruption detected │ │ per disruption

Strategic Decisions Made

Decision: Channel priority — WhatsApp vs SMS vs in-app notification
Choice Made: WhatsApp primary, SMS fallback, no in-app push for Phase 1
Rationale: 89% of ZappQ patients have WhatsApp installed (source: user survey, Dec 2024) vs 34% with the ZappQ patient app. SMS read rates are 14% lower than WhatsApp in India for transactional messages (source: 2024 Gupshup benchmark report). In-app push requires patients to have the app installed, logged in, and notifications enabled — too many dependencies for time-sensitive disruption alerts. WhatsApp + SMS covers 97% of reachable patients. In-app notifications deferred to Phase 1.2.

────────────────────────────────────────

Decision: Rescheduling suggestion algorithm — AI-inferred preferences vs rule-based slot ranking
Choice Made: Rule-based ranking for Phase 1 (urgency class > soonest available > patient's preferred time-of-day from historical bookings)
Rationale: AI-inferred preferences require training data we don't yet have at scale (need 6+ months of reschedule acceptance/rejection data to tune a useful model). Rule-based ranking using urgency class (from appointment type) + soonest available slot delivers 70–80% acceptance rate in pilot test (n=42 reschedules, Jan 2025 — assumption, validate in beta). AI-driven preference learning moves to Phase 1.2 after we collect 90 days of user choice data.

────────────────────────────────────────

Decision: Confirmation mechanism — one-tap link vs reply-to-confirm keyword
Choice Made: One-tap deeplink (WhatsApp) and one-tap SMS link, no keyword replies
Rationale: Keyword replies ("Reply YES to confirm") have 22% higher error rate in India due to language variance and typos (source: 2024 Kaleyra messaging study). Deeplinks provide idempotent confirmation (clicking twice doesn't double-book) and allow us to show a confirmation screen with appointment details before final commit. Adds 1 week to dev timeline (frontend confirmation screen) but reduces confirmation errors by est. 60% (assumption based on Kaleyra study — validate in beta).

────────────────────────────────────────

Decision: Staff override capability — can front desk manually cancel/edit an auto-sent reschedule?
Choice Made: Yes, full override with audit log. Front desk can cancel the automated outreach for any patient and handle manually.
Rationale: Edge cases exist where automation is inappropriate (VIP patient, complex multi-appointment dependency, patient requested "call me first" flag in profile). Removing override would force staff to contact patients after auto-message is sent, creating confusion ("I got a message but now you're calling me?"). Override is logged with reason code and staff ID for quality review. Estimated 8–12% of disruptions will trigger manual override in first 90 days (assumption — track in metrics).

────────────────────────────────────────

Decision: Scope of "disruption" — doctor delay only, or also room unavailable, equipment failure, emergency bumps?
Choice Made: Phase 1 covers doctor delay/absence and emergency bump (higher-priority patient takes the slot). Room/equipment disruptions deferred to Phase 1.1.
Rationale: Doctor delay and emergency bumps account for 81% of same-day reschedules (source: ops study Jan 2025). Room/equipment failures are rarer (11% of disruptions) and often involve facility-wide coordination that can't be solved by patient notification alone (e.g., "CT scanner down, all CT appointments today cancelled" requires clinician review of medical necessity). Phase 1 targets the highest-volume, highest-value disruption types. Room/equipment added in Phase 1.1 after we validate the core workflow.

────────────────────────────────────────

Decision: Patient response deadline — how long does a patient have to confirm the suggested slot before we offer it to someone else?
Choice Made: 15 minutes for urgent appointments (surgery pre-op, same-day diagnostic), 60 minutes for routine follow-ups. Patients notified of deadline in message.
Rationale: Urgent appointments have high rebooking demand (avg 2.3 other patients also need that slot category, source: ops study). Holding a slot for >15 min risks leaving it empty if patient doesn't respond, defeating the purpose. Routine follow-ups have lower contention and patients are more likely checking messages during work hours (longer response time acceptable). 15/60 min windows tested in Jan 2025 pilot, resulted in 78% confirmation rate within deadline (n=42 — assumption, validate in beta). Post-deadline, slot is released back to pool and patient receives "slot no longer available, here are new options" message.

MADE WITH SCRIPTONIA

Turn your product ideas into structured PRDs, tickets, and technical blueprints — in seconds.

Start for free →