GoodRx
Pricing Clarity System
Insurance coverage for consumers and clinicians
Insurance coverage for consumers and clinicians



Insurance coverage data is fragmented, inconsistent, and difficult to interpret at the moment it matters most, when someone is trying to understand what a medication will cost. The challenge was designing a single, clear coverage system that could stay simple for consumers and structured for clinicians without increasing effort for either.
Insurance coverage data is fragmented, inconsistent, and difficult to interpret at the moment it matters most, when someone is trying to understand what a medication will cost. The challenge was designing a single, clear coverage system that could stay simple for consumers and structured for clinicians without increasing effort for either.
ROLE
Lead Product Designer
DURATION
6-month MVP build
SURFACES
iOS / Android / Web
SCOPE
Consumer coverage flow
Clinician coverage experience
Coverage system architecture
OUTCOME
Shared coverage system
Predictable coverage logic
Faster decisions
ROLE
Lead Product Designer
DURATION
6-month MVP build
SURFACES
iOS / Android / Web
SCOPE
Consumer coverage flow
Clinician coverage experience
Coverage system architecture
OUTCOME
Shared coverage system
Predictable coverage logic
Faster decisions
ROLE
Lead Product Designer
DURATION
6-month MVP build
SURFACES
iOS / Android / Web
SCOPE
Consumer coverage flow
Clinician coverage experience
Coverage system architecture
OUTCOME
Shared coverage system
Predictable coverage logic
Faster decisions
The System Tensions We Had to Resolve
Insurance coverage is complex, uncertain, and high-stakes. For people to trust what they see, the system underneath must resolve competing forces without exposing them.
The System Tensions We Had to Resolve
Insurance coverage is complex, uncertain, and high-stakes. For people to trust what they see, the system underneath must resolve competing forces without exposing them.
Data arrives messy
Coverage information comes from different sources, formats, and confidence levels. We turn it into one clear signal so users never feel that complexity.
Data arrives messy
Coverage information comes from different sources, formats, and confidence levels. We turn it into one clear signal so users never feel that complexity.






Two mental models
Consumers care about what they will pay. Clinicians care about coverage requirements. The system must serve both without diverging into two products.
Two mental models
Consumers care about what they will pay. Clinicians care about coverage requirements. The system must serve both without diverging into two products.
Ambiguity is normal
Some coverage rules are known immediately. Others depend on context. The system absorbs uncertainty so the UI only surfaces what’s clear and actionable.
Ambiguity is normal
Some coverage rules are known immediately. Others depend on context. The system absorbs uncertainty so the UI only surfaces what’s clear and actionable.






The price page cannot break
Coverage is important, but GoodRx’s business relies on price clarity. If coverage disrupts workflow or pushes prices out of view, decisions slow and conversions drop.
The price page cannot break
Coverage is important, but GoodRx’s business relies on price clarity. If coverage disrupts workflow or pushes prices out of view, decisions slow and conversions drop.
Trust Leaks We Removed
The clinician experience I inherited surfaced the right data, but system behavior caused hesitation at the moment of care. These trust failures emerged when cost, coverage, and uncertainty collided. We fixed them by improving system behavior, not just how it looks.
Trust Leaks We Removed
The clinician experience I inherited surfaced the right data, but system behavior caused hesitation at the moment of care. These trust failures emerged when cost, coverage, and uncertainty collided. We fixed them by improving system behavior, not just how it looks.
Price context was unstable
Before: Inline expansion pushed price content down, breaking scanning rhythm and disorienting clinicians.
Final: A drawer preserves page stability so prices remain visible while coverage is reviewed.
Price context was unstable
Before: Inline expansion pushed price content down, breaking scanning rhythm and disorienting clinicians.
Final: A drawer preserves page stability so prices remain visible while coverage is reviewed.












Signals broke decision order
Before: Signals followed the wrong hierarchy, with overlapping terms that obscured meaning.
Final: Coverage signals are ordered to match clinical decision-making, with each signal carrying clear meaning.
Signals broke decision order
Before: Signals followed the wrong hierarchy, with overlapping terms that obscured meaning.
Final: Coverage signals are ordered to match clinical decision-making, with each signal carrying clear meaning.
The system demanded certainty before earning trust
Before: Three required fields (insurer, plan, type) forced recall before coverage.
Final: Search replaces recall. Missing plan details never block progress.
The system demanded certainty before earning trust
Before: Three required fields (insurer, plan, type) forced recall before coverage.
Final: Search replaces recall. Missing plan details never block progress.






The Rules We Formalized
Coverage clarity starts in the system. The coverage model turns fragmented data into consistent meaning, and these rules govern how that meaning behaves across every surface and state.


The rules
1: Context must be preserved
The known GoodRx pharmacy price anchors trust. Coverage should only appear once that cost context is stable and visible.
2: People are not punished for what they don’t know
When plan details are missing or uncertain, the system continues with the safest assumption. Progress never depends on perfect recall.
3: Decisions follow human logic, not data availability
The system answers questions in the order people naturally ask them under uncertainty. One primary signal per decision prevents hesitation.
4: Stress states must maintain momentum
Errors and partial data keep context and prices intact. Recovery feels like continuation, not a reset.
The Rules We Formalized
Coverage clarity starts in the system. The coverage model turns fragmented data into consistent meaning, and these rules govern how that meaning behaves across every surface and state.

The rules
1: Context must be preserved
The known GoodRx pharmacy price anchors trust. Coverage should only appear once that cost context is stable and visible.
2: People are not punished for what they don’t know
When plan details are missing or uncertain, the system continues with the safest assumption. Progress never depends on perfect recall.
3: Decisions follow human logic, not data availability
The system answers questions in the order people naturally ask them under uncertainty. One primary signal per decision prevents hesitation.
4: Stress states must maintain momentum
Errors and partial data keep context and prices intact. Recovery feels like continuation, not a reset.
Consumer Experience
Consumer Experience
Consumers approach insurance with uncertainty. The experience needed to reduce effort and make cost easy to interpret.
Consumers approach insurance with uncertainty. The experience needed to reduce effort and make cost easy to interpret.
Designed for low-effort interpretation
Designed for low-effort interpretation
The system requests only essential inputs and absorbs missing details, allowing users to reach interpretable results without upfront complexity.
The system requests only essential inputs and absorbs missing details, allowing users to reach interpretable results without upfront complexity.
Coverage results built for clarity
Coverage results built for clarity
Results follow a cost-first hierarchy, surfacing coverage state and estimated copay first. Restrictions appear only when relevant, with alternatives available when coverage is limited or expensive.
Results follow a cost-first hierarchy, surfacing coverage state and estimated copay first. Restrictions appear only when relevant, with alternatives available when coverage is limited or expensive.



Clinician Experience
Clinician Experience
Clinicians move quickly and rely on clear signals. The experience needed to support decision-making without disrupting workflow.
Clinicians move quickly and rely on clear signals. The experience needed to support decision-making without disrupting workflow.
Built to support workflow
Built to support workflow
Coverage opens without displacing the price page, allowing clinicians to assess insurance details while staying oriented.
Coverage opens without displacing the price page, allowing clinicians to assess insurance details while staying oriented.
Results aligned to prescribing
Results aligned to prescribing
Formulary tier leads, followed by estimated copay. Coverage requirements scan quickly and remain collapsible to keep the experience fast.
Formulary tier leads, followed by estimated copay. Coverage requirements scan quickly and remain collapsible to keep the experience fast.



Impact
By separating coverage logic from presentation, the redesigned system reduced decision friction and made insurance information easier to interpret when it mattered most.
What changed
•
Consumers could quickly understand expected cost and next steps
•
Clinicians could assess coverage requirements in-flow
•
Coverage signals followed a predictable, decision-aligned hierarchy
What scaled
•
A single coverage model supports multiple audiences
•
Shared logic remains consistent across surfaces
•
New coverage data can be added without redesigning flows
Impact
By separating coverage logic from presentation, the redesigned system reduced decision friction and made insurance information easier to interpret when it mattered most.
What changed
•
Consumers could quickly understand expected cost and next steps
•
Clinicians could assess coverage requirements in-flow
•
Coverage signals followed a predictable, decision-aligned hierarchy
What scaled
•
A single coverage model supports multiple audiences
•
Shared logic remains consistent across surfaces
•
New coverage data can be added without redesigning flows



What Designing for Price Clarity Taught Me
Principles that bring order to complexity
•
Strong models matter. Clarity starts upstream, not at the UI.
•
Language shapes trust. Precision and approachability must coexist.
•
Hierarchy guides interpretation. The right order reduces cognitive load
•
One system can serve many users. A shared model can flex.
Reflections
Designing for price clarity reinforced how heavily decision-making depends on information structure. People move quickly, look for the strongest signal, and trust what feels well ordered. Labels, spacing, and hierarchy mattered as much as the data itself.
This work reshaped how I think about multi-audience systems. Consumers and clinicians need different things, but clarity doesn’t require separate solutions. When complexity is absorbed by the system, people can make decisions faster and with confidence.
What Designing for Price Clarity Taught Me
Principles that bring order to complexity
•
Strong models matter. Clarity starts upstream, not at the UI.
•
Language shapes trust. Precision and approachability must coexist.
•
Hierarchy guides interpretation. The right order reduces cognitive load
•
One system can serve many users. A shared model can flex.
Reflections
Designing for price clarity reinforced how heavily decision-making depends on information structure. People move quickly, look for the strongest signal, and trust what feels well ordered. Labels, spacing, and hierarchy mattered as much as the data itself.
This work reshaped how I think about multi-audience systems. Consumers and clinicians need different things, but clarity doesn’t require separate solutions. When complexity is absorbed by the system, people can make decisions faster and with confidence.
More case studies
More case studies
Made with love ♡
Made with love ♡
© 2026 Michael Fofrich
© 2026 Michael Fofrich
