Four in ten participants finished the daily questionnaire. Nobody knew that, because nobody had counted. I counted, and then I rebuilt the app.

The problem
Every training session I ran ended the same way.
Where do I press? Is 10 good or bad? Did that save? Where do I go now?
These were people over 60, using a tool a study told them to use, on a phone the site handed them. Every bit of friction was a missing data point.

The number nobody had
- There was no analytics tooling. I pulled the numbers by hand, one live study at a time.
- The app was a web wrapper on a legacy database engineers called “the scrolls.” One new question type: 15 engineering hours plus 2 of validation.
- Leadership had heard “the app is bad” for years. They’d never heard “the app costs 17 hours per question.” A pitch built on taste would have died in the room. This one was built on hours.

The rules
Effortless daily completion · Respect the validated instrument · Visible compliance, no nagging · Trust over speed
The colours stayed because a palette change meant a brand review with every live sponsor and retraining people who had just learned the old look. The budget went to components, where the completion problem lived. I’d make the same call.
Sponsors kept asking for in-app messaging with coordinators. I asked the coordinators. Immediate no: one more inbox on a job that already had too many. The sponsor saw a feature. The coordinators saw their evening. I sided with the coordinators.
Four decisions
The pain scale
- Chose
- A vertical list of numbers.
- Rejected
- The slider I walked in expecting to pick. Smallest target on the screen, most ways to overshoot it. Finished third with 20 testers, half over 60.
- Cost
- Two weeks of live data on the two finalists, which produced a tie. Leadership broke it on taste. Once the data said both worked, taste was the only thing left.
- Now
- I’d make the same call.

The diary window
- Chose
- One reminder, a visible open/closed window, a done state that says exactly when the entry counted.
- Rejected
- Escalating reminders and a hard lock at window close. Both sponsor asks. Both would have raised compliance on paper by annoying people into quitting.
- Cost
- A harder conversation with sponsors than a “yes.”
- Now
- Test reminder timing per study instead of one default schedule.

Two systems for a year
- Chose
- Run old and new in parallel so studies closing within the year didn’t retrain mid-study.
- Rejected
- A forced cutover that made the migration chart look clean.
- Cost
- Two codebases, two training tracks, validation on both, for about a year.
- Now
- Set the migration cut-off in the contract, so the choice happens at signing.
Easy Mode
- Chose
- One switch that turns on high contrast and larger text together.
- Rejected
- A settings menu of contrast, text size, reduce motion. More flexible, and nobody over 60 was going to find it.
- Cost
- A second set of component states.
- Now
- Almost nobody found the switch alone. When a coordinator or family member turned it on, they kept it. I’d designed accessibility as a setting; it turned out to be a handoff. It belongs in onboarding.

What changed
- Completion: 40% → 80%
- Error-free entries: 60% → 95%
- New question type: about 10 fewer engineering hours
- The app went from the slide we skipped in demos to the one we led with
The training room
The training sessions changed too. The same hands stopped going up. People just answered the question, which was the only thing we had ever asked them to do.