Inspiration

A 911 center only reviews monthly averages of ambulance response times, which hide a zone that has been slow for a week. (Prompt: Health Systems – Emergency Response.)

What it does

For the EMS dispatch supervisor: a daily p chart per zone that flags days when a zone is late (> 10 min) more often than its own baseline, plus a list of the late calls to review. Inputs are 5 fields every dispatch system logs: incident_id, zone, priority, dispatched_at, on_scene_at.

How it works

Baseline $$\bar p = \frac{\sum late}{\sum n}$$ Daily limits $$\bar p \pm 3\sqrt{\bar p(1-\bar p)/n}$$ No verdict until 20+ baseline days, \(n\bar p \ge 5\), the day is closed and the supervisor confirms the baseline. Bad rows are excluded with reasons, never counted as 0 minutes.

Results

Planted shift: zone A 8 high days, control 0. Stable data: 0 signals. Real NYC FDNY data (26,209 calls): Brooklyn 6 high days in September.

How we built it

Python core (app/qc.py) → FastAPI → React, deployed on Posit Connect via GitHub Actions. 175 backend + 128 frontend tests.

Limitations

Assumes a stable baseline and independent calls; large n can cause overdispersion (next step: Laney p′). A signal says when and where, not why.

Built With

Share this project:

Updates

Submission history