OPORTUN • 2025

Optimizing a loan servicing platform for adoption

TIMELINE

2 months

ROLE

Product Designer

TEAM

Design Manager

Product Managers

Developers

OVERVIEW

Oportun is a fintech company focused on serving individuals with limited or no credit history.

They offer personal loans, credit cards, and a savings app, serving a current user base of 2.2 million across 41 states in U.S.

NASDAQ:OPRT

PROBLEM

Operational costs are rising due to heavy reliance on support calls.

Even though Oportun has a web and mobile app to self-serve, most of its ~800k active loan members still rely heavily on customer support calls accounting to about ~116k calls monthly.

…and this reliance contributes to increasing delinquency.

Members reach out to support during moments of uncertainty around payments, balances, or offer eligibility. When the product doesn’t clearly answer these questions, confusion leads to delayed decisions, missed payments, and increased delinquency risk. Shifting the behavior toward self-service requires building trust through transparency, clarity, and ease of use.

OUTCOME

Impact 1 month post launch!

395%

Feature discoverability

64%

App logins

29%

Customer calls

26.19%

Payment conversion

SOLUTION

Here are some of the core flows

The project began with an ambiguous scope that later expanded significantly. But we delivered a user-focused design that surfaced essential information contextually and in an easy-to-digest way.

Contextual payment widget

Members can access current loan information with a single click from the home page, with relevant details displayed based on the user's loan lifecycle stage.

Leading with transparency

Members can access current loan information with a single click from the home page, with relevant details displayed based on the user's loan lifecycle stage.

Easy access to payment receipts

Members can access current loan information with a single click from the home page, with relevant details displayed based on the user's loan lifecycle stage.

INITIAL OBSERVATIONS

The data shows that members primarily call about payments and loan information.

The PM shared data from the internal tool and shared why members call so and what % call for what reason.

But why Online Servicing? Why not other touch points?

Members reach out to support during moments of uncertainty around payments, balances, or offer eligibility. Additionally, we also tried to scope it down further to mobile web to start with due to the following reasons below:

Users preferred to go mobile first on Online Servicing web

Members reach out to support during moments of uncertainty around payments, balances, or offer eligibility. Additionally, we also tried to scope it down further to mobile web to start with due to the following reasons below:

Active users

Most of the app logins were recorded to be from mobile web.

Outdated designs

Web designs were not up to date with the latest design system.

Transition codebase

Switching from Python to JS, for sharing repo and consistency.

GOALS

Help users find important information

User goal

Reduce overhead costs and build trust

Business goal

Help users pay their bill on time

User goal

Reduce delinquency

Business goal

Make taking loans a smooth experience

User goal

Retain good users and repeat customers

Business goal

DESIGN PROCESS

Working my way down, thinking from a high level structure…

The PM shared data from the internal tool and shared why members call so and what % call for what reason.

Finding areas of improvement in the current experience and tried to be 'transparency forward' during the iterations.

Members reach out to support during moments of uncertainty around payments, balances, or offer eligibility. When the product doesn’t clearly answer these questions, confusion leads to delayed.

BEFORE

Multiple clicks to get to the payment screen and even then, the payable amount is inconsistent.

AFTER

Single click to get to the payment screen and the payable amount is clear and consistent across.

BEFORE

Important loan information are static and buried deep in the experience with no clear understanding of complex jargons and numbers.

AFTER

Loan information are upfront with understanding of complex jargons with easy breakdown of numbers with real-time updates.

BEFORE

Receipts that users downloaded before were static PDFs that was filled with jargons.

AFTER

Current receipts are easy to understand and broken down into contextual sections.

Mapping out all users states

I mapped out the user journey from start to finish, considering all possible user states that could impact loan and payment details. I focused on identifying relevant information to display at a glance and how it would vary across different user states. For example, a member who has missed a payment would likely want to see if any late fees have been applied and how they are calculated.

I did the same for the loan details section too, except the mapping there was different.

Finally, I joined all the pieces together to arrive at the key screens

I mapped out the user journey from start to finish, considering all possible user states that could impact loan and payment details. I focused on identifying relevant information to display at a glance and how it would vary across different user states. For example, a member who has missed a payment would likely want to see if any late fees have been applied and how they are calculated.

Rounds of reviews with stakeholders

Members reach out to support during moments of uncertainty around payments, balances, or offer eligibility. When the product doesn’t clearly answer these questions, confusion leads to delayed.

DESIGNing WITH CONSTRAINTS

Incorporating stakeholder feedback and making design iterations

The PM shared data from the internal tool and shared why members call so and what % call for what reason.

Despite a mobile web layout, a bottom navigation was added to meet guardrails.

But due to the bottom navigation, the information architecture got simplified.

Removing the quick actions as the bottom navigation made it feel redundant.

Several fields has to be removed due to the absence of events and API data limitations.

Members reach out to support during moments of uncertainty around payments, balances, or offer eligibility. When the product doesn’t clearly answer these questions, confusion leads to delayed.

QA & TESTING

I tested multiple simulated user accounts in staging and evaluated design specifications across various mobile screen sizes to be sure.

The PM shared data from the internal tool and shared why members call so and what % call for what reason.

We launched the new version to 15% of the user base to test the waters…

There were a few issues that needed to be fixed before the big release.

The PM shared data from the internal tool and shared why members call so and what % call for what reason.

Renewal sign-ups are low

Renewal is a card on the top of the fold.

Hardship CTRs dropped

Making sure the hardship cards remain visible in the first fold.

FINAL DESIGN

What we finally shipped to 2.2 million users!

REFLECTION

My key takeaways and learnings!

Outdated designs

App was outdated and not updated with latest design system.

Active users

Most of the app logins were recorded to be from the web app.

How would I do differently now with AI?

Connect Figma MCP and test mockups

App was outdated and not updated with latest design system.

??

Most of the app logins were recorded to be from the web app.

Madhurima
AI voice chat