Health tech · Product design

CODI catches COPD getting worse, 1 to 3 days before the patient feels it.

My role
Solo product designer, research, strategy, UI, testing
Deliverables
iPhone app, coordinator web dashboard, design system
Background
Licensed Korean medicine doctor
Timeline
5 weeks
Category
Health tech

Expected impact

Projected, based on published research and CODI's fee model. Not yet measured.
1 in 5
COPD patients readmitted within 30 days
~ 52 %
Fewer readmissions with home-based management
$ 200–270
Medicare reimbursement CODI's fee model taps into, per patient
1 to 3 days
Early-warning window CODI is built to catch
What CODI actually is

Two apps, one signal

CODI links a COPD patient, living with lung damage that's managed for life, with the coordinator tracking their recovery. One app for the patient, one dashboard for the hospital's coordinator, connected from the moment they leave the hospital.

Patients speak into their phone for 30 seconds each morning. The app also pulls data from their phone and Apple Watch, all of it feeding into one CODI Score.

CODI patient check-in and coordinator dashboard screens

That score splits two ways. The patient sees their own status. The coordinator sees the full picture, for every patient on their list.

Hospitals are already paying for this follow-up. CODI makes it work.

Why this works as a business

COPD patients get readmitted to the hospital within 30 days about 1 in 5 times. Medicare penalizes hospitals for that with lower reimbursement payments.

That's the gap CODI steps into. For patients, it means checking their own status from home. For hospitals, it means keeping discharged patients healthy enough to protect that reimbursement.

Medicare, hospital, and patient money-flow diagram

That follow-up care already runs on its own Medicare reimbursement model, Transitional Care Management, worth roughly $200–$270 per patient in the 30 days after discharge. CODI taps into that same model, earning a small piece of it for helping the follow-up actually work.

CMS Hospital Readmissions Reduction Program (HRRP), cms.gov/medicare/quality/value-based-programs/hospital-readmissions
Two people, not just a patient and a coordinator

Who this is for

Next, I needed to know who I was designing for. So I built two personas: one for the patient app, one for the coordinator dashboard.

A systematic review of 31 qualitative COPD studies on PubMed found patients want a simple daily read on how they're doing, plus clear next steps when something's wrong.

Another study found physicians spend 16 minutes per encounter in the EHR, a third of it just reviewing charts, hunting for information. That's the overload Sarah's dashboard has to solve, something my doctor friends complain about constantly too.

Walter, patient persona
Walter, patient, 73
"Am I okay today?"
COPD 3 weeks post-discharge iPhone 15 + Apple Watch
Wants
  • Recover safely
  • Stay independent
  • Know whether today's symptoms are normal
Sarah, coordinator persona
Sarah, RN, 39
"Why are we only seeing them after things have already gotten bad?"
~10 patients 5 systems 14 years RN
Wants
  • Know who needs attention first
  • Understand why, fast
  • Decide what to do next quickly

Walter needs one quiet question answered every morning. Sarah needs one loud question answered every day: who first.

Russell et al., NPJ Primary Care Respiratory Medicine, 2018 (PMID 29343739) · Overhage & McCallie, Annals of Internal Medicine, 2020 (PMID 31931523)
The logic that runs the app came before the first screen

Strategy & the hard problem first

"What could show someone their lung condition was getting worse, from home, without a hospital's equipment? Here's the table I built to answer that."

Six-factor CODI Score weight table and zone scale
Why voice

Reading a person's health through their voice is an emerging area, AI-driven voice biomarkers, with a real body of PubMed research behind it. CODI's AI analyzes each check-in against that patient's own voice baseline, so it can catch a change a stranger's ear never would. That's why voice became CODI's core signal.

Why SpO2

A pulmonologist I interviewed said SpO2 is the first thing he checks in any respiratory patient, so it's the second-highest weight.

Why 72 hours

Exacerbations usually show small symptoms about three days early. A score below 30 for three straight days signals urgent, sorting patients into three zones: green for steady, orange for care needed, red for get help now.

Patient reporting symptoms in the CODI app
CODI Score zone scale chart
Russell et al., NPJ Primary Care Respiratory Medicine, 2018 (PMID 29343739) · Overhage & McCallie, Annals of Internal Medicine, 2020 (PMID 31931523)
Two mornings, two outcomes

App walk through

Patient app flow

A steady morning, and one that needs a coordinator's help.

Patient app flow, steady and care-needed paths
Coordinator dashboard

Everything Sarah needs to make the call, in one screen.

Coordinator dashboard, annotated
What the CODI Score meant for the interface

Design decisions

No numbers to the patient, full numbers to the coordinator

My pulmonologist's read on this was direct: for most COPD patients, who are elderly, an exact score just causes fear, and a raw number is hard to parse on top of that. The coordinator, a nurse or any clinical staff member, wants the exact number and wants to know where it came from.

Patient app with no score shown, coordinator dashboard with full number
A clear next step, not just a score

From the interview, and from my own experience treating patients, people want clear instructions the moment they notice something's off. So I pulled from Australia's official COPD Action Plan: below a score of 30, the app asks what symptoms are present, then shows the matching next step.

Orange-zone action step next to the Australian COPD Action Plan
A red zone for the coordinator, one word for the patient

The CODI Score has a red tier for genuinely urgent cases. The action a patient takes stays the same whether they're in orange or red, coughing calls for the same inhaler routine either way, so the patient app stops at orange, "care needed." Coordinators see the red zone clearly, so they can call right away.

Patient app orange zone next to coordinator dashboard red zone
Red zone alert on the coordinator dashboard
No emergency button in the patient app

I built one at first, for active exacerbations, then realized CODI's whole purpose is catching things before that point. If the button gets used, the system already missed its window, and someone struggling to breathe doesn't have time to open an app anyway. So onboarding tells patients directly: skip CODI, call 911.

CODI onboarding message: skip CODI, call 911
Adapted from a real foundation, not built from zero

Design system

Every design system decision here starts from one thing: the user is elderly.

Foundation: adapted, not built from zero

I started from Montage, the open-source design system from Wanted, a Korean job-search platform, chosen because it adapts cleanly across both mobile and desktop, which mattered since CODI needed a phone app and a web dashboard from the same system.

Color and type: built for legibility

Bright, easy-to-read status colors, and Inter as the typeface.

Sizing: bigger than required

Buttons and type are sized up throughout the patient app, giving elderly hands and eyes an easier target.

Simplicity: one question at a glance

Every patient-facing screen stays as simple and direct as I could make it.

CODI design system token sheet

Usability testing

Coordinator dashboard. Testers came from my medical-school network: three physician friends and the pulmonologist from the CODI Score interview, four doctors in total. I ran it as moderated think-aloud testing, sitting beside each tester while they worked through the core task and narrated their reasoning out loud. Everyone completed it without guidance, and a follow-up SUS survey scored 87.2 out of 100 (n=4), well into the "excellent" range.

Moderated usability test session Coordinator dashboard test task

What stood out most: the pulmonologist pointed out that COPD is tied to heart disease, matching my own experience treating patients, comorbidities like hypertension and diabetes always belong in the picture, not just the primary diagnosis. So I added a one-line AI summary of the patient's overall status to the dashboard.

Patient app. For the patient side, I ran an AI agent through the app configured as Walter, a simulated COPD patient, with every step of its reasoning recorded. The clearest finding: the voice button and the "next" control sat on the same screen, and the agent couldn't tell which one to use first. I removed the redundant control.

Patient app before/after, mic-only fix
The same system extends well past COPD

What this could become

CODI was built for COPD, but the same case applies elsewhere. Medicare's Hospital Readmissions Reduction Program penalizes hospitals for six conditions: heart attack, heart failure, pneumonia, COPD, hip/knee replacement, and CABG surgery. Beyond that list, it applies to any chronic condition that gets managed rather than cured.

CODI system extended to other chronic conditions

Working on this as both a doctor and a designer changed what I paid attention to. Treatment was never the whole story, the everyday friction around it mattered just as much. That's the perspective I want to keep bringing to healthcare products.

Hero Expected impact Two apps, one signal Why this works as a business Who this is for Strategy & the hard problem first App walk through Design decisions Design system Usability testing What this could become More work