GoodRx | Senior Product Designer

Recycled Mobile Number Verification

Designing a framework for authentication when a phone number can no longer be trusted.

The challenge

Phone numbers are useful authentication credentials, but they aren't permanent.

When an existing number is reassigned to a new person, an SMS code intended for an existing GoodRx user could potentially give the new owner access to that account.

The challenge was to introduce additional verification when a number was flagged as potentially recycled, without unnecessarily disrupting users who could still authenticate another way.

My approach

Design the system logic before the screens.

Defining how GoodRx should respond to each account state.

I mapped the experience from the moment GoodRx identified a potentially recycled number through every path needed to resolve it safely.

Rather than designing only the ideal path, I created detailed flows with checkpoints to define what the system knew at each stage, what needed to be verified next, and where a user could safely continue.

This became especially important for accounts with multiple authentication methods. A user logging in with SMS presented a different trust problem than someone who had already authenticated with email but whose phone number was flagged as recycled.


Treat trust as a decision, not a binary.

A recycled number didn't automatically mean the user should be blocked. It meant the phone number could no longer be treated as sufficient proof of account ownership.

I designed the flow to evaluate what other information was available and use it to determine the safest next step. Depending on the account and login method, that could mean verifying a birthdate, confirming an email address, continuing through an already-trusted authentication method, or creating a new account.

The goal was to add friction where it protected the account, without making every user prove something the system already knew.


Account context changes the experience.

One of the more nuanced scenarios involved an account with both an email address and phone number attached.

If the phone number was flagged as recycled but the user authenticated through email, the system already had a stronger signal of account ownership. I mapped the logic and designed the corresponding experience so the recycled number could be handled without treating the user as though they had failed authentication altogether.

This meant accounting for how the user entered the experience, not just the state of the phone number.


Design for the states that don't fit the happy path.

Authentication systems have many ways to go sideways. I designed the necessary states for unsuccessful verification, unavailable account information, and paths where the user could no longer be safely associated with the existing account.

These weren't separate redesigns for hypothetical users. They were part of defining a complete system that could respond appropriately when verification didn't go as expected.

Outcome

Recycled phone numbers turn an authentication pattern into a trust issue.

I designed a framework that allowed GoodRx to distinguish among phone numbers that could be trusted, those that required additional verification, and those that could no longer be safely used to establish account ownership.


The work gave the team defined logic and corresponding screens for the major authentication paths, including accounts with multiple login methods, across iOS, Android, mobile web, and desktop web.


It also reinforced something I've found in complex product work: the interface is often the straightforward part. The more challenging work is deciding what the system should know, when it should know it, and what that knowledge means for the person on the other side of the screen.