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.

Made with love ♡

Made with love ♡

© 2026 Michael Fofrich

© 2026 Michael Fofrich