Deep Persona Suite - Index
Generated: 2026-05-05 13:46:16, total 511s
| # | Persona | Demographic | Complaint | Expected | Got | Judgement | Turns | Report |
|---|---|---|---|---|---|---|---|---|
| 1 | Alice (with mum reporting) | Female 5 (alice_5) | My 5-year-old has been complaining her right ear hurts since this afternoon. She | self-care, pharmacy, gp, 111 | self-care | PASS | 5 | transcript |
| 2 | Bella | Female 16 (bella_16) | My throat's been killing me since yesterday. Voice has gone all raspy too. | self-care, pharmacy | self-care | PASS | 5 | transcript |
| 3 | Clare | Female 35 (clare_35) | I've had a really bad headache for the last two hours. | self-care, pharmacy, gp, 111 | 999 | FAIL_OVERESCALATED | 9 | transcript |
| 4 | Diana | Female 70 (diana_70) | I've been getting a stinging feeling when I pass water for the last two days, an | gp, 111, pharmacy | self-care | FAIL_BAND_MISMATCH | 6 | transcript |
| 5 | Ethan (with mum reporting) | Male 5 (ethan_5) | My 5-year-old son has a new rash on his tummy and arms that appeared this mornin | self-care, pharmacy, gp, 111 | self-care | PASS | 7 | transcript |
| 6 | Finn | Male 16 (finn_16) | I twisted my ankle in football about an hour ago. It's swollen and hurts to put | self-care, pharmacy, gp, 111 | self-care | PASS | 6 | transcript |
| 7 | Grant | Male 35 (grant_35) | I've got a really tight, crushing pain in the middle of my chest. It started abo | 999, ambulance, a&e | 999 | PASS | 9 | transcript |
| 8 | Hugh | Male 70 (hugh_70) | I've been getting more out of breath than usual when I go up the stairs over the | gp, 111, a&e | 999 | FAIL_OVERESCALATED | 9 | transcript |
Wearable streams data
Added 2026-06-09 - synthetic wearable timelines for the persona suite, powering the balance streams service and the triage v5 streams sidecar.
Each persona (except the two under-6 children) now has a deterministic synthetic wearable history - steps, sleep, resting heart rate and HRV. The balance service serves a 7-day rollup + significant-event digest from this data via POST /streams/digest; triage's v5 streams sidecar fetches it per turn so the narrower can ground its questions in what the patient's week actually looked like (the "Olly is checking your past week…" step).
Baselines + acute signal per persona
| Persona | party_locator | Steps/day | Resting HR | HRV | Sleep | Sleep eff. | Recurring | Acute signal (index event) |
|---|---|---|---|---|---|---|---|---|
| Bella | bella_16 | 12,000 | 62 | 55 | 480 min | 0.89 | school practice (Mon/Wed/Fri) | activity_drop - "practice cut short - ankle", ~2 days ago; steps collapse 12k→3k, two poor-sleep nights, accelerometer spike |
| Clare | clare_35 | 4,000 | 70 | 35 | 390 min | 0.78 | - | chronic pattern - no acute event; detector flags low daily steps + declining sleep |
| Diana | diana_70 | 3,000 | 75 | 25 | 360 min | 0.74 | - | chronic pattern - low steps + low sleep efficiency |
| Finn | finn_16 | 14,000 | 58 | 65 | 470 min | 0.91 | morning run 6km (Tue/Thu/Sat/Sun) | gradual volume spike - rising mileage; walks-only since day −3 |
| Grant | grant_35 | 10,000 | 55 | 70 | 425 min | 0.88 | weekday tempo (Tue/Thu) | workout - "long run 18km", 3 days ago; walking-only since (steps ×0.6) |
| Hugh | hugh_70 | 8,000 | 65 | 45 | 410 min | 0.85 | daily walk 30 min | fall - "fall in kitchen", ~14 days ago; accelerometer spike, daily steps halved, short walks only for 7d |
| Alice / Ethan | alice_5 / ethan_5 | - | - | - | - | - | - | no wearable data (children) |
Provenance
- Recipes:
services/balance/data/personas/streams/<party_locator>.yml- deterministic generator specs (per-personaseed, 60-day horizon,clock_mode: slidingso "the past week" is always relative to now). - Materialised:
services/balance/data/streams/<party_locator>/- Parquet (samples,rollup_hour/rollup_day/rollup_week,events). ~190k minute-samples + 300 daily rollups per persona; generated 2026-06-09, recipe hash pinned in eachmeta.json. - Doc 8 conformance fixtures (episode-level, separate from the streams timelines):
grant_declining.json(resting HR 56→63, sleep 450→330 min, 3-day mood-2 streak),clare_steady.json,bella_sparse.json, plusgrant_medical.json(FHIRCondition- coronary arteriosclerosis).
How triage consumes it
The v5 streams sidecar plans a fetch scoped to the complaint - an LLM planner picks the minimum relevant metric groups from activity, sleep, cardiovascular_recovery - calls balance, and caches the digest. The debug capture chip (X-Triage-V5-Capture-B64) surfaces the resulting 7-day rollup as streams_rollup_7d. Example (Grant, a complaint mentioning both sleep and a racing heart, so all three groups are pulled):
| metric | mean | trend | vs baseline |
|---|---|---|---|
steps_per_min | 7.70 | stable | 92% |
sleep_total_min | 430 | stable | 99% |
sleep_efficiency | 0.89 | stable | 101% |
heart_rate | 56 | stable | 101% |
hrv_5min | 70 | stable | 100% |
A knee-only complaint pulls just steps_per_min; mentioning sleep or a racing heart pulls the sleep / cardiovascular metrics too. The values are the persona's own generated data - Grant's match his recipe baseline (sleep ~425 min, RHR 55, HRV 70).
