Eight findings, each in plain English. Some confirm what we built. Some change it. One we have to retire.
Slide 2 = the headline reframe. Slides 3-5 = what the data actually says. Slide 6 = the dollar question. Slide 7 = the mechanism. Slides 8-9 = what to do this week.
Yesterday we said "if you cut a high-churn practice's churn down to median, you'll see +3.4pp more annual growth." That number came from a simple bivariate fit.
Today's tighter analysis controls for practice size — and most of yesterday's signal disappears. The honest number is closer to +1 pp. Still positive. Still real. Just much smaller.
Bottom line: the composite SAPS churn metric is fine as a "is this practice in chaos?" flag — but stop selling it as the network's biggest growth lever. It's not.
We checked 5 different ways to measure churn. Only one — confirmation rate (% of booked appointments the patient confirmed before the day) — actually moves with growth.
Practice with 75% confirmation grows ~2.5 pp/year faster than one with 65%. Front desk can directly change this — it's the 3-day / 1-day / 2-hour reminder chain.
Codex caveat: this is "the strongest observed association," not yet "proven causation." A practice with great managers probably confirms more AND grows more — could be a manager-quality story. Out-of-sample test before promoting tile to "active."
| What we measured | Pearson r |
|---|---|
| SAPS churn ↔ risk non-completion | +0.109 |
| Shared variance (R²) | 1.2% |
| Risk non-completion → growth | −0.443 |
| SAPS churn → growth (after controls) | −0.012 |
| Component | Annualized | Type |
|---|---|---|
| A. Front-office rework labor | $7.1M | rate-card |
| B. Chair idle (lost slot) | $14.9M | rate-card |
| C. Risk non-completion ($) | $51.7M | unverified window |
| Total | $73.7M | mixed |
If you ask an OM "what's killing your schedule," you'll probably hear "no-shows" or "flaky patients." The data says no.
Three out of every four churned appointments are moves — same patient, different day. That's a workflow problem (recall, confirmation, reschedule cadence) the practice fully owns. Patient-fault cancels are literally 0.3% of the SAPS denominator — basically nothing.
Caveat: only 83 of 188 practices have complete component decomposition. The other 105 have PMS-coding gaps that make no-show / cancel counts unreliable.
| Staffing tier (FO FTE / 1k active pts) | Mean churn 90d |
|---|---|
| T1 — low (0.10 FTE/1k) | 18.1% |
| T2 — mid (0.18 FTE/1k) | 23.7% |
| T3 — high (0.29 FTE/1k) | 22.1% |
| Churn quartile | FO h / visit |
|---|---|
| Q1 — lowest churn (11.7%) | 0.29 |
| Q2 (18.2%) | 0.41 |
| Q3 (24.3%) | 0.40 |
| Q4 — highest churn (30.4%) | 0.47 |
| Move | Why | Confidence |
|---|---|---|
| Ship T13 Patient Appointment Churn as-is — but reframe | Operational rework-flag, not the growth lever. Update validation_status copy in catalog.yaml. | High |
| Add T14 Confirmation Discipline tile | The actual front-desk lever per Quant A. Bands: ≥90% great · 80-90% good · 70-80% warn · <70% critical. | Medium |
| Add T15 Risk-Patient Non-Completion (diagnostic only) | Strongest signal but a marker, not a lever. Surface to ROD for context; no OM action. | Medium |
| Drop the $280/visit rate-card in the threshold formula | Replace with Codex's defensible floor: excess × saps × $24/hr × 0.25hr × 2. Full model in drill rail as upper bound. | High |
| Front-office FTE NOT in any threshold | Direction-of-causation unresolved; labor coverage only 56 practices. | High |
We built a tile yesterday based on a real signal. The deep dive shows the signal is real but smaller, in a different place than we thought, and entangled with two other independent failure modes.
The fix is to ship three tiles, not one — and to publish a defensible $5.9M floor instead of a $73.7M ceiling we can't yet defend. Everything else queues into the validation list above.