Retirement fintech · Analytics-driven redesign
Making dense retirement decisions
easy to compare.
A rolling redesign of Start Right — BOK Financial’s retirement app — where I used Glassbox analytics and Maze testing to let real usage, not opinion, settle how complex financial choices get presented across web, iOS, and Android.
Retirement self-service is high-trust and high-complexity.
Start Right lets people manage retirement accounts — 401(k), 403(b), Roth — across web and native apps: balances, rate of return, contributions, distributions, and the educational content around them.
It’s a hard surface for one reason: it’s regulated, so the content has to be accurate and the terminology identical across web and native. A small drift — “distribution” one place, “withdrawal” another — reads as sloppy, or like two different products.
Two of these surfaces weren’t failing outright, but the data told a clear story. On distribution and termination content, people skimmed dense options without settling. On Manage My Investments, they arrived, hesitated, and left mid-task. My scope was to make those two decisions easier — inside the NGX-UI design system, a native shell on iOS and Android, and retirement-plan compliance rules.
Mood 01
A calm check-in
‘What’s my balance, what’s it doing.’ Most retirement-app moments are this one — orientation over depth.
Mood 02
A high-consequence decision
‘Should I change my contribution, take a distribution, rebalance.’ Needs enough context to act with confidence, and enough friction to avoid a costly mistake. Both surfaces below are this kind.
What I owned, what was shared.
Ownership honesty
Ownership
Owned end to end
Heuristic review · Glassbox analysis · Design iterations · Maze test authoring · Visual design
Ownership
Shared
Design-system calls (with design manager + eng) · Direction sign-off (with PM) · Native adaptation (with iOS/Android eng)
Ownership
Handed off
Engineering implementation · QA · Release
Ownership
Not mine
Analytics instrumentation (Glassbox already existed)
The real conditions that shaped every decision.
Constraint
NGX-UI first
The internal design system was the default. A new pattern had to earn its place.
Constraint
Parity of understanding, not pixels
The same information had to be equally legible on web, iOS, and Android — the interaction could adapt to each platform, the comprehension couldn’t drift.
Constraint
Regulated content
Financial and educational copy had to stay accurate, compliant, and terminologically consistent everywhere.
The work — two decisions.
Not one big decision — a series of small ones, each tied to a specific signal. Two are worth showing in full: the signal, the fork, and the proof.
Distribution: the test I expected to lose
Maze · unmoderated test, 23 tested, 21 completed
The signal
Termination and distribution options are dense, comparison-heavy content — meant to be scanned side by side, not read line by line. There was no validated pattern for presenting them, and users skimmed the long-form version without landing on a choice.
The options I explored
Before committing, I laid out the full pattern space — accordion, carousel cards, exposed cards, comparison table, horizontal scroll — to weigh density against scannability.
The patterns I weighed before narrowing to two.




The fork
I narrowed to the two strongest and ran an unmoderated A/B test in Maze — 23 participants, 21 of whom completed the preference task — instead of settling it by opinion.
Why rejected
The cards looked better and read slower. One option per card meant holding the last one in memory to judge the next, which is exactly the work a comparison decision shouldn’t require.
Why chosen
The table put every option in one field of view, so comparison happened by eye instead of by memory.
Maze · unmoderated A/B
Start Right
Verdict
I expected the cards to win. The table won — clearly.

Preference was half of it. The decision time was the real story.


When asked why, participants pointed to the same two things every time: ease of comparison and clarity at a glance.

What I did with it
I kept the table and added back only the visual cues users had liked in the cards — status colour, illustration — without the density that made cards lose. Then the harder part: holding that pattern across platforms.

Manage My Investments: make every option legible before the click
Glassbox · element, journey & funnel analysis
The signal
Manage My Investments is the hub for nine investment actions. Glassbox showed it busy but not working: 266 sessions, 761 clicks, 214 recorded struggles, 27 seconds average on page. The strongest task link — Transfer, fund to fund — topped out at 8.27% (22 clicks); every other action drew less. The most-clicked element on the page wasn’t a task at all — it was the navigation toggle, at 46.99% (125 clicks). The page’s own chrome was out-clicking its purpose.
Glassbox · Manage My Investments · interaction map, past week

The reframe — the problem was in two places, not one
People weren’t abandoning the page — drop-off was low (~8%). They were landing and leaking out through many different exits without a clear path. The journey map reads as a crossroads between related tasks, marked by back-and-forth navigation and dead clicks.

But the friction didn’t stop at the entry. When I funnelled the second-most-clicked action — Change both my future contributions and current investments — exactly one person completed the whole flow during the analyzed week (March 7–14), stalling on incomplete forms and dead clicks.

So it wasn’t just “the links aren’t prominent.” It was also “even people who commit hit friction and expectations they weren’t set up for.”
The fork
I compared three ways to present the nine actions rather than jumping to a layout.
Why rejected
Iteration 1 read cleanly but pushed most of the nine actions below the fold. Iteration 2 fixed prominence and broke scanning — three columns of repeated chrome made every card look like every other card.
Why chosen
Iteration 3. More options in the first viewport, each distinct by illustration and colour, one clear action — and, the part that fixes the in-flow friction, availability and pending states surfaced on the card itself.


Verdict
Keep every option on one page, but make each one scannable, self-explanatory, and honest about whether it’s available — so the decision, and any dead end, happens before the click, not three form-steps in.

Because a request can be blocked by a pending action or a plan restriction, each card carries its own state instead of failing after the user commits.


The same card system collapses cleanly to one column on native.

What can be honestly claimed.
What I can honestly claim: on the distribution content, testing showed a clear, reasoned preference — the table let people decide about ten times faster (53.3s → 5.6s), and participants could say why, which makes it a defensible decision rather than a taste call. On Manage, the redesign was driven directly by the funnel evidence: each option is now more distinct, better explained, and upfront about its state.
What I’m not claiming: no conversion lift, adoption percentage, or business metric — that data is proprietary to BOK. These are my usability-test and analytics findings, not company KPIs. Where post-launch numbers exist, I can walk through them privately in an interview.
This is a forward-looking measurement plan, not measured outcomes.
Read this as ‘what I’d measure next,’ never ‘what improved.’
Time-to-decision on distribution options
Faster average time; higher self-reported confidence
Comprehension check on the distribution content
60%+ correct as a directional benchmark
Funnel completion on the top two Manage actions
Against today’s near-zero baseline — one completion in the analyzed week
The evidence
The numbers that hold the most weight.
My own usability-test and analytics findings — not BOK business metrics.
57 / 43
Table vs. cards preference (n = 21)
53.3s → 5.6s
Decision time, cards to table
8.27%
Baseline CTR on the old Manage page (22 of 266 sessions)
Business-impact numbers (conversion, adoption) are a forward-looking measurement plan, not a result.
What I’d do differently, what I’d fix next.
Run a small moderated round (n ≈ 6–8) alongside every unmoderated Maze test. Clicks show preference; conversation shows understanding — and in a retirement app, understanding is what you’re actually selling. I’d also agree a measurement plan with the PM at kickoff for each surface, so outcomes get tracked automatically instead of reconstructed afterward.
A design system is a constraint that pays back with interest — as long as you know when to break it. The point of every heuristic review, Glassbox session, and Maze test here wasn’t to produce artifacts. It was to build one chain — signal → interpretation → decision → observable behavior — that a design manager, an engineer, or a compliance reviewer could follow and either agree with or push back on.
The parts I’m proudest of
“The decisions I’m proudest of are the ones where that chain held under real pressure.”
Tightened before handoff, not after
Observation
The comparison table needs a non-colour cue for the recommended option, not highlight alone.
Observation
The distribution content needs a logical reading order and screen-reader-navigable headings.
Observation
Any long-press or hover reveal on native needs a discoverable alternative for motor-impaired and screen-reader users.