← All work

Health · AI · 2025

Vital

Health data, in one calm sentence.

A daily read that compares you to yourself, a blood-test explainer with real ranges, and a one-page GP brief, with an AI that explains and never diagnoses.

  • Product
  • UI/UX
  • AI-native
  • Frontend
Role
Concept project · product design + data-viz
Year
2025
Disciplines
Product · UI/UX · AI-native · Frontend
vital.app

01 The problem

People have the data (watch, blood tests, GP notes) but not the meaning. A lab PDF lists numbers, and a 10-minute GP visit is spent finding the right result.

02 Key decisions

01

Compare to your own baseline

Every chart shows your normal range, not the population’s. A dip only matters when it leaves your band.

02

A range bar for every marker

Ferritin 18 sits visibly below 30–400, with a plain-English meaning and the question to ask your GP.

03

A one-page GP brief

Symptoms, what changed, the evidence and three questions, shared before you arrive.

03 Designing the model’s behaviour

prompts/vital.explain.md
You explain a person’s own health data to them.
Rules:
- Never diagnose. Say “worth raising with your GP”.
- Every number keeps its unit and its range.
- Compare to the person’s baseline before any average.
- If a value is urgent, show the emergency card. Nothing else.

04 Built in code

components/RangeBar.tsx
 1export function RangeBar({ value, low, high, unit }: Props) {
 2  const pos = clamp((value - low) / (high - low), -0.15, 1.15)
 3  return (
 4    <Track role="meter" aria-valuenow={value}
 5      aria-valuetext={`${value} ${unit}, range ${low}–${high}`}>
 6      <Dot tone={pos < 0 || pos > 1 ? "amber" : "mint"} at={pos} />
 7    </Track>
 8  )
 9}

05 Then I tried to break it

CaseiOSWatchVoiceOverLarge text
Marker below range✓✓✓✓
Urgent value✓✓✓✓
Two labs, different units✓✓!✓
Offline at the clinic✓✓✓✓
  • Never mix mmol/L and mg/dL in one chart
  • Range bar readable at XXL text
  • Screen readers say the unit
  • Sleep chart crosses midnight

✦ What I’d measure

Open the daily readdays per week
GP visit prep timeself-reported
Diagnoses madezero, by design

Concept project. These are the success measures I designed for, not reported results.

→ What I’d do next

A weekly “all clear” that’s worded as carefully as the warnings.

Next case studyTallyMoney, explained like a friend.
→