← Location leaderboard
Four Wall
Ever/Body-Gaithersburg
Needs Support · <70%Rebooking — Road to 80
Ranked by Growth (Period % vs. YTD baseline), since 2026-07-13.
YTD % (2026-01-01 – 2026-07-12)
40.9%
Period % (since start)
33.3%
Growth
-7.6 pts
Growth rank
#27
For reference only (not counted toward standings): 44.4% same-day / 47.2% 30-day over the 90 days before the program started.
◆How this is calculatedshow formula & sources
Same-day % = COUNT(guests whose next appointment was created the
same calendar day as their payment, with a future start time)
/ COUNT(visits in the period)
YTD % = same formula, over Jan 1 - Jul 12, 2026 (before program start)
Period % = same formula, over 2026-07-13 forward (day over day)
Growth = Period % - YTD %, in percentage points
Ranked by Growth, not raw Period %. Top 3 by Growth get access to
Shawna's non-cash reward list - pick exactly 1 per location, does not
stack across locations. Growth needs both a YTD and a Period figure to
rank; locations without enough Period data yet don't rank until they
have it - they aren't scored as zero.
Color band (informational, separate from ranking): green >=80%,
yellow 70-79%, red <70% on Period %.Reporting sources
- Invoices: Corral amp-organization → use_dataset(39)
- Appointments (completed/confirmed/checked-in): Corral amp-organization → use_dataset(1106)
Known data gaps
- Program start is backdated to Monday 2026-07-13 (2 days before this was built) so the leaderboard shows real accumulated days instead of hours — a fixed calendar anchor, not a sliding lookback.
- Zenoti has duplicate center_name records for several locations (an old state-prefixed code alongside the current Brand-City name). YTD figures merge known duplicates by city match (see CENTER_ALIASES in scripts/build-data.mjs); H-MD-Chisholm Creek vs. H-MD Medical Spa is ambiguous and deliberately left unmerged — worth confirming against the master location list.
Reengagement Challenge
Lapsed = seen in the last 90 days, no future appointment. Dormant = not seen in 90+ days, no future appointment. Starting pool snapshotted 2026-07-15; Recovered counts pool members who now have a future appointment, tracked day over day.
Lapsed
367
Dormant
238
Starting pool
605
Recovered to date
0
◆How this is calculatedshow formula & sources
Lapsed = seen in the last 90 days, no future appointment Dormant = not seen in 90+ days, no future appointment Starting pool = lapsed + dormant, snapshotted 2026-07-15 (frozen list) Recovered = COUNT(starting-pool patients who now have a future appointment) Recovery rate = Recovered / Starting pool Recovered is structurally 0 right now — the snapshot and the check happen at the same instant. It moves once the daily refresh re-checks that same frozen patient list on later days.
Reporting sources
- Patient last-seen / last-appointment status: Corral amp-organization → zenoti_corp.transformed_guest_v
Known data gaps
- This snapshot is dated 2026-07-15, not the program's 2026-07-13 start — lapsed/dormant status is a live-state query, and Zenoti can't retroactively tell us who was lapsed/dormant on a past date the way invoices/appointments can be queried historically.
- Day-over-day recovery tracking needs the frozen starting-pool patient list stored persistently (some locations exceed 40,000 patients) and re-checked daily — not yet provisioned (recommended: Supabase, matching every other AMP repo's pattern)