Hello,
I'm .

Work

Case study — Shipped product

Card Spend
Management
AI Agent

Reap — B2B Fintech
Lead Product Designer
Agentic AI · Corporate Cards
Internal Alpha → v2 Build
01 — Context

A B2B fintech bet on AI — before we knew what that meant

Reap is a corporate card and expense management platform serving finance managers and business owners across Asia. Our users don't manage one card — they manage dozens, across teams, with different limits, roles, and policies.

In 2025, the company made an early bet: build an AI agent that replaces the dashboard UI for card operations. The thesis was right. The execution was not — and my job was to help fix that.

StrategyResearch Interaction designSystems thinking
47sAverage response time in Alpha — unusable by any standard
0Internal testers who could complete a basic card creation flow
400kTokens sent per interaction — a symptom of over-engineering
02 — Problem definition

Four failure modes. No design foundation.

The alpha shipped with engineering ambition but no UX foundation to match it. I diagnosed four distinct failure modes — not from the backend out, but from the user's perspective in: what broke trust, what made good design structurally impossible, and what had to change before any interface work could begin.

01Critical

The trust problem

The agent showed "Completed ✅" then immediately displayed an error. Progress indicators were decoupled from reality. No correction mid-flow. Responses appeared all at once after a 47-second wait.

This is not a latency problem. It's an honesty problem. An AI that lies about its own state cannot be trusted with financial actions.

02Critical

The scope problem

No one had clearly defined what the agent should and shouldn't do. The same agent handling card operations also responded to mental health queries with helpline numbers. Without clear boundaries, there was no safe design surface to work with — and no way to design confidently for any of it. Before interface work could begin, product clarity had to come first.

03

The interaction model problem

The agent lived in a generic chat drawer. No quick actions. No structured confirmation. No visual card preview. The UX was a blank text box bolted onto a broken backend.

04

The architecture problem

Streaming responses, honest progress indicators, instant acknowledgment — core UX requirements — were structurally impossible. A guardrails pipeline ran 3 sequential LLM calls before the agent could start, adding 2.5 seconds of overhead before any response began. Design intent kept colliding with infrastructure constraints.

03 — Research & discovery

What I needed to learn before designing

I ran discovery across three parallel tracks: user pain points, technical constraints, and building an AI design framework for the team.

Track 01
User pain mapping
Interviewed internal users matching our target profile, working with the product team to identify the highest-friction card management tasks and where errors compound.
Track 02
Technical constraints
Worked directly with engineering on the guardrails architecture. Understood why latency was structural, not incidental.
Track 03
AI capability framework
Mapped which tasks call for Automation vs Acceleration vs Augmentation — and which interaction model fits each.
Track 04
Competitive reference
Audited Notion AI, Devin, Intercom, Google Gemini, and Apple Intelligence for agentic UI patterns.
"The ops team couldn't finish basic card creation. Testing was abandoned. The previous agent's 47-second response time is not a baseline — it's a failure mode."
— Known problems
Key research findings
"I'm lazy to follow all the steps and fill up the form to create a card."
Card creation is the highest-friction task. Finance managers must navigate multi-step forms, fill in the same fields repeatedly, and cross-reference team info. Bulk creation was also unsupported. This became the primary use case for agentic intervention.
"I need to find the card I want to freeze — I need to manually filter them out."
Contextual retrieval is broken. Finding a specific card requires multiple filter interactions. An agent understanding natural language ("freeze all unused marketing cards") collapses a multi-step workflow into a single confirmation.
"I spend a lot of time checking spends for overspending, duplicated charges, missing receipts."
Spend monitoring is cognitively expensive but high-value. Admins run manual audits across dozens of cards. AI augmentation — flagging anomalies, surfacing patterns — removes cognitive load without removing human judgment.
04 — AI design framework

Deciding what AI should and shouldn't do

Before designing any interface, I established a capability framework with the product team. The question was never "what can AI do?" It was "what should AI do, and how does it know the difference?"

Design principle: AI chat is not always the answer. The right interface depends on whether the user knows what they want, needs to be told something, or needs guided action. This became the decision filter for every UX choice in v2.

Automation

Do a task end-to-end for the user.

"Create monthly allowance cards for all new joiners in December, both physical and virtual."

Agent handles the full flow. User reviews and confirms.

Acceleration

Help users complete tasks faster by filling gaps intelligently.

"Auto-fill card creation forms based on previous data, category, and company policy."

Agent reduces keystrokes and decision fatigue.

Augmentation

Help users do their job better by surfacing what they'd miss.

"Flag overspending, suspicious transactions, duplicated charges, dormant cards."

Agent acts as a second pair of eyes.

Interaction model selection

Rule of thumb I defined for the team

  • If the user knows what they want → inline / structured UI
  • If they don't know what they want → conversational
  • If they need to be told something → insight surface
  • If they need guided action → copilot / workflow assistant

For card operations, users know what they want. We chose a conversational copilot with structured confirmation moments — not a pure chat interface.

Why we ruled out alternatives

  • Pure chat: Context drift, hard to verify, no confirmation structure
  • Hidden workflow automation: Dangerous for financial actions — surprise is a bug
  • Insight-only surface: Doesn't address the core task completion need
05 — Design decisions

Every UX choice had a reason

The v2 design was built on one principle: the agent earns trust through honesty, speed, and knowing its limits.

Conversational, not form-based
The agent collects information through natural conversation, not just sequential forms. If a user says "create a card for John with a $5,000 limit," the agent recognizes it already has enough and skips unnecessary questions.

Progressive disclosure
Honest progress — step by step
Streaming responses and honest step-by-step progress were non-negotiable. The alpha showed "Completed ✅" before an error — we made this structurally impossible. "Looking up team members..." → "Found 2 matches" → "Card created ✅"

Honest feedback loops
Category inference with graceful fallback
With 20–30+ expense categories, a raw dropdown is a UI failure. The agent infers category from natural language, confirms, and if wrong shows 5–6 alternatives as pill buttons.

Smart defaults with escape hatches
Destructive actions have a physical gate
Terminating a card requires password re-entry — not just a confirmation click. You can't guardrail a system where the same component both decides and executes financial actions. The password gate physically separates AI intent from human execution.

Human-in-the-loop for irreversible actions
Role-aware scope — never silent failure
When a user acts outside their permissions, the agent explains why — and shows what it can do. "I can show you your own cards. You don't have access to company-wide information." Trust maintained even at the boundary of capability.

Transparent capability boundaries
Mid-flow correction without restarting
When a user says "actually, make the limit $3,000 instead," the agent re-renders the confirmation card with the change highlighted — old value in strikethrough, new value prominent. Natural corrections are first-class interactions.

Forgiving by default
06 — States designed

Designing for every moment in the conversation

Through close collaboration with an engineer, I defined 8 distinct agent states covering the full lifecycle of a card operation conversation, a concept entirely absent in the alpha.

StateWhen it occursUX behaviorDesign intent
Idle / EmptyAgent ready, no conversationQuick action chips: Create card, Freeze card, View cards, Summarise spending — role-scoped.Lower activation energy. No blank cursor.
Waiting for inputAgent asked a questionInput field active. Previous question stays visible. No timeout pressure.Conversation feels like dialogue, not interrogation.
ProcessingAgent executing an actionStep-by-step progress. Streaming text. Each step is honest about system state.Transparency over speed illusion.
DisambiguationMultiple matches foundAgent presents options with distinguishing details: name, email, role, card last 4 digits.Avoids wrong-person errors in financial contexts.
Confirmation requiredHigh-impact or destructive actionFull card preview. Explicit confirm required. Card termination: additional password re-entry.Human authority over AI execution.
Action completeAction succeededClear success message with result details. Never followed by an error.Closure without ambiguity.
ErrorAction failedPlain-language explanation. Actionable next step.Honesty over appearance of competence.
Out of scopeUser asked something the agent can't doAgent names its scope, says what it can't do, offers within-scope alternatives.Bounded capability is a feature, not a bug.
07 — Working with engineering

Design decisions informed by architecture

I worked closely with the AI engineer rebuilding the agent from scratch. Understanding the technical constraints wasn't optional, it was the only way to design responsibly.

What I learned from the engineering docs

The alpha's NeMo Guardrails added 1.5–3.5 seconds of overhead before the agent even started — three sequential LLM calls.

Understanding this taught me that UX requirements like streaming and instant acknowledgment were architectural asks, not just design preferences. I had to advocate for them with engineering context, not just user empathy.

Where I pushed back on product

The initial PRD said "conversation context should not be preserved" on error. I challenged this — if a user is mid-flow and hits a technical failure, losing context forces a full restart. We revised to: preserve context, surface the specific failure, let the user retry.

I also raised the audit trail question for destructive actions, making the case that the UX needed to surface this — not just log it in the backend.

Design principle: In agentic systems, UX requirements and architecture are inseparable. You cannot design honest progress indicators if the backend doesn't stream. You cannot design safe confirmation flows if the agent has direct write access. I treated the engineering architecture as a design constraint — and as a lever.

08 — Design iterations

Finding the right interaction model

Before committing to a direction, we explored how Reap AI should surface within the product. The question wasn't just what AI could do — it was where and how it should appear. We evaluated 4 desktop interaction models and 2 mobile entry points against three criteria: discoverability, content visibility, and suitability across task complexity.

Baseline — transactions page, AI trigger in nav

Transactions page baseline — Reap AI button visible in navigation, no AI surface open

Desktop — 4 interaction models

Model #1a Preferred direction

Drawer: content covering

The AI drawer slides in from the right and overlays the main content. Users keep access to AI capabilities but lose partial visibility of the page behind.

Pros

  • Dedicated space for the AI — more room for output and interaction
  • Can surface contextual help relevant to the current page

Cons

  • Entry point can be hard to find before the drawer opens
  • Content behind is obscured — can feel cluttered for data-heavy pages
Model 1a — AI drawer open, overlaying the transactions page content
Model #1b

Floating island

A compact floating card anchored near the content. Designed for quick, discrete actions — expandable to a drawer or full screen when the task demands more space.

Pros

  • Full page stays intact — no shrinking or covering
  • Ideal for quick discrete actions: freeze a card, check a balance, pull card details

Cons

  • Not suited for complex multi-step guided flows (bulk card setup, analytics review)
  • Requires dynamic sizing or escalation to drawer/full screen for heavier tasks
Model 1b — floating island AI panel anchored to the right of the transactions page
Model #2

Drawer: content pushed

The main content area compresses to make room for the AI drawer. The page stays visible but narrower — a cleaner compromise than full overlay.

Pros

  • Page content stays in view — nothing is hidden
  • Cleaner and less disruptive than the covering variant

Cons

  • Content area becomes too narrow for tasks that need more space (bulk card creation, analytics, table data)
  • Not suited for tasks that require referencing the full content area while taking action
Model 2 — AI drawer open, main content compressed to the left
Model #3

Chat-first (dedicated page)

Reap AI lives as a top-level navigation item. Users navigate to a dedicated AI chat interface — the entire page becomes the AI surface.

Pros

  • Plenty of space for both input and AI output
  • Good for exploratory use — when users don't know what to do and want to discover capabilities

Cons

  • Users have left the page they were working on — hard to provide context
  • Can't reference underlying content (transactions, card list) while chatting
  • Better suited for a future state where AI capabilities are more standalone and comprehensive
Model 3 — Reap AI as a dedicated page, full-page chat interface with quick-action chips
Model #4 Preferred direction for the future

Embedded guidance / Contextual copilot

AI is woven directly into the interface. Rather than a separate AI surface, the system surfaces proactive nudges, inline suggestions, pre-filled settings, and insights contextually — as users work, at the moment they're most relevant.

Pros

  • Most natural and findable — AI surfaces where users already are
  • No mode-switching or extra navigation; potentially the most efficient model
  • Strong alignment with how power users actually work
  • Best for users who want control but benefit from a little help

Cons

  • Can feel intrusive if triggered too aggressively or designed poorly
  • Requires deep understanding of user context and use cases to get right
  • Higher design and engineering complexity

Examples explored: Card expiry warning banner with auto-renewal suggestion · Spend Overview "Insights" panel surfacing unusual patterns and savings opportunities · Card settings form with AI-pre-filled spend limits based on usage patterns.

Cards page — AI surfaces a proactive expiry warning banner with auto-renewal suggestion Cards page — New card dropdown surfaces 'Create card(s) with Reap AI' as the primary option Card settings form — AI pre-fills spend limits based on existing card and company settings Spend Overview — AI-powered Insights panel surfaces unusual spending patterns, monthly summary, and saving opportunities
09 — Impact & outcomes

From abandoned alpha to production-ready v2

The v2 design transformed an abandoned prototype into a production-ready agent that the team is confident shipping to clients.

7Agent operations designed & specced

Core operation coverage

V2 scope was prioritized around card management first, the core operations users simply cannot do without. Create virtual card, freeze, unfreeze, terminate, update spend limit, view cards, summarise spending, each with full state coverage and edge cases.

8Distinct UI states designed

No state left undefined

Idle, processing, disambiguation, confirmation, success, error, out-of-scope, session timeout. Every moment is designed — not defaulted.

11User stories written with edge cases

Design as product spec

Including: multiple cardholders with same name, wrong category inference, mid-flow cardholder switch, permission boundary handling — all scenarios that break generic AI chat.

0→1Alpha to designed v2

Framework for AI design at Reap

The AI capability framework and interaction model principles I established became the team's reference for evaluating all future AI features — not just this agent.

Design

Role-aware default state

The idle state isn't a blank cursor. It's the agent's first impression and a trust signal.

I designed two distinct default states based on user role. Group owners, admins, and owners see the full action set: create, freeze, unfreeze, terminate, summarise spending. Individual team members see a scoped-down view, only what they're permitted to do. Quick-action chips map directly to the agent's actual capabilities, so users know what to ask before they type anything.

Three transparency signals were deliberately built into the idle state:

  • "Beta" sets honest expectations about maturity
  • "Reap AI is currently available for Reap Card support" communicates scope before the user hits an out-of-scope wall
  • "Reap AI can make mistakes" maintains honesty without undermining confidence
  • "Tell me what you can do" is a low-friction entry point for users who aren't sure where to start
Default state for admins and group owners — full action set including create, freeze, unfreeze, terminate Default state for team members — scoped-down view with permitted actions only

Defined loading states

Loading states aren't a technical detail. In an AI agent, they're a trust mechanism.

Text output

I worked with engineering to confirm that response times would be short enough that a simple "Working on it…" message with a shimmer effect would be sufficient. Streaming wasn't necessary and would have added implementation overhead for minimal UX gain.

Widget-based workflows

For card creation and spend summaries, we made a different call. These operations are multi-step and take longer. The agent streams its activity in real time: the "Agent activity" label appears first with a shimmer, then expands step by step, with each item showing its own loading state. Users can see exactly where the agent is — not just that something is happening, but what.

Design principle: This distinction between text and widget loading wasn't a UI decision. It was a product decision made with engineering, grounded in latency data and user trust.

Overflow and scroll behaviour

Most chat interfaces scroll blindly. I designed the overflow behaviour around where the eye actually lands.

Space to breathe

The chat window always leaves some breathing room below each message. This creates a consistent visual anchor point, so your eyes naturally rest in the upper-middle zone while reading each response — reducing the sense of content rushing to the bottom of the screen.

For longer responses

Responses that exceed the chat window height anchor to the top so users can start reading from the beginning immediately. An overflow button sits fixed at the bottom, giving users a deliberate, one-tap way to jump to the end when they're ready. Reading first, scrolling by choice.

Reusable agent output patterns

I can't predict every user input. So instead of designing for individual messages, I designed a system of generic, reusable output patterns that engineering can apply consistently across any response type.

Defining these patterns meant that no matter what a user types, the agent's output stays consistent, scannable, and on-brand. It also gave engineering a clear contract with fewer edge cases and fewer one-off implementations.

T

Simple text

Plain conversational responses with no UI chrome

Simple text output — spending summary displayed as plain conversational text

Single selection list

When the agent needs to confirm one specific choice, such as which cardholder

Single selection list — agent surfaces 3 matching cardholders for the user to choose from

List

Multiple results or options presented with structure

List output — agent returns 10 cards under the design team in a structured table with load more and CSV export

Widget

Structured card previews for confirmation, creation, and summary flows

Widget — password confirmation step Widget — review summary with card details Widget — review and edit with editable fields

Fallback scenarios with copy and UI pattern guidance

An agent that only works on the happy path isn't production-ready.

I defined four fallback scenarios, each with a design purpose, copy anatomy, and UI pattern:

a — Generic error

Execution failure

When something goes wrong technically — API failure, network error, or server issue. Copy acknowledges the attempted action, confirms nothing was changed, and offers a clear next step: Retry or Contact Support. Users should never wonder if their financial data was affected.

Generic error state — card creation failed, showing Retry and Contact Support options
b — Intent ambiguity

Confidence below threshold

When the agent's confidence drops below 51%, it doesn't guess. It presents 2–4 closest-matching options as buttons, not text links, so users can select intent without retyping. This narrows the conversation without stopping it.

Intent ambiguity state — agent presents closest-matching options as buttons for the user to select
c — Unsupported capability

Understood but out of scope

When a request is understood but outside scope. The agent doesn't apologize or explain technical limitations. It states the boundary neutrally, then immediately pivots to what it can do. Every out-of-scope response ends with an alternative, never a dead end.

Unsupported capability state — agent states boundary and offers alternatives within scope
d — Permission and role limitation

Restricted action

When a user without sufficient permissions attempts a restricted action. The agent names the limitation clearly and offers escalation paths — asking an admin or viewing their own cards — without blame or friction.

Permission restriction state — agent explains the limitation and offers escalation paths
10 — Reflection

What I'd tell a designer starting an agentic product

Lesson 01

Start with trust, not features

An AI agent that lies about its own state is more damaging than one that's simply slow.

Lesson 02

Scope is a design deliverable

In agentic products, what the system won't do is as important as what it will. Designing the out-of-scope state required drawing the line — and getting cross-functional alignment on it.

Lesson 03

Architecture and UX are the same problem

I couldn't have designed honest progress indicators without understanding why the alpha's streaming was blocked. The most impactful decisions also changed engineering priorities.

Constraints I worked within

UI styling was de-prioritised for this feature — with limited resources, the priority was enabling the capability first. To keep the experience consistent with the rest of the product, I relied on the foundational layer of the existing design system and pulled in reusable components from the web design system wherever possible.

Get in touch →
Case Study — Shipped Product

Loan Financing
Workflow
Redesign

Institutional Banking
Lead Product Designer
Enterprise Fintech · SME Lending
Discovery → Delivery
01 — Context

SME lending at a bank — slow by design, broken by default

As the institutional banking group accelerated its focus on SME financing, operational inefficiencies became increasingly visible. The existing workflow relied heavily on manual coordination and fragmented systems, slowing down both customer assessment and loan processing.

Relationship managers had to navigate 16+ disconnected systems, manually validate financial exposure across entities, and spend hours preparing applications — often with uncertain outcomes. Processing a single loan application took up to 3 months.

Discovery & ResearchSystems Design Interaction DesignStakeholder Alignment

My role: I led the end-to-end redesign of the pre-approval workflow — from discovery to delivery. I defined product direction, aligned stakeholders across business, product, and engineering, and translated complex credit and compliance requirements into structured UX flows.

500+Employees at the bank's Singapore office
1,200+SME loan leads processed per month
4–12 wkTime to process a single case — the problem this project set out to fix
02 — Problem Definition

It wasn't a usability issue — it was a system failure in decision-making infrastructure

I conducted interviews with users and stakeholders to map the as-is SME financing flow. Four distinct friction categories emerged, each compounding the others.

01Critical

Fragmented data → slow decisions

Critical information was scattered across systems, forcing users to manually aggregate and validate data before they could even begin an assessment. There was no single source of truth.

02Critical

No early signal → wasted effort

RMs spent 1–3 hours preparing applications — visiting 16 different systems and documents — without knowing if a case would convert to an offer. Effort was front-loaded with no viability signal.

03

Manual calculations → high error rate

Loan eligibility and exposure calculations happened outside the system. Determining group limit required checking each borrower's facility structure manually, validating against predefined criteria, and calculating thresholds in spreadsheets. This drove the 40% rejection rate and an 80% rework rate.

01

Compile a list of all borrowers within the group

02

Download facility and limit reports for each borrower

03

Manually calculate all existing facility limits of the group

04

Put together new facilities for the borrower company

05

Fill in the existing template to check if proposed limits exceed group or borrower thresholds. (Pass or Fail)

↩ If it fails, adjust the amount in Step 3 and recalculate in Step 4 until it passes.
04

Workflow outside the system

Key collaboration between RMs, credit managers, and approvers happened over email and chat — reducing visibility, accountability, and auditability across the pipeline.

Case preparation and submission — user workflow across 11 systems
03 — Research & Discovery

Understanding the as-is before designing the to-be

I ran a discovery process with users and stakeholders to surface friction points and pain points in the existing SME financing flow — spanning relationship managers, credit reviewers, and compliance leads.

Method 01
Stakeholder Interviews
Conducted interviews across business, product, compliance, and engineering to map decision-making logic and identify where breakdowns occurred.
Method 02
Workflow Observation
Shadowed RMs preparing real applications. Documented the 16-system journey first-hand — including which systems they opened, in what order, and where they got stuck.
Method 03
Pain Point Synthesis
Synthesized raw findings into a service blueprint that mapped user actions, system touchpoints, and failure modes — giving the team a shared view of the problem space.
Method 04
Credit Logic Mapping
Worked with credit and compliance to understand DOA group limits, eligibility criteria, and exposure calculation rules — translating complex financial logic into designable flows.
RM UI and CRM UI pain points — raw research footage
Key Research Findings
01

The biggest cost wasn't time — it was uncertainty

RMs couldn't tell early enough whether a case was worth pursuing. All the preparation effort happened before any eligibility signal. This meant high-effort cases that ended in rejection at the credit stage — burning hours that could have been avoided.

02

Calculations were the highest-risk step

Group-level exposure calculations required checking each related entity's existing facilities across multiple reports. Done manually and outside the system, errors were common — and caught late. A 40% rejection rate was the downstream symptom of this upstream failure.

03

The system couldn't answer the most important question

"Is this customer eligible?" required 16 system checks and 1–3 hours of manual work. There was no mechanism to get an early, reliable answer. The system was designed to process, not to decide.

04 — Solution 1

From fragmented exploration to structured decision flow

I redesigned the 16-step eligibility assessment into a 4-step decision framework, reducing cognitive load and eliminating unnecessary system-hopping.

Instead of navigating multiple systems, users now input only key decision variables, receive automatically aggregated financial data, and view eligibility signals in a single structured flow.

Design principle: The goal wasn't to digitise the existing process — it was to redesign the process itself. Every step was only included if it was essential to making a financing decision.

Before: 16 steps, 16 hassles

RMs opened 16 different systems and documents in sequence. Each system required separate context-switching, and manual note-taking to carry information forward.

Prepare a list of all the related parties of my customer (borrower)
Download facility and limits related reports of all the related parties
Tabulate all existing facilities of all the borrowers in the group
Check the bank's manual to compare the limit thresholds for each borrower and for the group
Fill up a template with the limit threshold information to see if it exceeds or not for their group and borrowers

After: 4-step decision framework

One structured flow. Key decision variables entered once. System aggregates financial data automatically and surfaces eligibility signals in context — no switching required.

4parties subject to review
  • Borrowers in the group
  • Key promoters of the borrowers
  • Related companies in the group
  • Related individuals in the group
7review categories
  • Account conduct: Key parties' account behavior, repayment history, missed payments, or irregularities.
  • Adverse status & litigation: Negative records or legal proceedings from public databases or legal systems.
  • Internal adverse status: Negative history or risk flags recorded within the bank, including defaults or compliance issues.
  • Bank statement analyzer: Cash flow patterns, income stability, and financial health.
  • Blacklist: Verifying neither borrower nor related parties are on the internal credit blacklist.
  • Credit bureau screening: Borrower credit history and score through the national credit bureau.
  • Eligibility: Ensuring the borrower meets minimum policy criteria.

Impact

Reduced dependency on 16+ systems. Enabled faster qualification of high-potential leads. Shifted the workflow from data gatheringdecision making.

New flow: Search borrower, identify guarantors, identify main operating bank, view pre-validation results
05 — Solution 2

Automating financial intelligence

One of the biggest bottlenecks was calculating group-level exposure across related entities (DOA group). This required checking each borrower's existing facility structure, aggregating exposure data across guarantors and related parties, and manually computing against policy thresholds.

Automatic aggregation of borrower facilities and collateral
Users now only identify key parties — borrowers, guarantors, related parties, and key promoters. The system automatically pulls their existing facilities, collaterals, and all required information for eligibility and risk assessment. What took hours now happens instantly.
System-generated DOA grouping logic
The system automatically constructs the DOA group — pulling related entities, facilities, collaterals, and all applicable credit-related identifiers. Users no longer need to traverse 16 reports to build this picture manually.
Real-time validation of exposure limits
Users can check facility limits at a group level and validate all applicable related entities in real time — without going through 16 reports and systems. The loan section now includes automated calculations and data breakdowns, enabling users to propose facility structures that align with bank policies.
Group Limits and Facilities — real-time validation of TFL, TCL, CCL exposure across mainstream and other programmes
Design Iterations

What didn't work

  • Iterations #1 & #2:Structure was insufficient for clearly presenting maximum limit and remaining balance — the two most critical data points for users.
  • Iteration #3:Hovering over charts to view data was inconvenient. Key figures should never require interaction to surface.

What we landed on

  • Persistent data display:Maximum limit and remaining balance always visible — no hover, no drill-down required.
  • Group-level exposure view:Aggregated picture of all related entities in a single scannable layout.
  • Policy alignment indicators:Real-time feedback on whether proposed structure is within bank thresholds.
Limits and Facilities — Iterations #1 and #2 explored layouts Limits and Facilities — Iterations #3 and #4 explored layouts
06 — Solution 3

Pre-validation: early eligibility signals before full processing

Previously, RMs and CRMs had to manually review multiple documents — bank statements, ACRA reports of related parties — before knowing if a case was viable. This wasted hours on low-probability applications.

I introduced a pre-validation layer that surfaces early eligibility signals before full application processing begins.

Design principle: Surface uncertainty early. The cost of discovering ineligibility at the credit stage is orders of magnitude higher than discovering it at the assessment stage. Front-loading the signal is a force multiplier on the entire pipeline.

Pre-validation results view — full eligibility breakdown surfaced upfront

Creditworthiness upfront

Users can assess loan eligibility of a customer in one place — without manual data input. Early signal before any significant effort is invested.

Filter before committing

Low-probability cases are surfaced early and filtered out. RMs focus only on viable opportunities — making the pipeline significantly more efficient.

Improved decision confidence

Early validation means fewer late-stage surprises. Credit reviewers receive better-prepared applications, and RMs enter the process with higher confidence in outcome.

07 — Impact & Outcomes

From a 3-month process to an 11-minute decision

The redesigned workflow delivered significant operational improvements across the entire financing pipeline.

11 minProcessing time per case after redesign

120 minutes → 11 minutes

End-to-end pre-approval assessment reduced from over two hours to eleven minutes — a 91% reduction in processing time per case.

20%Rework rate after redesign

80% → 20% rework rate

Automated calculations and early eligibility signals eliminated the primary drivers of rework — late-stage rejections and manual data errors.

16+→1Systems consolidated into a single flow

System fragmentation eliminated

All credit-related data, eligibility checks, and exposure calculations now happen inside a single structured workflow — no external tools, no spreadsheets.

Early-stage decision confidence

Better pipeline quality

Pre-validation surfaces low-probability cases early. RMs and credit reviewers operate with higher confidence, investing effort only where it's likely to convert.

08 — Reflection

What I learned designing for financial decision-making

Lesson 01

Designing for financial systems is less about UI — and more about decision architecture

The interface was almost secondary. The real design work was understanding the credit logic, eligibility criteria, and exposure calculation rules — then structuring them into a flow that made decisions faster and more reliable.

Lesson 02

The biggest gains came from eliminating uncertainty early

Optimising later steps had diminishing returns. Front-loading the eligibility signal — before any significant effort was invested — was the single highest-leverage change in the entire redesign.

Lesson 03

Automation is most powerful when it reduces cognitive load, not just effort

Automating DOA group calculations wasn't just about saving time. It removed the mental overhead of holding financial relationships in working memory — letting users focus on judgement instead of arithmetic.

Lesson 04

Trust in financial tools comes from clarity, predictability, and transparency

Users don't just need accurate data — they need to understand where it came from, how it was calculated, and what it means for their decision. Transparency is a UX requirement, not a nice-to-have.

"Designing internal tools for a bank taught me that the most important design decisions aren't visual — they're structural."
— Jisoo Ahn, 5 Unexpected Lessons Learned While Designing Internal Tools for a Bank
Read the write-up →
Case Study — Shipped Product

FI Partner Page
Redesign

Loyalty & Rewards
Lead Product Designer
B2B SaaS · Merchant Portal
Discovery → Delivery
01 — Context

A merchant portal where partnerships — and revenue — live or die

Ascenda's merchant portal is a one-stop platform for merchant partners — airlines and hotels — to explore potential Financial Institution (FI) partnerships, track existing ones, manage marketing campaigns with partnered FIs, and monitor campaign performance.

The Financial Institution pages sit at the centre of this workflow. They're how merchants discover new FI partners, qualify them, move them through the pipeline, and see the ones already live with them — directly tied to revenue generation across the platform.

Discovery & ResearchIA & Systems Design Interaction DesignUsability Testing

My role: I led the redesign end-to-end — from discovery and research with internal and external users, through information architecture and interaction design, to usability testing and post-release analytics review.

02 — Problem Definition

"It's just so confusing…" — a usability problem that quietly cost the business

Poor usability made it hard for merchant partners to browse FIs efficiently. Internal teams were absorbing the cost — fielding repeated support inquiries on how to read the page, what the labels meant, and where to find specific partners. For a page directly tied to revenue, that friction was expensive.

01Critical

Unconventional labels & icons

Terms like 'Active' and 'Approved' didn't match merchant users' mental models. A star icon was used to indicate a live FI — but to merchants it read as "favourite," not "live partnership."

02Critical

Redundant IA split

'Pipeline' and 'Active' were two top-level nav tabs — but given the moderate depth of the IA, splitting the same entity across two destinations was redundant, forced extra navigation, and obscured the partnership journey.

03

No structural support for scale

The two-tab structure made it hard to add new stages, new actions, or new merchant prompts without further fragmenting the navigation. Every future feature would have meant another tab — or another workaround.

03 — Research & Discovery

Understanding the root causes — and the partnership journey behind them

I combined desk research with interviews of internal users (sales, BD, MP team) to surface why the existing page was hard to use, and mapped the full partnership launch process to find what the IA should support.

Method 01
Desk Research
Audited the current page against B2B patterns and user mental models for pipeline / Kanban-style workflows.
Method 02
Internal Interviews
Spoke to sales, BD, and the merchant partner team to understand the support inquiries they were absorbing and where merchants got stuck.
Method 03
Journey Mapping
Mapped the end-to-end partnership launch process — from interest check and FI activation with Ascenda, through to live partnership between FI and merchant — to identify where the system should support each step.
End-to-end partnership launch process — sales team, MP team, and merchant partner swimlanes across interest check, FI activation, and partnership launch
Key Research Findings
01

Labels and icons didn't match merchant mental models

'Active' and 'Approved' read as internal operational states, not as the partnership stages merchants think in. The 'star' icon was the most consistent source of confusion — universally read as "favourite," never as "live partnership."

Existing Active tab — top-level nav destination separated from Pipeline
02

The Pipeline / Active split was solving an internal problem, not a user one

The two-tab IA reflected how the system stored FIs — not how merchants browsed them. Users wanted to see all FIs across stages in one place, with the stage as a property of the FI, not as a destination.

Existing Pipeline tab — top-level nav destination separated from Active
03

The partnership journey is naturally staged — and naturally Kanban

Mapping the full launch process surfaced three clean stages: Opportunities → Going live → Live. Each stage had a distinct definition and a distinct use case for both merchant and internal users — a structure the existing IA didn't expose.

Kanban board inspiration — Opportunities, Going live, Live with definitions and use cases per persona

Goal we aligned on: Improve clarity and comprehension of the pipeline content. We committed to two success metrics — a leading indicator (80% success rate on key tasks in usability testing) and a lagging indicator (increase in weekly page views and average views per partner).

04 — Solution 1

One page, three stages, two audiences

I consolidated the two existing tabs into a single 'FI Partners' page with three stages — Opportunities → Going live → Live — directly mirroring the partnership launch process surfaced in research.

The same page serves two distinct audiences: merchant partners (external) and the Ascenda MP team (internal). They share the same mental model of the partnership journey — but not the same actions. Audience-specific affordances layer on top of a shared structure.

I also restructured the main navigation — grouping FI Partners and Campaign Proposals (the two revenue-generating surfaces) at the top, with insights and marketing tools organised beneath.

Design principle: The IA should mirror the user's mental model of the work — not the system's storage model. Stage is a property of a partnership, not a destination in the nav. And one structure can serve multiple audiences when stage is shared truth.

Opportunities

FIs that are activated or being activated with Ascenda. Use case: merchants can browse and actively find the ones that match their business strategy and preferences.

Going live

FIs that are in the process of going live with the merchant. Use case: merchants can track which deals are mid-launch and what the next step is.

Live

FIs that have gone live with the merchant. Use case: merchants can view all live partnerships and the contract details associated with them.

Same structure, audience-specific affordances
Shared three-stage structure
Both views use the same Opportunities → Going live → Live structure, so internal and external users speak the same language about where a partnership is in its journey.
Action column for internal users
The internal view adds an action column — letting the MP team move FI items between stages, edit details, and archive — without leaving the page or breaking the shared mental model.
Per-merchant tailoring on the internal side
Internal users can view the FI Partners page in the context of any individual merchant, with the same layout and stages — so the team can support each merchant against a consistent picture of where their partnerships stand.
Merchant view of the new FI Partners page — Opportunities tab with read-only stage labels
Merchant view — browses partnerships by stage; stage is read-only.
Internal view of the new FI Partners page — Opportunities tab with editable stage dropdowns and per-row action menu
Internal view — same structure, plus editable stage dropdowns, per-row action menu, and Create FI.

Impact

Replaced an internal-storage IA with a journey-shaped one — and made the same page serve both audiences. Stage is now a filter, not a fragmented destination; audience-specific affordances layer on a shared structure.

05 — Solution 2

A details page rebuilt for clarity — and for scale

The previous details page mixed high-value content with low-value content, and used a rigid layout that didn't accommodate the different states an FI partnership goes through.

I redesigned it around a card-based layout — removing low-value content, grouping high-value content into cards that can vary by stage, and making the page easy to extend as new content types come in.

Design principle: Design the container so the next feature is a card, not a redesign. Anticipating future surface area was as important as fixing today's problems.

Card-based composition

Content is grouped into discrete cards. Each card has a clear purpose and can appear or hide per stage — so the page composition adapts to the partnership's current state.

Stage-aware content

Different cards surface for Opportunities vs Going live vs Live. Users see exactly what matters at the stage they're in — and nothing they don't.

Built for future steps

The tab structure was deliberately designed to accommodate new process steps, merchant prompts, and action types — anticipating a follow-on project that has since shipped using exactly this scaffolding.

FI details page before redesign — hero banner, sparse data layout
Before — original details page with low-value hero banner
FI details page after redesign — Opportunities state with card-based Company details
Redesigned — card-based layout with stage-aware content (Opportunities).
FI details page after redesign — Live state with Launch details card
Redesigned, when live — extra Launch details card surfaces only at the Live stage.
FI details page after redesign — Going live state with new 'Your interest' card added later
Redesigned, with another feature — a later "Your interest" card slotted in without re-architecting the page.
06 — Impact & Outcomes

From confusing to engaging — the most-viewed page in the app

The redesigned FI Partners page hit both success metrics we committed to in research — and the lagging indicator outperformed expectations.

#1Most-viewed page in the merchant portal

From underused to most-viewed

Post-release analytics showed the FI Partners tab — previously underused — became the most-viewed page in the app, exceeding the lagging indicator we set.

80%Success rate on key tasks (usability testing)

Leading indicator achieved

Usability testing on the key user tasks defined during research returned an 80% success rate — meeting the target we set with the team before delivery.

2→1Tabs consolidated into one journey-shaped page

IA simplified, mental model restored

The two-tab Pipeline / Active split was retired. The single FI Partners page mirrors how merchants actually think about the partnership journey.

Foundation for follow-on features

Scalability paid off

The tab structure designed for future steps has since been used to add new process stages and merchant prompts — without re-architecting the page.

A new 'Opportunity matching' stage slotted between Opportunities and Going live — added without re-architecting the page
07 — Reflection

What I learned redesigning a shared surface for two user groups

Lesson 01

Design with impact and user value in mind

The most defensible design decisions weren't the ones that looked best in Figma — they were the ones tied to a measurable change in user behaviour or business outcome. Committing to leading and lagging indicators upfront kept the team aligned on what "good" actually meant.

Lesson 02

Always keep scalability in mind

Anticipating that the tabs would later carry new process steps shaped how I designed the container. A follow-on project ended up extending exactly that scaffolding — which would have required a re-architecture if I'd optimised only for the immediate scope.

Lesson 03

One page can serve two audiences — if the structure is honest about the work

Merchants and internal users don't share actions, but they share a mental model of the partnership journey. Designing one structure around that shared mental model — and layering audience-specific affordances on top — was cleaner than building two separate pages.

Lesson 04

IA problems hide as usability problems

"It's just so confusing" wasn't a label problem or an icon problem — those were the symptoms. The root cause was an information architecture that mirrored how the system stored data instead of how users thought about it. Fixing the IA made the surface-level fixes obvious.

Case Study — Shipped Product

Large Corporate
Onboarding
Design

Institutional Banking
Lead Product Designer
Enterprise Banking · KYC & Account Opening
Discovery → Delivery
01 — Context

1,200 cases a year, 46 days each — all run on email

The bank processes over 1,200 large corporate account opening cases per year, each taking 46 days on average to complete. The entire workflow — document requests, verification, signing, KYC, and account opening — was running 100% manually through emails and phone calls.

The team set out to digitalise the process end-to-end, with the goal of decreasing operational costs and increasing efficiency across two distinct user groups: an internal KYC team and an external customer administrator.

Discovery & ResearchService Design Cross-Platform UXDesign System

My role: I led design end-to-end across two platforms — an internal KYC console and an external customer portal. I ran discovery with internal users, mapped service blueprints, drove product direction with the business team, and delivered GUI, flows, prototypes, and UI scenarios. I also contributed new patterns to the design system.

1,200+Large corporate account opening cases handled per year
46 daysAverage time to complete a single case before redesign
100%Of the existing workflow run on emails and phone calls
02 — Problem Definition

Five compounding bottlenecks — and no shared view of the work

I interviewed users on both sides and walked the existing process end-to-end. Five distinct bottlenecks emerged — each one slowing the case down, and each one absorbing manual effort that should never have existed.

01Critical

Manual preparation of document requirements

Required documents vary by product type and business type. The KYC team had to check the document requirement guideline manually for every case — a fragile lookup with no system support.

Documents required vary by product and related party — illustrated alongside a CORE team member interview quote
02Critical

Manual cross-check of docs & emails into the KYC case

Verified documents and information were used for KYC — but the KYC team had to extract and enter every field manually, cross-checking between attachments and the case form. Time-consuming and error-prone.

03

Back-and-forth emails for document verification

Both parties spent significant time inspecting their inboxes to find the right email and review its content. The cost compounded with every additional document — and every case had many.

04

No way to check document processing status

The KYC team kept documents on local devices and tracked readiness in a separate note or spreadsheet. Customers had no visibility at all — and frequently asked their RM or the KYC team for status, adding more inbound work.

05

Slow physical signing and shipping

Signing was physical. The customer administrator collected signatures from all directors, then arranged courier delivery to the bank — a logistically cumbersome step that added days per case.

03 — Research & Discovery

Two key personas — and three focus areas the redesign had to deliver

I mapped every party involved in the process and identified the two personas the design had to serve in parallel: the KYC team on the internal side, and the customer administrator on the external side. Each had distinct tasks, but both depended on the same documents flowing through the same case.

Method 01
User Interviews
Interviewed the KYC team to understand their tasks, pain points, and the workarounds they'd built. Surfaced the manual cross-checking, the local note-taking, and the email-as-database pattern.
Method 02
Process Analysis
Walked the end-to-end case lifecycle to find where time was actually lost. Documented the five bottlenecks and the workflow gaps that drove them.
Method 03
Service Blueprint
Mapped the full service across internal and external actors — including documents, signatures, status states, and handoffs — to give the team a shared view of the system.
Method 04
Business Alignment
Worked with the business team to translate the discovery findings into product goals and prioritise opportunities by organisational impact.
Personas mapped across internal parties (RM, Ops Team, KYC Team) and external parties (Administrator, Director, Certifier) — with what they do and what they care about
Three Focus Areas
01

Reduce manual tasks

Every minute the KYC team spent re-typing information from attachments into a case form was a minute lost to a problem the system should have solved. Automating data flow across stages became a primary goal.

02

Reduce time required for document verification

Email-based document exchange was the largest single source of delay. Moving exchange into a shared, structured surface — with per-document status — was the highest-leverage change to compress case time.

03

Provide clear visibility of progress

Customers asked about status because they couldn't see it. Internal users tracked status in spreadsheets because the system didn't surface it. Making progress visible — to both sides, in real time — would cut inbound inquiries at the root.

Service blueprint of the legacy onboarding workflow — stages, key actors, and manual steps surfaced during discovery
Service blueprint of the existing workflow — every step, actor, and handoff mapped end-to-end.
Six key pain points across employee and customer sides — manual prep, manual cross-check, inquiry volume, email back-and-forth, status visibility, physical signing
Six pain points distilled from the blueprint — three on the employee side, three on the customer side.
04 — Solution 1

An end-to-end journey, organised into four stages

I designed a holistic end-to-end onboarding journey consisting of four distinct stages — Draft, Document Exchange, Signing & Certifying, and KYC / Account Opening.

Each stage has a clear owner, a defined input, and a defined output. The same stage structure is visible to both internal and external users, so both sides know exactly where a case is and what's next.

Design principle: Give both audiences a shared mental model of the work. Stage is the unit of coordination — not the inbox, not the spreadsheet.

Service blueprint of the redesigned four-stage journey — Draft, Document Exchange, Signing & Certifying, KYC & AO — with actors, portals, inputs, outcomes, and pain points addressed at each stage
Redesigned service blueprint — four stages, both portals, with actors, digital evidence, outcomes, and the pain points addressed at each step.

Draft

RM kicks off the case digitally — customer info captured in a structured form, replacing the initial email exchange.

Document Exchange

Required documents are exchanged in a shared list across both portals — no email back-and-forth, with per-document status.

Signing & Certifying

Documents are signed digitally via DocuSign — replacing the physical signing and courier step.

KYC / Account Opening

KYC case is auto-populated from upstream stages — the team enriches rather than re-enters, and proceeds to account opening.

Impact

Replaced an email-driven workflow with a journey-shaped service. Both internal and external users now monitor the same stages, with the same definitions, in the same flow.

05 — Solution 2

Eliminating manual work — one source of truth across stages

The largest source of internal effort was data re-entry. The same information moved across the RM, the KYC team, and the Ops team — and at every handoff, someone retyped it. I redesigned the workflow so that information captured upstream flows through every downstream stage.

Digitised initial form replaces email kickoff
The RM captures customer information directly in a structured form — eliminating the initial email exchange and giving every downstream user a single source of truth from the start.Account Opening System — RM onboarding details form: basic details, communication preferences, account opening, remarks, source of referral
Auto-generated document list
The document list is auto-generated based on the RM's form, so the KYC team enriches rather than builds it from scratch — using sources like ACRA to minimise repetitive input on the customer side.KYC console — auto-generated document list with Application form, Board resolutions template, and per-document signing/certifying status
Information reused across the KYC case
Information captured during the Draft stage flows through the KYC case automatically — the KYC and Ops team no longer fill in case information from scratch. The result is a more streamlined process for every internal party involved.
06 — Solution 3

One shared list, real-time visibility, and digital-first signing

To compress case time and cut inbound inquiries, I designed three connected surfaces that work together across the internal console and the external customer portal — turning the document exchange, status visibility, and signing into a single seamless flow.

Design principle: Give both sides the same view of the same work. Status isn't a question to answer over email — it's a property of the document, visible to everyone with a stake in it.

One shared document list

A single document list is shared across both portals — no back-and-forth emails. Customers can work on documents one by one with per-item status; internal users can send back only the items that need revision, with a reason attached.

Supporting documents — shared list across both portals with per-document status, return reasons, and exclusion reasons annotated

Progress widget & step-by-step guidance

Customers unlock the case via an OTP sent to their mobile, then follow a progress widget that shows exactly where they stand. A to-do list surfaces non-sequential tasks per stage, so customers can act without waiting on instructions.

Customer onboarding flow — email kickoff to OTP unlock to progress widget and to-do list Customer portal landing — progress widget, step-by-step status, and per-stage to-do list

Seamless digital signing

Digital signing is the default — integrated with DocuSign for one-click sending. Both KYC team and customers see real-time progress in their portal, and a user-friendly error-handling system surfaces clear, task-specific messages when an unhappy flow needs resolving.

Digital signing flow — selecting signatories and sending documents via DocuSign in one click
07 — Impact & Outcomes

From a 46-day email chain to a digital, two-sided service

The redesigned onboarding workflow replaced a fully manual, email-driven process with a structured, two-platform service. The structural impact spans all three focus areas the team committed to in discovery.

4Stages in the new end-to-end journey

Email workflow → structured service

Replaced an undefined email-based process with a four-stage journey — Draft, Document Exchange, Signing & Certifying, KYC/AO — visible to both internal and external users in real time.

2Platforms designed in parallel — internal & external

Two audiences, one shared model

Internal KYC console and external customer portal both express the same stages, the same document list, and the same status — so both sides operate from a shared mental model of the work.

0Manual re-entry between RM form, document list, and KYC case

Manual re-entry eliminated

Information captured at the Draft stage flows through document generation and KYC. The team enriches data rather than rebuilding it — removing the largest source of internal effort and error.

Visibility of progress for both internal & external users

Inquiries replaced by transparency

Per-document status and a customer-facing progress widget surface where every case stands at any moment — cutting the inbound "what's the status?" load on RMs and the KYC team.

08 — Reflection

What I learned designing a two-platform service from scratch

Lesson 01

Two audiences are best served by one shared model — not two separate products

Internal and external users have different tasks but the same case. Designing one stage model, one document list, and one progress concept — then layering audience-specific affordances on top — produced a more coherent service than two parallel products would have.

Lesson 02

Automation pays off most when it eliminates duplicate entry across stages

The biggest internal gains didn't come from new features — they came from removing the re-typing that happened at every handoff. Information that flows through the system is information no human has to copy.

Lesson 03

Visibility reduces support volume more than feature richness does

Customers asked for status because they couldn't see it. The progress widget didn't add capability — it just exposed truth the system already knew. That single piece of transparency removed a meaningful share of inbound questions.

Lesson 04

Defaulting to the new behaviour accelerates adoption

Making digital signing the default — and explaining the benefits — moved customers off physical signing faster than offering it as one option among several would have. The default is a design decision, not a neutral starting point.