- Project Overview
- Problem Statement
- Data Sources
- Tools and Technologies
- Methodology
- Results and Insights
- Conclusion and Recommendations
- Challenges and Limitations
- Future Work
- Appendices
Expense Tracker Dashboard is a data-driven financial management application designed for analytics professionals and individuals. It streamlines expense tracking, automates data cleaning, and delivers interactive visualizations to help users make informed financial decisions. Built with Streamlit, it supports multi-format data imports, secure user management, and actionable insights through a modern dashboard interface.
Managing personal and business finances is often hindered by disparate data sources, inconsistent formats, and a lack of actionable insights. This project addresses the need for a unified platform that automates the ingestion, cleaning, and analysis of financial transactions, enabling users to identify spending patterns, detect anomalies, and optimize their financial health.
- Sample Transactions:
- User-Uploaded Data: Supports CSV, Excel, JSON, TXT, Parquet, PDF, and ZIP formats.
- Manual Entry: Users can input transactions directly via the app interface.
- Programming Language: Python 3.8+
- Libraries & Frameworks:
- Streamlit (UI & app framework)
- Pandas (data processing)
- NumPy (numerical operations)
- Plotly & Altair (visualization)
- Openpyxl & XlsxWriter (Excel support)
- PyArrow (Parquet support)
- PDFPlumber & Tabula-py (PDF extraction)
- RapidFuzz (fuzzy matching)
- YData-Profiling & Sweetviz (data profiling)
- Passlib (password hashing)
- Other Tools:
See requirements.txt for the full list.
- Automated column mapping using fuzzy matching for diverse file formats (pages/1_Upload.py).
- Removal of duplicates and standardization of date, amount, and category fields.
- Handling missing values and outlier detection.
- Data validation to ensure integrity and completeness (utils.py).
- Summary statistics of income and expenses.
- Visualization of spending trends over time.
- Category-wise expenditure breakdown.
- Detection of unusual transactions and anomalies (pages/2_Dashboard.py).
- Creation of new features such as:
- Monthly savings rate
- Rolling averages of expenses
- Categorization of merchants and transaction types
- Time series analysis for trend detection.
- Clustering for identifying spending patterns.
- Anomaly detection using statistical thresholds.
- Cross-validation for model robustness.
- Manual review of flagged anomalies.
- Comparison with historical data for consistency.
- Key Findings:
- Identified top spending categories and peak expense periods.
- Detected duplicate and anomalous transactions, reducing data errors.
- Visualized monthly savings trends, highlighting opportunities for budget optimization.
- Visualizations:
- Interactive dashboards for income vs. expenses.
- Pie charts for category breakdowns.
- Time series plots for trend analysis.
The Expense Tracker Dashboard automates financial data analysis, providing users with clear, actionable insights. Users are encouraged to regularly review their dashboards, set savings goals, and investigate flagged anomalies to maintain financial health.
- Data Quality: Inconsistent formats and missing values in user-uploaded files.
- PDF Extraction: Variability in bank statement layouts affects extraction accuracy.
- Scalability: Performance may degrade with very large datasets.
- User Privacy: Local storage is used; cloud integration is not implemented.
- Integrate with banking APIs for real-time data import.
- Enhance anomaly detection with machine learning models.
- Add support for multi-currency and investment tracking.
- Deploy as a web application with user authentication and cloud storage.
| Variable | Description |
|---|---|
| Date | Transaction date (YYYY-MM-DD) |
| Name | Merchant or transaction details |
| Category | Expense category (e.g., Food, Utilities) |
| Amount | Transaction amount (positive/negative) |
| Type | Income or Expense (if present) |
- Repository: https://github.com/PrinceUwagboe/expense-tracker-dashboard
- App Entry Point: app.py
- Authentication Module: auth.py
- Utilities: utils.py
- Upload Page: pages/1_Upload.py
- Dashboard Page: pages/2_Dashboard.py
- Admin Panel: pages/admin_panel.py
- Sample Data: Sample_Transactions.csv, sample_data/sample_transactions.csv
- User Data Directory: user_data/
- Tests: tests/
- Admin Credentials Backup: admin_credentials_backup.json
- Contributing Guide: CONTRIBUTING.md
- Requirements: requirements.txt
For support, contact PrinceUwagboe44@outlook.com