This repository interprets bank statements from Scotiabank. It extracts data from bank statement PDFs, bins them into categories based on extracted metadata, and then produces insights and visualizations on financial health, spending habits and so on. It is intended to be used as a means of insights into spending, long-term growth and ways to improve financial health overall.
Note: Parameters are tuned for bank statement PDFs generated as of December 2024, any changes to the statement's file standards from Scotiabank after this point may/may not be reflected here.
This project is organized into several directories, each serving a specific purpose:
personal-finance-tracker/
├── bank_statements/
│ └── Chequing # Folder holding accounts/PDFs belong to chequing accounts
│ │ └── ... # <Generic account name>
│ │ │ └── ... # <Generic statement PDFs>
│ └── Savings # Folder holding accounts/PDFs belong to savings accounts
│ └── Credit # Folder holding accounts/PDFs belong to credit accounts
├── cached_data/
│ └── databank.json # Bank of personalized associations to categorize by
├── src/
│ └── modules/
│ │ └── pdf_interpreter.py # Module for interpreting bank statement PDFs
│ │ └── helper_fns.py # Module for helper fns to use throughout build
│ └── notebooks/
│ │ └── finance_visualizer.py # Module to visualize finance insights
├── README.md # Project overview and documentation
└── requirements.txt # List of dependencies required to run the project
To run this project, you will need Python installed on your machine along with the required libraries. Current version utilizations being utilzied locally are as follows:
- Python (3.11.7)
- Virtual environment created using Python 3.11 (Not required but suggested)
Otherwise, you can install the dependencies using the following command:
pip install -r requirements.txt
- Clone this repository to your local machine.
- Within bank_statements/..., there are 3 folders called 'Chequing', 'Savings' and 'Credit'; This will be where you dump all your bank statements:
- Navigate to ScotiaOnline.
- Download all desired statements and place within one of three predefined folders in bank_statements/... by placing within a folder named by the account name.
- E.g. PDF bank statements from 'Student Banking' chequing account would be placed in bank_statements/Chequing/Student Banking/...
- See README per folder for more information.
Once prior steps are completed, simply navigate to finance-tracker notebook and hit 'run all'.