Cash Flow Forecaster

Inspiration

For years I managed my personal finances using spreadsheets.

They worked reasonably well, but only because I had spent years refining them. Every month I had to import bank transactions, update formulas, extend tables, add recurring payments and manually check that nothing had gone wrong.

Eventually I realised I wasn’t trying to build better spreadsheets—I was trying to build software.

The aim of this project was to create an application that gives ordinary people the same confidence my spreadsheets gave me, without requiring them to understand formulas or spend hours maintaining them.

What it does

Cash Flow Forecaster imports bank transactions and combines them with recurring income and expenses to produce a forward-looking view of your finances.

Rather than simply reporting where your money has gone, it predicts where it is going.

The application can:

  • Import bank statements
  • Forecast future balances
  • Automatically generate recurring transactions
  • Manage multiple accounts
  • Calculate your lowest projected balance
  • Show how much money is genuinely safe to spend or save

How I built it

The application is written in Flutter using Dart with SQLite for local data storage.

One of my design goals was to keep everything running locally, making the application fast and avoiding the need to connect directly to online banking services.

Throughout development I worked alongside OpenAI Codex. Rather than asking AI to build the application for me, I used it as a development partner to review architecture, suggest improvements, identify edge cases and generate well-scoped patches that I tested and integrated into the project.

Challenges

One of the biggest challenges was ensuring the forecast always remained accurate.

Importing bank statements sounds straightforward until users import the same statement twice, edit recurring transactions or move money between accounts.

Much of the work during development has focused on maintaining data integrity—preventing duplicate imports, keeping linked transfers synchronised, updating forecasts after edits and ensuring recurring transactions are generated only when appropriate.

What I learned

The project reinforced that software engineering is often less about writing code and more about designing reliable systems.

Working with Codex also changed how I approach development. AI dramatically accelerated implementation, but only because every suggestion still required careful review, testing and understanding before becoming part of the application.

What’s next

Next steps include:

  • Support for additional bank CSV formats
  • Smarter duplicate detection
  • Improved forecasting algorithms
  • Better financial visualisations
  • Cross-platform releases

The long-term goal is to make cash flow forecasting as simple as importing a bank statement, allowing anyone to understand not just their balance today, but where they’ll stand weeks or months into the future

Built With

Share this project:

Updates