A financial tracking and visualization dashboard built with Streamlit for monitoring personal expenses and savings.
This application provides a comprehensive view of your personal finances:
-
Expense Tracking: Imports and analyzes expense data from bank statement CSV files
- Categorizes transactions by merchant and category
- Auto-categorizes grocery store purchases (Sprouts, Safeway, King Soopers, Trader Joe's, Costco, Whole Foods)
- Groups expenses by date and card
- Visualizes spending trends over time by category
-
Savings Monitoring: Tracks account balances across multiple accounts over time (TBD)
- Displays savings growth trends
- Calculates and visualizes monthly savings changes
- Interpolates daily values from monthly snapshots
- Compares multiple accounts side-by-side
-
Interactive Filtering: Filter data by:
- Payment cards
- Expense categories
- Date ranges
- Savings accounts
- Python 3.12 or higher
uvpackage manager
-
Clone the repository:
git clone <repository-url> cd expense-tracker
-
Create and setup virtual environment:
uv sync
-
Activate the environment:
- On macOS/Linux:
source .venv/bin/activate - On Windows:
.venv\Scripts\activate
- On macOS/Linux:
Set up the required environment variables for data paths:
export PATH_EXPENSES=/path/to/your/expenses/data
export PATH_SAVINGS=/path/to/your/savings/dataData Format: The application expects CSV files in these directories. For expenses, the CSV should include columns like:
Posted DateCard No.CategoryDebitDescriptionPaid ByPaid For
For savings, the CSV should include:
Account NumberTransaction DateBalance
streamlit run src/expenses.py # For expense tracking
streamlit run src/savings.py # For savings trackingThe application will open in your web browser at http://localhost:8501.
Expense Dashboard:
- Select which cards to include in analysis
- Choose expense categories to display
- Use the date range slider to focus on specific periods
- View interactive charts showing spending patterns by category and time
Savings Dashboard:
- Select accounts to monitor
- Choose your date range
- View two charts:
- Savings over Time: Shows account balance trends
- Monthly Savings: Shows how much balance changed each month
expense-tracker/
├── src/
│ ├── expenses.py # Expense tracking module
│ └── savings.py # Savings tracking module
├── data/ # Local data storage
├── pyproject.toml # Project configuration and dependencies
├── activate.sh # Environment activation script
└── README.md # This file
streamlit: Web app frameworkpandas: Data manipulation and analysisplotly: Interactive visualizationsnumpy: Numerical computingst-gsheets-connection: Google Sheets integration (optional, for cloud data)
See LICENSE file for details.