Senior UX Designer | Oak Street Health | 2 Months
A small, high‑impact feature that cut coding time in half and boosted accuracy by ~90%
Visit Code Calculator
How can we using AI advancements to create an egg freezing assistant to improve women's fertility success rates?

How might we automate visit code entry to maximize patient care time and minimize both administrative burden and financial waste?
Design Process
I front‑load on user research and workflow mapping to remove friction where it matters most. For this project, that meant understanding how providers arrive at codes today, where errors creep in, and what inputs could be safely automated
Role
As Senior UX Designer, I led the end‑to‑end design lifecycle: discovery, research synthesis, interaction design, prototyping, and stakeholder alignment. I partnered with Product, Billing Ops, Revenue Cycle, and Eng for feasibility and launch
Goal
Create an embedded calculator that suggests the correct visit code with minimal manual input, reducing errors, time, and stress while increasing coding accuracy and revenue capture
Outcome
~50% faster code entry (time cut roughly in half)
~90% increase in coding accuracy
Reduced provider cognitive load; fewer downstream billing corrections
Project Details

Meet Dr. Lopez
A dedicated physician wrapping charts late after clinic, dreading code entry - a manual, slow, error‑prone
“I just want the right code to be obvious so I can finish and go home - without second‑guessing.”
Meet Our Users: Providers Overwhelmed with Admin Tasks
“I want to feel like I’m not falling behind in life just because I haven’t figured everything out yet. I need support that gets me—something that helps me make smart decisions without scaring me.”
Tech Behaviors
Tracks cycle using Clue app
Uses Headspace for guided meditation
Shops online, values personalized recommendations
Comfortable with chatbots if they feel intelligent and friendly
Manual input across multiple fields
Error‑prone lookups and rework
Time‑consuming to confirm codes
Inaccurate billing = lost revenue
Unnecessary cognitive overhead
Competitive Analysis
After competitive analysis, I found:
Many competitors’ software is clunky; only ask essential questions
Use a calculator model: enter inputs and click generate
Aim for maximum automation
Analogous Research
From Analogous Research, I drew inspiration from:
“Add Ons” in Uber Eats
Freelance calculator: time + rate + hours + job type = total cost
Haircut with additional services (e.g., highlights): calculate total cost for both
Open-Ended Interviews
After open-ended user interviews, I discovered users wanted:
Minimal questions
Tailored for Scribes
Time-Based (not MDM)
Include a special “PDV code” option
Display meanings for each code
Code submission is the final step, so there will be minimal changes post-submission
Research
Requirements
Quickly identify and track high-risk patients
Prevent hospital admissions
Help care teams work together better
Frustration
Exhaustion
Overwhelmed

Design Audit

"Coding takes forever, and I’m never 100% sure I got it right - I usually just pick a general code to save time"
Conceptualizing Ideas

Mapping User Flow
Given the project’s scope, I organized a Design Jam with my UXD team:
Initially, users entered “# of minutes,” but feedback suggested reversing this to “start time” + “end time” for automatic minute calculation to avoid mental math
Ideas included a “general timer,” but it requires manual “start/stop” clicks by the Scribe, so we’re seeking more automation
Linking to another part of the EMR was a promising idea but, for the MVP, we opted for simplicity. Not all users use that EMR feature correctly, so we aimed to avoid disrupting the workflow
Design Jam
Given the project’s scope, I organized a Design Jam with my UXD team:
Initially, users entered “# of minutes,” but feedback suggested reversing this to “start time” + “end time” for automatic minute calculation to avoid mental math
Ideas included a “general timer,” but it requires manual “start/stop” clicks by the Scribe, so we’re seeking more automation
Linking to another part of the EMR was a promising idea but, for the MVP, we opted for simplicity. Not all users use that EMR feature correctly, so we aimed to avoid disrupting the workflow

Lofi Evolution
Lofi explored:
One‑tap access from any chart state
Auto‑population of known fields
Guardrails to reduce miscoding
Collaboration cues when a second set of eyes is needed
Stays in‑flow; no modal dead‑ends



Adding to Design System
While starting the lo-fi design, I realized our design system lacked a calculator pattern.
I submitted the rationale and benefits for its creation, and it was approved!
Having the questions stacked like that takes up a lot of room, but was necessary to follow the design pattern of questions
Checking for Viability, Testing for Edge Cases
Early Dev Approval
Early in lo-fi creation, I consulted with my dev team to confirm functionality and avoid limitations.
Their advice helps guide my design, ensuring efficiency and preventing wasted effort.
Aside from the detailed annotations and hifi’s, I always like to hand off a super specific user flow mapping to my devs. I find it acts as a concrete instructional manual for them to get behind the workflow.
Task Scenario Testing
I conducted Task Scenario testing with 5 participants, asking 5 questions each:
Feedback was positive, but they struggled with the PDV question
I realized the design was overly complicated
There were edge cases I needed to account for
I simplified the question from:
“Would you like to add additional PDV codes for a non-PDV visit?” to “Was this visit scheduled as a PDV?”
Validating User Needs' Met
The user feedback proved to be successful in meeting their needs:
“Good, the Scribe doesn’t need to memorize codes”
“Easier and faster”
“Intuitive”
“No hesitations”
Combatting Edge Cases
In combination of the lo-fi phase + user testing, I identified several edge cases:
Appointment type may change, requiring updates for new additions
Users need manual code search
Incorrect code generation; users need a way to enter the correct one
Handle scenarios where a patient leaves early and isn’t billed
Users should be able to remove one code and add another
Build + Refine
Dev Build Out
While the Devs were building the design, they identified an issue:
When re-adding codes, the side panel reset to an empty state, and pulling existing data was too complex given its rarity
The solution: disable the “Add Visit Code” button after a code is added. Users must delete each code to re-enable the button. Though not ideal for UX, it was the best option given the time constraints.

UI to Build out Hifi
Hifi refined:
Clear primary action hierarchy
Inline explanations only when needed
System‑recommended code with confidence indicator
Quick edit for edge cases; audit trail preserved

“Now the right code just shows up, I barely have to think about it. It saves me at least 10 minutes per chart and I’m confident I’m billing correctly.”
Clickable Prototype

Final Design Call Outs
Measuring Success
Lessons Learned
The Good
Small Changes, Big Impact
A reminder that even small feature tweaks can make a huge difference for both users and business revenue
The Bad
Overcomplicated Design Process
Refining the questions and user flow was more complicated than it needed to be; would have done more user mapping from the jump
Opportunities
Beyond MVP
Future plans include expanding automation features and further integrating the tool to enhance user experience and operational efficiency