Case 03of 08
Northbank A banking app that got smaller
A credit union with forty thousand members had a 2.1-star app and a support line clogged with people trying to freeze a lost card. We rebuilt it around one balance and one action, and cut more scope than we added.
Home and activity — card controls promoted to the first screenFig. 01
The problem
The old app was a port of a web portal, and it showed: eleven tabs, six of which were read-only statements. Freezing a card — the single most urgent thing a member ever does — was five taps deep, behind a menu called Services.
We read nine months of App Store reviews and 1,400 support tickets before proposing anything. Two complaints dominated, and between them accounted for 31% of all app-related calls: I cannot find my balance, and I cannot stop my card.
- 2.1 stars across 1,900 reviews
- Card freeze five taps deep, behind an ambiguous label
- 31% of app-related support calls were about finding one of two things
- Dynamic type broke the layout above the second size step
- Median member age 54, and the app was designed as though it were 28
Before and after
Information architectureTo freeze a card, from anywhere in the app. It was five, and it was the single most common reason members called the branch.
Cutting scope, twice
The brief asked for bill splitting, savings goals and a chat assistant. We said no to all three, twice, and put the effort into the two things members were actually failing to do. That is an uncomfortable conversation to have in week two of a fourteen-week build, and we had it again in week seven.
What replaced them: one balance in one place, card controls on the home screen, and wallet provisioning inline instead of a link to a help article. Bill splitting still has not shipped, two years on, and that continues to be the right call.
- Eleven tabs reduced to three
- Card freeze and unfreeze in one tap from the home screen
- Apple Pay and Google Pay provisioning inline, not documented elsewhere
- Three requested features cut, with the reasoning written down for the board
- Statements kept, but moved out of the tab bar where they were dominating it
Freezing a card
Five taps became oneQ4 is the launch quarter and includes two weeks of one-star reviews from members confused by the icon change — a communications failure of ours, described below. Android tracked within 0.2 stars throughout.
Accessibility as a gate
A credit union’s membership skews older than a challenger bank’s — median age 54. Accessibility was treated as a release gate rather than a final audit: no build shipped to TestFlight that failed dynamic type at the largest step, or VoiceOver on the four critical paths.
That discipline cost perhaps a day a week and is the reason the rating moved. Roughly a fifth of the positive reviews after launch mention text size directly, which is not something people usually bother to praise.
- Dynamic type to the largest step on every screen, not just the main ones
- VoiceOver paths scripted and tested each release, not spot-checked
- Contrast, target size and motion preferences enforced in CI
- Tested with eleven members over 65 before launch, twice
- Two features held back a release for failing a gate
Dynamic type
The layout holds at every stepResults
Each with its methodThey talked us out of half the roadmap and the app got better for it. I have never had an agency argue for less work.
LogWeek by week
The build log
Fifteen weeks including discovery, then a standing two days a month since launch.
Paid discovery. Nine months of reviews and 1,400 support tickets read and coded. The two dominant complaints established before any design work.
Information architecture. Eleven tabs to three, on paper, tested with nine members in a branch waiting room. The scope conversation happened here.
Home and card controls built against the existing core banking API, which constrained more than the design did. Accessibility gates added to CI in week four.
Wallet provisioning, native Swift and Kotlin modules. The scope conversation happened again; the answer was the same and was written down for the board.
Accessibility round two with eleven members over 65. Nineteen issues found, fourteen fixed immediately, two features held back a release.
Phased migration, 5% then 20% then 50%, with a per-cohort rollback plan. No forced upgrade at any point.
Public launch. Two weeks of confused reviews about the icon, which we should have prevented. Communications fixed in the following release.
Partner retainer, two days a month. Currently building the savings release that was cut from the original scope, now that members have asked for it.
What shipped
Six deliverablesWhat we would do differently
We under-invested in the migration comms. The app was ready before the messaging was, and the first two weeks of reviews were dominated by people who did not know why the icon had changed — visible as the gap between Q4 and Q1 in the chart above. Launch communications are now part of the build, with copy drafted at the same time as the release notes.
Who did it
CreditsProduct design, React Native, accessibility programme, migration plan. One person, fourteen weeks, then two days a month.
Native Swift and Kotlin modules for wallet provisioning and biometrics. Six weeks, introduced to the client before starting.
Chief executive as sponsor, head of member services as decision-maker, and eleven members over 65 who tested twice and were paid for their time.
Two build slots openNext start: March