← Back to work← Previous case study03 / 03 · Growth + Loyalty
Growth + Loyalty · Promo Systems

Value without hunting.

Turning fragmented promo discovery, eligibility and expiry into one reusable value-management experience.

RoleStaff UX Designer · IC
ScopeProfile + checkout
FocusState model · reuse
FormatAnonymized case study
Context

The problem behind the screen.

Customers could receive promo codes from different channels, but there was no single place to understand what they had, whether it was eligible, or whether it had already expired or been used.

Reframe: The design problem was not “add a promo-code field.” It was “create a small value-management system customers can trust across journeys.”

System view

I mapped the journey as a system before styling the interface.

01

Discover

Codes arrive from multiple channels.

02

Understand

Eligibility and expiry must be visible.

03

Apply

Relevant value should appear at the right moment.

04

Persist

State must remain consistent after checkout.

Key decisions

The work was in the behaviour.

These were the decisions that reduced uncertainty, not just the screens that expressed them.

Decision 01

One source of truth

Profile and checkout reference the same promo state so customers never see contradictory availability.

Decision 02

Suggest, don’t make people hunt

Relevant available value appears at the decision point instead of forcing customers to remember or re-enter a code.

Decision 03

Prevent before error

Used and expired codes stay visible but unavailable, reducing repeated invalid attempts and confusion.

Decision 04

Design the lifecycle, not the screen

Empty, available, applied, used, expired and invalid states were treated as one connected system.

Experience flow

One clear path forward.

01Discover
02Save
03Check eligibility
04Apply
05Reflect savings
06Update lifecycle
Beyond happy path

Recovery is part of the product.

The experience had to remain useful when reality stopped matching the ideal flow.

Empty

No codes available. Manual entry remains possible.

Available

Eligibility and expiry are visible before action.

Applied

Savings are reflected immediately in the transaction total.

Used

Past value remains legible without appearing reusable.

Expired

The code stays visible but cannot be applied.

Invalid

Explain why it failed and what the customer can do next.

Measurement

What I would watch after launch.

01Promo apply success
02Redemption / reuse
03Invalid attempt rate
04Support demand

Performance data is intentionally excluded from the public portfolio. These metrics show how I would evaluate the experience after release.

Takeaway

A small input field became a state-management problem. The strongest design move was making promotional value understandable before the customer had to test it.