Designing the transaction matching UX
The challenge
The core job of the platform is matching transactions across data sources. In simple cases, one bank entry matches one Stripe payout. In real life, a single bank deposit might correspond to 30 individual Stripe transactions across multiple days. Users need to see the relationship at a glance, verify it, and either accept the match or break it apart.
The insight
Early in the project, our PM brought back a finding from finance users that reframed the problem for me. The hardest part of their day wasn't finding discrepancies — it was trusting the matches the system suggested. Their existing tools would say "matched ✓" with no visible reasoning, and they'd still re-verify everything in Excel anyway. That changed my brief: the matching screen wasn't a confirmation screen; it had to be a forensic view — every match needed to show its work.
“Hidden destructive actions kill trust faster than wrong matches do.”
My approach
- Designed a split-pane layout: the source transaction lives in a compact left rail (preserving context), while the right side hosts a full table of the matched counterparts with pagination and filters. Both sides visible simultaneously, by design — so the user can compare without clicking back and forth.
- Built a tabbed system (5 tabs) so the same transaction can be viewed across different lenses — match details, related transactions, transaction logs, raw data — without leaving the page. The "raw data" and "transaction logs" tabs were specifically there to give finance users the audit trail they needed before trusting the match.
- Made the "Unreconcile" action a first-class primary button, not buried in a menu. If a user disagrees with an automated match, they need to break it without hunting.
- Designed a right-side drawer (~396px wide) that surfaces additional context — notes, history, related metadata — without taking the user away from the matching view.
The trade-off
Density vs. simplicity. I chose to expose the full table directly on the page rather than hide it behind expandable rows. Finance users prefer scanning over clicking — they're used to spreadsheets where everything is visible at once. The vertical space cost was worth it.
Outcome
The matching flow shipped as a core part of the live product. Through our PM, finance users gave positive feedback on the forensic / audit-trail approach — specifically that being able to see why a match was suggested gave them enough confidence to stop double-checking everything in Excel.