Behind Steerplan
The data engineering under a personal finance app
Oluwasegun Lawal, 14 August 2026. 3 minute read.
Most people have checked their balance and wondered where it all went. Finding out usually means opening three banking apps, scrolling back through weeks of card payments, and guessing which direct debits are due before payday.
Steerplan puts that in one place. I'm a data engineer on the team, and I work on the part you don't see: turning raw bank transactions into something a person can read and act on.
Connecting the banks
Steerplan connects to banks through Yapily's Open Banking APIs, which cover more than 80 UK banks. You give permission through your own bank's app. Steerplan can then read your transactions and balances, so you never have to download a statement and upload it. You can withdraw that permission at any time.
What happens to a transaction
Once you've connected, background jobs pull your accounts from Yapily and keep them up to date. Each transaction goes into a PostgreSQL database on AWS in one consistent shape: amount, date, merchant, account. Sensitive fields are encrypted before they're stored.
Then comes the hard part. Bank data is messy. "CARD PAYMENT TO TFL TRAVEL CH" needs to become "TfL, transport". The same Netflix charge can arrive with three different descriptions. Some banks send a transaction twice. So before anything reaches the app, we:
tidy merchant names and give each payment a category, with a language model handling the descriptions simple rules can't read
remove duplicates by comparing what each transaction contains, because the IDs banks send aren't always stable
find the payments that repeat, such as rent, subscriptions, direct debits and salary, and work out when each is next due
Most of the difficult work is in that last step. A payment that skips a month or changes by a few pence still has to count as the same bill. A one-off payment that happens to match last month's amount must not be counted as one. If detection gets either case wrong, someone sees a bill that doesn't exist or misses one that does.
Asking your money questions
You don't have to read the dashboards at all. You can ask Steerplan's chat things like:
How much did I spend on food last month?
What bills have I got coming up?
Why has my spending gone up?
Can I afford this before payday?
The chat runs on Claude, and it answers from the same cleaned data the app shows: your categories, your bills, your forecast. That's why the data work matters for the AI too. A model is only as accurate as the facts it's given, and we want it answering about your accounts. Generic tips you could find anywhere don't help anyone.
Seeing what's coming
Because the recurring payments are already found, Steerplan can look ahead. It shows which bills are due before your next payday and how they'll affect your balance over the coming weeks. That helps most if your bills come out of more than one account, because the full picture sits in one place without a spreadsheet.
Why I like this work
I like that the distance between the data and a person is short here. If we fix how one merchant gets categorised, someone sees a more accurate number the next time they open the app. Every spending summary and every chat answer depends on data that was brought in, cleaned and checked first.
Oluwasegun Lawal is a Data Engineer at Steerplan, working on the Open Banking integration, transaction cleaning and the data behind the forecasts and AI chat.
