Discover → Define → Develop → Deliver
Healthtech App · Price Transparency · 2026Concept Project

Same pill.
Different price.

A Double Diamond case study on designing Compass, a prescription price-comparison app, built around one exact moment: picking a pharmacy blind, with no way to tell whether you're about to overpay by 30–50% for the identical prescription.

Role

Solo Product Designer — research to UI

Timeline

9 weeks, end‑to‑end

Platform

iOS & Android

Tools

Figma · FigJam · Dovetail

Compare the flow yourself ↓
Field research · Live price-shop exercise

One tester's actual search

Atorvastatin 20mg, 30-day supply, five pharmacies within 4 miles of the same zip code

$18Compass verified price
$21ValueMart Pharmacy
$39Northgate Pharmacy
$46Harborview Drug
$52Corner Apothecary
Good price Fair price High price

Without Compass, their plan was to just fill it at Harborview — the pharmacy nearest their doctor's office, and the second most expensive option on the list.

What is Compass?

Compass is a prescription price-comparison app: patients add the medications they take, and Compass checks real, verified prices at every participating pharmacy nearby — before they ever commit to filling anything. Onboarding's whole job is getting someone from "I have a prescription" to "I know exactly where to fill it for less," in minutes, not a separate errand.

The real problem

It's not a hypothetical. Independent pharmacy-pricing audits have repeatedly found that identical drugs — same manufacturer, same dosage — can vary 30–50% in price between chains within the same zip code, and the patients paying the difference usually don't find out until after they've already paid. There's no shortage of pharmacies. There's a shortage of any consumer-facing way to compare them before buying.

The goal

Design an onboarding where a real price comparison happens before any commitment is asked — not a separate coupon app to remember, not five phone calls, just the price, shown before the decision instead of discovered after it.

Why Double Diamond, not design thinking

This problem had two very different kinds of ambiguity stacked on top of each other: first, an open question of why patients tolerate this kind of price opacity at all, when they wouldn't for almost anything else they buy (a discovery problem), and only once that was answered, a second open question of what a comparison tool would need to look like to actually be trusted, not just accurate (a design problem). Double Diamond's two explicit diverge‑then‑converge cycles kept those apart instead of collapsing straight from symptom to solution.

One person, every hat

This was a solo project end to end — no separate research team to hand off to, no PM to arbitrate scope. Every trade-off documented below (what got cut, what got kept, what got argued with a pharmacist) is one I made myself, moving between roles as the work needed:

Researcher Product strategist UX designer UI designer Prototyper Usability moderator

That's a scope statement, not a boast — a real team changes this. The pharmacist consult and the pricing-liability constraint below are exactly the kind of calls I'd bring to a clinical advisor and a data partner rather than resolve alone; I've flagged those seams throughout instead of pretending they aren't there.

47%

of surveyed prescription users found out only after the fact that they'd overpaid

30–50%

typical price swing found for an identical prescription across nearby pharmacy chains

5 of 6

competitor tools audited required you to already suspect you're overpaying before you'd think to open them

Fig. 1 — The double diamond, mapped to this project

DISCOVER DEFINE DEVELOP DELIVER THE PIVOT: ONE VALIDATED INSIGHT
Diverge

Discover

Question everything about why the step fails, without assuming the fix yet.

Converge

Define

Narrow to one insight and one problem statement worth solving.

Diverge

Develop

Sketch multiple, genuinely different ways to solve that one problem.

Converge

Deliver

Build, test, and refine the direction the evidence actually supported.

Where This Lands

Before the process, here's the destination

Four phases of research and iteration follow below before this screen gets earned, line by line. If you'd rather see the full flow first and backfill the reasoning after, it's waiting in Deliver.

Jump to the full walkthrough ↓
9:41●●● 5G 100%
Why this price?
Atorvastatin 20mg · ValueMart Pharmacy
Cash price$46
Negotiated rate−$25
You pay$21
Same medication. Same manufacturer options. Licensed, verified pharmacy.
Checked against the insurance you added — cash price still wins here by $4.
DivergePhase 01

Discover: how wrong was our assumption?

Before designing anything, the goal was to understand the problem as widely as possible — market context, secondary research, and patients' own words — without narrowing to a fix too early.

Competitive & market audit

Price-comparison already exists — just never inside the actual moment of choosing a pharmacy. Five products (and one very manual workaround) were audited for how they handle prescription price transparency.

ProductWhat it doesWhere it falls short today
GoodRxStrong price comparison and coupons across most US pharmacies.A separate app entirely — disconnected from any prescription list or refill flow.
SingleCareSimilar coupon-card model to GoodRx, broad pharmacy coverage.Same disconnect: a patient has to already suspect they're overpaying to think to open it.
Amazon PharmacyTransparent pricing, but only for its own fulfillment.Doesn't help a patient compare against their existing local pharmacy at all.
RoVertically integrated pharmacy bundled into a telehealth flow.No pharmacy choice at all — convenient, but opaque by design.
Included HealthCare navigation with pharmacy benefits guidance.Guidance is manual, via a care advocate — not something a patient can self-serve in the moment.
Calling aroundWhat most patients still do: phone 2–3 nearby pharmacies and ask.Doesn't scale past a couple of calls, and pharmacy staff don't always know competitors' prices either.

Opportunity

Every price-comparison tool on the market lives outside the moment a patient actually needs it — a separate app, a phone call, a coupon card you have to remember to bring. None of the six sit inside the actual decision: which pharmacy do I go to, right now.

How patients cope with this today

"How do you currently find out if you're paying a fair price?"

I don't, I go to the nearest one
44%
I call around myself
22%
I use a coupon app separately
19%
I ask my pharmacist
15%

220-person survey, prescription users.

600+ posts across patient forums & pharmacy subreddits, tagged by theme

Surprise/anger at a price difference
41%
"Where's this cheapest nearby?"
27%
Insurance / coverage confusion
19%
Other
13%

Survey & interviews

A 220-person survey and 17 moderated interviews (14 patients, 3 caregivers managing a family member's prescriptions) ran in parallel with the secondary research.

"Have you ever found out later that you paid more than you needed to for a prescription?"
Yes, I found out afterward
47%
Not sure / never checked
34%
No, I always compare first
19%
"When you pick up a prescription, do you assume the pharmacy you're at already has a fair price?"
Yes, I assume that
39%
I've never really thought about it
35%
No, I know it varies
26%

"I'll spend twenty minutes comparing two blenders on Amazon. Why would I not check this? I just didn't know I could."

Patient interview · P04, on 2 maintenance medications

"I don't need the cheapest pill on earth. I need to know what this is going to cost us this month, total, before it just happens."

Caregiver interview · C02, manages 5 prescriptions for a spouse

"It felt rude to question it, honestly. My doctor's system just sends it to whichever pharmacy's already on file. I didn't even know I could ask for somewhere cheaper."

Patient interview · P11, prescription auto-routed by e-prescribing
ConvergePhase 02

Define: narrowing to one insight

Discovery surfaced a lot — pricing, trust, caregiving, insurance confusion. Define was about resisting the urge to solve all of it at once.

The insight

Patients weren't distrustful of pharmacies in general — they were distrustful at the one moment they were asked to commit to one blind. The pharmacy step didn't need less friction. It needed the one piece of information that made the choice reasonable: the price, shown before the commitment, not after.

Two people this had to work for

PA

Priya Anand

34 · Marketing Manager · New hypothyroidism diagnosis
"I'll spend twenty minutes comparing two blenders. Why would I not check this?"
Context
  • Just started 2 maintenance medications for the first time
  • Self-described comparison shopper for anything over $20
  • Comfortable with apps, low patience for a dead end
Needs
  • To see the price range before picking, not after
  • Confidence that "cheapest" isn't a quality downgrade
WK

Walter Kowalski

68 · Retired · Manages care for spouse, 5 prescriptions
"I need to know what this is going to cost us this month, total."
Context
  • Manages the family's prescriptions for his wife, Dolores
  • Less confident navigating apps; prefers large, unambiguous choices
  • Cares about total monthly spend far more than any single line item
Needs
  • One combined total across every medication, not five separate lookups
  • Large tap targets, plain language, no hidden steps

How might we

01

Show the price before we ask for the commitment

So the pharmacy step stops asking patients to trust a number they've never seen.

02

Make comparing feel like part of filling a prescription

Not a separate errand on a different app that a patient has to already be suspicious enough to go find.

03

Let a caregiver compare a total, not one drug at a time

So Walter can see what five prescriptions cost together at one pharmacy, in one glance.

Design principles

Three rules, pulled straight from the HMWs above, that every decision from here on had to answer to.

PRINCIPLE 01

Price before commitment

Never ask someone to choose before showing them what it costs — the order of operations is the whole redesign.

PRINCIPLE 02

Cheap must never look risky

A lower price has to arrive with proof — same drug, same manufacturer options, licensed pharmacy — not just a number in green.

PRINCIPLE 03

One total, not five lookups

If someone's managing more than one medication, the app does the adding up — they shouldn't have to.

Success, defined before design started

METRIC 01

High task success

A patient can identify the verified lowest-price nearby pharmacy unaided.

METRIC 02

Real savings surfaced

Measured in actual dollars a tester could see they'd save, not just a completion rate.

METRIC 03

No trust regression

SUS and self-reported trust stay high — showing a lower price must not read as "cutting corners."

DivergePhase 03

Develop: three genuinely different directions

The insight was narrow. The solution space still wasn't — three structurally different ways to act on it were sketched and concept-tested with 5 testers before committing engineering time to any of them.

Cut

A. Auto-optimize

The app silently assigns whichever verified pharmacy is cheapest — no patient decision needed at all.

4 of 5 concept-test participants reacted with suspicion, not relief — "felt like it was making a decision behind my back."
Cut

B. Standalone price-check tool

A separate "Compare prices" tab, sitting alongside the pharmacy step but not inside it.

Didn't address the actual hesitation moment — testers admitted they'd have already stalled before ever finding a separate tab.
Chosen

C. In-flow comparison

Real-time price comparison shown directly inside the pharmacy step, before any pharmacy is confirmed.

Kept the information and the decision in the same place — the moment patients actually hesitated at.

Onboarding, structured around one job

Compass onboarding
Account
  • Email or phone
  • Location permission
Medications
  • Add drug & dosage
  • Add another
Insurance
  • Optional, skippable
  • Improves price accuracy
Compare & chooseCore
  • Compare pharmacies
  • Confirm choice

The new flow

Patient adds a medication
System matches nearby participating pharmacies for that exact drug & dosage
More than one medication added?
Yes
Show a combined total per pharmacy, not per drug
No
Show sorted price list, lowest to highest, with distance
Patient selects a pharmacy — sees why the price is what it is
Confirmation shows estimated savings vs. the network average

Wireframe evolution

Sketch
Grayscale mid-fi
Final hi-fi
ValueMart$21
Good
Northgate$39
Fair
Harborview$46
High

Constraints I designed around

A concept project skips real partnerships and funding rounds — it doesn't skip the constraints they'd create. These shaped decisions throughout, not just at the end.

Price data has to be licensed, not guessed

Compass can't scrape or estimate pharmacy prices — a wrong number is a liability problem before it's a UX one. That's why every price on screen carries a "verified today" timestamp, and why the design assumes a licensed pricing-data partner — the same category GoodRx and SingleCare already rely on — not a first-party negotiation built from scratch.

A medication list is sensitive, even without a diagnosis

Knowing what someone takes can reveal a lot about their health. Compass never asks for a name, date of birth, or condition to run a comparison — only a drug, a dosage, and a location — and nothing is stored server-side until a pharmacy is actually confirmed.

How it would actually make money

The same model GoodRx and SingleCare have already validated: the licensed pricing partner negotiates the discounted cash rate shown on screen as a "negotiated rate" — Compass doesn't set or mark it up. Compass earns a small referral fee from the pharmacy only when a comparison leads to a filled prescription, paid by the pharmacy, not the patient. That distinction shaped the design, not just the business plan: it's why the price breakdown always shows the negotiated rate as a pass-through, and why showing the true lowest price is never in tension with how Compass would earn money.

What got cut, and why

ConvergePhase 04

Deliver: build, test, refine, ship

The chosen direction went through three rounds of hi-fi design and usability testing before this was considered ready to hand to engineering.

The screens

9:41●●● 5G 100%
Add your medications
Step 4 of 4 — pharmacy & prescriptions
Atorvastatin 20mg30-day supply · added
Metformin 500mg30-day supply · added
+ Add another medication

01 — Patients add every current medication, not just one.

9:41●●● 5G 100%
Compare pharmacies
2 medications · total monthly cost shown
ListMap
ValueMart Pharmacy
0.6 mi away
$61
Good price
Verified today
Northgate Pharmacy
1.1 mi away
$84
Fair price
Harborview Drug
0.3 mi away
$98
High price

02 — List view, sorted lowest to highest, total across both medications.

9:41●●● 5G 100%
Compare pharmacies
Map view · tap a pin for details
ListMap
$61
$84
$98
ValueMart Pharmacy$61
0.6 mi away · nearest good price

03 — Map view — the same data, for whenever distance matters as much as price.

9:41●●● 5G 100%
Why this price?
Atorvastatin 20mg · ValueMart Pharmacy
Cash price$46
Negotiated rate−$25
You pay$21
Same medication. Same manufacturer options. Licensed, verified pharmacy.
Checked against the insurance you added — cash price still wins here by $4.

04 — The "why" behind the number — including a check against the insurance added at onboarding.

9:41●●● 5G 100%
You're all set
ValueMart Pharmacy confirmed
Estimated savings vs. network avg.
$212/yr

05 — Confirmation reframes the choice as a win, not a chore.

9:41●●● 5G 100%
Still checking this one
Ozempic 1mg · not yet verified in your area
ValueMart Pharmacy
0.6 mi away
~$899
Unverified estimate
Northgate Pharmacy
1.1 mi away
~$940
Unverified estimate
New or specialty medications sometimes aren't in the verified network yet. We'll notify you the moment real prices are confirmed.

06 — Edge case: unverified prices are clearly labeled estimates, never disguised as fact.

iOS notes

Respects Dynamic Type up to the largest accessibility size before truncating price labels; swipe-back gesture is reserved for navigation, not repurposed for sorting.

Android notes

Primary actions stay in the bottom nav rather than relying on the system back gesture, which conflicts with edge-swipe on several OEM skins; font scaling follows the system setting, not a fixed app scale.

Try it — interactive walkthrough

A simplified click-through of the same flow. Add a medication, compare, and confirm.

9:41●●● 5G 100%
Compare pharmacies
Tap an option to see the price breakdown
ValueMart Pharmacy
0.6 mi away
$21
Good price
Northgate Pharmacy
1.1 mi away
$39
Fair price
Harborview Drug
0.3 mi away
$46
High price
Why this price?
Atorvastatin 20mg · ValueMart Pharmacy
Cash price$46
Negotiated rate−$25
You pay$21
Same medication. Same manufacturer options. Licensed, verified pharmacy.
Checked against the insurance you added — cash price still wins here by $4.
You're all set
ValueMart Pharmacy confirmed
Estimated savings vs. network avg.
$212/yr

↑ Click through it

1

Compare

See every nearby verified price, sorted low to high, before choosing anything.

2

Understand

See exactly why a price is what it is — cash price, network rate, what's left to pay.

3

Confirm

Commit with a visible number, not a leap of faith — and see the savings made concrete.

Usability testing

Method

9 participants (5 remote moderated, 4 in-person, including 2 matched to the Walter persona), testing three tasks: adding two medications, identifying the verified lowest-price pharmacy, and understanding why a price was what it was before confirming.

01

"Lowest price" read as "lowest quality" to some testers

4 of 9 participants hesitated on the cheapest option, assuming it meant an inferior or possibly counterfeit medication.

Added the reassurance badge — "Same medication. Same manufacturer options. Licensed pharmacy." — to every price detail screen.
02

Price and distance competed for attention

Testers couldn't tell at a glance whether the list was sorted by price or by proximity, and wanted to choose which mattered more.

Added an explicit sort toggle between price and distance, defaulting to price.
03

Walter-persona testers wanted one total, not five

Both older-adult participants managing multiple prescriptions tried to add up individual prices in their heads rather than compare pharmacies directly.

Added a combined "total at this pharmacy" rollup whenever more than one medication is on the list.

Pharmacy-step task success

Before iteration
58%
After iteration
93%

System Usability Scale (SUS)

Before iteration
68
After iteration
82

Accessibility

STATUS NEVER RELIES ON COLOR ALONE: Good Fair High
  • Shape, not just hueEach price tier pairs a distinct icon (check-circle, dot-circle, alert-triangle) with its color, so the comparison still reads correctly for colorblind and grayscale-mode users.
  • 48px minimum tap targetsEvery price row and pharmacy card meets a 48×48px minimum, tested directly with the Walter-persona participants for one-handed use.
  • Contrast checked at every stepBody text and price figures hold AA contrast in both light and dark mode; the amber "fair" chip pairs its text with the icon rather than color alone, since amber alone sits below 3:1 on light surfaces.

Thumb reach, one-handed price scanning

Hard to reach
Comfortable
Easy reach

Primary actions — compare, confirm — stay in the easy-reach band; price details scroll into view rather than requiring a stretch.

Style guide

Color

Brand deep

#184F95

Brand

#2A78D6

Accent

#EB6834

Good price

#0CA30C

Fair price

#C77E00

High price

#D03B3B

Price-tier tokens

Good priceWithin 15% of the verified lowest nearby price
Fair price15–60% above the verified lowest nearby price
High priceMore than 60% above the verified lowest nearby price
UnverifiedEstimate only — not yet confirmed by the pricing partner

Elevation

sm
rows, chips
md
cards
lg
phones, sheets

Type scale

StyleFamily / weightSize / line
DisplayNewsreader, italic 50032–74px / 1.0
H2 / H3Newsreader, 56020–40px / 1.2
BodyInter, 40014–18px / 1.65
LabelIBM Plex Mono, 600–70010–12px / 1.3
Data / priceIBM Plex Mono, 70015–36px / 1.1
Display / Newsreader italic 32px

Same pill, different price

Data / IBM Plex Mono 15px

$21.00 · Verified today

Icons

So Far

Impact & what's next

Validated through iterative usability testing ahead of a planned engineering handoff.

$212/yr
Average estimated savings surfaced per tester during usability sessions
93%
Task success finding the verified lowest price
82
SUS score — "excellent" range
9/9
Participants could explain, unprompted, why one pharmacy cost less

What I learned

Price transparency turned out to be a trust mechanic more than a savings mechanic. Patients didn't just want the lowest number — they wanted to understand why it was lower, and without that "why," a cheap price read as suspicious rather than reassuring. Showing the reasoning mattered as much as showing the number.

What's next

Next steps include extending the same comparison into the refill flow, not just onboarding; factoring in manufacturer copay cards and patient-assistance programs alongside cash and network pricing; and testing insurance-plan-aware pricing once claims data is available to the team.