A data pipeline that extracts transactions, categorizes them using an LLM, and loads them in transactions_history.csv
for analysis.
- As someone who uses checking accounts and credit cards from different countries, I can't easily get an overview of all my spending for any month / year in a single report. Personal finance apps (like Mint) don't let you connect foreign bank accounts.
- Banks and credit cards don't categorize transactions the way I like.
- Cash transactions go unaccounted for with apps provided by banks.
For the longest time, I used mental math to add transactions from my accounts and tracked the numbers on Notion. With that process:
- I made mistakes from time-to-time.
- I could never easily create visuals to better understand my spending habits.
- I couldn't easily compare spending year to year.
Since I aimed to get this project up-and-running asap, wanted to keep financial data safe, and didnt want to invest time into building a UI, this app:
- Stores categorized businesses in
categorized_businesses.csv
, leverages OpenAI to categorize new businesses, and falls back on user input when unsure. - Stores all past transactions in an iCloud folder so that it's all backed up.
- Uses a Notion Integration so that my wife and I can continue tracking cash transactions on Notion.
- Analyzes transaction history in the Jupyter Notebook
analysis.ipynb
. - Validates data schemas with pandera
- Capital One transactions
- Cash transaction tracked in a Notion database
- Create a virtual environment:
python -m venv accoutningenv
- (VSCode) Install ipykernal:
pip install ipykernel
- Create a Jupyter Kernal:
python -m ipykernel install --user --name=accoutningenv
- Install dependencies:
pip install -r requirements.txt
- Place downloaded transactions in
data/temp/
- Run
python -m accounting.run_pipelines
- Display installed packages:
pip list
- Capture current dependencies:
pip freeze > requirements.txt
- Add support for inputting cash transactions on Notion
- Create unit tests to ensure program works as expected
- Add support for Citi Card
- Add support for cash transactions