Healthily · Healthtech · Legacy AI

Modernising a legacy AI symptom checker for 5.5M people

I was asked to redesign the outcome screen of an AI symptom checker. My research traced the issue to the input, and the job grew into a full modernisation of the frontend and the backend

Read
The Healthily symptom checker on the web: the question What symptoms are you experiencing, a text field where hea is typed, and three suggestions underneath, headache also known as cephalalgia, head pressure, and light headedness also known as feeling faint, each with the typed letters highlighted
The modernised input in the web app. Suggestions as you type
Owned

Owned the modernisation of the legacy AI Symptom Checker and MediBase, end to end, as Design Lead across three products and six cross-functional teams. Built the design system and led the user research, interaction design and information architecture

+23%symptom-description accuracy
5.5Musers of the symptom checker
Class IIacertified under EU MDR
ProblemThe AI symptom checker was a legacy system, still working as built. Too many consultations ended with no outcome, and nobody could say why. Funnel analysis and user research traced it to the symptom input, where people struggled to name their symptoms
ConstraintsA Class I medical device, so any change to the input flow meant clinical re-validation. It was also a legacy system, and this was its first end-to-end modernisation. Six teams on three products had to ship the same layer
Before: the symptom checker's closing screen reading 'Sorry, I can't find any matching conditions for the symptoms you've told us', with a single Thanks button
After: the closing screen headed 'Your report', advising self-care at home, with migraine marked likely and two other possible conditions listed
Before, a consultation that ended with no outcome. After, a consultation ending in a report
The public Healthily website: a search hub headed 'Your health questions, answered' above a row of Healthily guide cards for gut health, pain management and sleep.
The public site, one of the three products the checker ran on
DecisionUser testing showed people liked the free-text box, so it stayed. Symptoms are also hard to spell or name. I added a second way in: suggestions while typing, built from commonly used words. Of the two versions tested, the fuller one won
ResultOne-star consultation ratings halved, from 13.1% to 6.6%. Symptom-description accuracy rose 23% and satisfaction rose from 62% to 67%. The checker then went from Class I to Class IIa under EU MDR, a certification based on this work
MediBase, the internal clinician tool: a condition's symptoms keyed to UMLS concept IDs with weights, plus inclusion and exclusion rules, behind red-flag and publish gates.
MediBase, the symptom-recognition and ratification system. The second system, built in tandem.

Funnel analysis and user research traced the drop-off to the symptom input

Healthily began in 2013 as Your.MD. By the time I joined, its AI symptom checker was a legacy system. I came in to update the outcome screen. My research showed the input needed modernising first, so that became the job.

"I couldn't find the words for what I was feeling."
The theme across fifteen interviews, paraphrased

The system worked as built, so I traced it end to end. Mixpanel drop-off tracking pointed to the first field. I compared what users typed with the diagnoses they ended on. The gap opened at the input. Fifteen interviews and eight usability tests showed why.

Users could not find the right words for a symptom. They were unsure which details were worth mentioning. They wrote long, skipped the specific part and guessed the spelling. The model worked as built, and users still ended up with lots of similar symptoms and never the one they meant.

The checker was a Class I medical device, so any change to the input flow triggered clinical re-validation. I made the call to keep the NLP and modernise around it, a direction my competitor research had pointed to.

Before: the symptom checker's closing screen reading 'Sorry, I can't find any matching conditions for the symptoms you've told us', with a single Thanks button
After: the closing screen headed 'Your report', advising self-care at home, with migraine marked likely and two other possible conditions listed
Before, a consultation that ended with no outcome. After, a consultation ending in a report

It was a full version update: the frontend of the symptom checker and the backend symptom ontology, two systems redesigned together. The old version was natural language processing alone. The new one works as a translation layer between medical terms and everyday language. Autocomplete starts after three characters, each suggestion carries its “also known as” names, and the checker shows back what it heard so users can add or remove symptoms. The checker asks for further detail through progressive disclosure, at the moment the user needs it.

Typing hea brings up headache, head pressure and light headedness, each with its everyday name underneath

1 Suggestions as you type

The chosen symptoms, headache and dizziness, shown back as chips that can be removed, with room to add another

2 What it heard, shown back

The consultation asks how long the symptoms have lasted, with 1 to 7 days selected

3 The consultation

The closing screen headed Your report, advising self-care at home

4 A report at the end

The frontend change sits in steps one and two. Three and four improved because of them
The everyday-language layer I added
Chest tightnessAlso known as chest pressure, tight chest

Symptom input · however a patient types it

Recognition and triage
  • Self-care at home
  • Pharmacy
  • See a GP
  • Urgent care · 999emergency

I led the clinical knowledge base and symptom ontology behind the AI

Under the search box sat MediBase. I structured it and led it: every condition, its symptoms, its warning signs and the rules for what the checker could safely ask. GPs from the in-house clinical team tested and signed off every mapping before it went live. The medical decisions stayed with the clinicians. I built the system they used to make them.

I extended the symptom ontology so every everyday name links to the clinical term behind it. That link is what lets a suggestion appear after three characters. Feedback mechanisms then kept improving what the AI understood over time.

An A/B prototype test put everyday names under each clinical suggestion

It was a big change to the checker, so we staged it to learn how best to roll it out. The test asked whether the “also known as” names helped users, and which presentation worked best.

Two prototypes went in front of users. A was autocomplete alone, the smaller build. B showed the everyday names under each suggestion, so users could recognise “runny nose” without knowing the medical term, plus a way out when nothing fitted.

A tested worse. Autocomplete hands you a list, but no way to check the medical term is the thing you meant. People wanted their own words back before committing.

B added a step, and completion did not fall. Satisfaction rose from 62% to 67%.

Two phone screens side by side, versions A and B of symptom entry. A shows plain autocomplete suggestions for 'run'. B shows 'runny nose' with 'also known as runny nose or nasal discharge' beneath it, plus a button for symptoms that cannot be found.

I owned the checker and its design system across three products

The checker lived in three places: the consumer app, the web app and the public site, each built by a different team. As design lead I owned it across all three, with a junior designer and a brand designer, end to end: discovery, user research, prototyping, the build and what came after.

I set the design system, the interaction patterns and the wording. I aligned product, engineering, clinical, legal and commercial teams around one source of truth, so the teams agreed a change once and shipped it everywhere.

The result: a symptom looked and read the same at every touchpoint.

The public Healthily website: a search hub headed 'Your health questions, answered' above a row of Healthily guide cards for gut health, pain management and sleep.
The public site, one of the three products the checker ran on
The Healthily app homepage, scrolling through the search for 'chest tightness', editors' picks and the health library.

The homepage, top to bottom.

The Dot launcher: check your symptoms, track your health, health tests or ask a question.

The home for Dot, the symptom checker.

The Dot chat: Dot greets Sam and offers options to check symptoms or ask a question.

Dot greets you and offers a route in.

The Healthily app tracker, scrolling through mood, sleep length and sleep quality.

Your day and your trackers.

MediBase, the internal clinician tool: a condition's symptoms keyed to UMLS concept IDs with weights, plus inclusion and exclusion rules, behind red-flag and publish gates.
  1. 1Publish + red-flag gatesNothing reaches a patient un-reviewed.
  2. 2Symptoms keyed to UMLS CUIs, weightedWeighted scores across coded symptoms decide the outcome.
  3. 3Inclusion / exclusion rule engineThe logic that decides each outcome.

Accuracy rose 23% and one-star ratings halved, backing Class IIa certification

Symptom-description accuracy rose 23%, measured on completion outcomes. More users finished. After autocomplete launched, one-star consultation ratings halved, from 13.1% to 6.6%. One tester said: “It helps you describe symptoms more accurately.”

Whatever a user typed now routed them to the right place: a GP, a pharmacy or self-care. Red flags were never softened. Chest tightness still ended in a call to 999.

In under a year we modernised the checker end to end, frontend and backend. There was more to do, starting with the everyday-name dictionary. It then went from Class I to Class IIa under EU MDR, a certification based on this work and awarded after the improvements were in.

MediBase ended up with every condition, symptom and red flag coded to UMLS.

How a symptom is entered shapes user trust and commercial outcomes

The brief was the outcome screen, the last step of the flow. My research traced the cause to the first step, the symptom input. From there, I led the work end to end: qualitative and quantitative research, the build, the launch, the iterations and the post-launch analysis. Metrics backed every decision, and I balanced user trust against the business numbers without trading one for the other.

It proved that how a symptom gets typed in shapes both user trust and commercial outcomes. If I did it again, I would grow the everyday-name dictionary from unmatched searches from day one.

Scope
  • Legacy AI Symptom Checker, modernised end to end
  • Symptom input: suggestions, everyday names, confirmation
  • Clinical governance: GP sign-off on every change
  • Design system and wording across all three
Method
  • 15 interviews and 8 usability tests, which I led
  • Mixpanel drop-off tracking to locate where people dropped off
  • Multiple prototypes A/B tested, each change staged
  • Delivery across six teams on three products, one source of truth