Archive · Fintech

CSV Parsing Bank Statements

A way to import CSV bank statements when open banking APIs like Yapily and Plaid could not reach the bank, or could not reach far enough back.

This is earlier work, kept here because people still find it. Olively today is an AI product consultancy — if that is what you are after, start with the AI Reality Check or the readiness scorecard.

Mapping CSV columns and rows
Client
Canua, the first personal finance automation platform
Industry
Fintech, Banking
Role
Lead Product Designer
Focus
Product design, SaaS, UX Design, Product Strategy, User flows, B2C, Information architecture
4 weeksTimeframe
7 peopleTeam
2,000CSVs added
6Technical constraints

The problem

What the work was actually for.

Two problems sat underneath the same feature. Many banks had no reliable API connection, which meant tax reports, investment insights, transaction history, balance sheets and portfolio analysis simply did not work for those customers.

And where an API did connect, it often returned only a short window of history. Financial insight built on three months of data is not insight. Users needed a way to fill the gap themselves.

Uploading a statement sounds trivial until you look at what a bank actually exports. Every institution formats dates, amounts and columns differently, and a wrong guess corrupts the numbers a person is about to make decisions on.

The outcome

What actually changed.

Around 2,000 CSV formats were handled by launch. Customers whose banks had no API connection, and those whose API returned only three months of history, could finally use the tax reports, portfolio analysis and balance sheets that the product was sold on.

The decisions

Three calls that shaped it.

01

Define the data rules with engineering before designing anything

A workshop with the backend team first, to establish what could be accepted and what had to come from the user. In a parsing flow, the constraints are the design.

02

Make each step explain itself

Cognitive load matters most where a wrong answer corrupts data silently. Every step in the flow states what it is asking for and why, rather than assuming the user knows what a date format is.

03

Test with expatriates specifically

They were the users most dependent on the feature, because their banks were the ones with no API connection. Testing with the general user base would have missed the cases that mattered.

What was hard

Date formats were the hard part. Every bank exports them differently, and a wrong guess corrupts a tax report months later without anyone noticing. That is why the rules were agreed with the whole team before any of it was designed.

The hard part

The hard part was date formats. Ask the wrong question and a database discrepancy quietly corrupts someone's tax report months later. That meant defining rules and limits with the whole team before any of it was designed, rather than discovering them in production.

The work

What it looked like.

Technical constraints

A workshop with engineering first, to establish what the backend could actually accept and which data had to come from the user to keep the numbers trustworthy.

Figma workshop results from the technical session with developers

Information architecture and user flows

The flow had to explain itself at each step. Cognitive load matters most in the part of a process where a wrong answer corrupts data silently.

Flowchart for the CSV parsing project

UI design

Tested with expatriates specifically, because they were the users most dependent on the feature and the most likely to hold accounts at banks with no API.

Adding banking data to an account
Adding bank accounts to a profile
Adding CSV files to the parsing process
Drag and drop CSV files
CSV parsing in progress
CSV parsing finished

Mapping the columns

The hard part. Every bank exports dates and amounts differently, and a wrong guess here corrupts a tax report months later without anyone noticing.

Defining CSV columns and rows
Defining CSV columns during bank statement parsing
Defining CSV columns
Mapping CSV columns and rows
Parsing bank statements
Detecting issues in the CSV parsing process

What I do now

Most AI projects are theatre. I help you build the ones that aren’t.

An AI Reality Check scores every idea on your roadmap and hands back three lists — what is real, what is theatre, and what is blocked. One week, fixed price.