Parse bank statements and file them in expense categories
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


I've always been obsessed with understanding where my money is going. Over the years I've tried many existing solutions and created a few of my own.

Because I'm learning Scala, I thought, why not try it one more time :)

The goals are:

  • try to automate everything
  • categorize all bank transactions in as few categories
  • reduce it to averaged monthly numbers

Right now, the program is pretty limited. As I learn Scala, I will apply more techniques and add functionality. Feel free to suggest improvements or report bugs through the issue tracker or via pull requests.

running it

You will probably need to tweak the code and configuration before this is useful to you.

In src/main/resources you can find a few example files:

  • The CSV file is the one you should download from your online banking app. Verify that the columns are the same. If not you will need to update the CVSInput class.
  • The file contains a very basic categorization on counterparty bank account number. Enter account numbers without spaces.

When you run the program (Main.scala) it will show the transactions that have not been categorized yet.