A Streamlit-based web application for personal finance analytics. Upload CSV financial data to visualize cash flow, track budgets, analyze spending patterns, and detect anomalies. Features interactive charts, custom filters, and predictive insights.
- Overview
- Features
- Technical Stack
- Installation
- Usage
- Data Requirements
- Project Structure
- Feature Details
- Customization
- Troubleshooting
- Contributing
- Contact
The Finance Analytics Dashboard is a powerful, user-friendly web application built with Streamlit that empowers users to gain deep insights into their financial data. By leveraging advanced data visualization techniques and machine learning algorithms, this dashboard provides a comprehensive view of personal or business finances, enabling better financial decision-making.
- Data Upload: Easy CSV file upload functionality for financial data.
- Interactive Data Filtering: Dynamic filters for date ranges, transaction categories, and amounts.
- Cash Flow Analysis: Visualize monthly cash inflows and outflows.
- Budget Tracking: Set and track budgets for different expense categories.
- Spending Pattern Analysis: Identify trends in spending behaviors.
- Anomaly Detection: Automatically detect unusual transactions.
- Predictive Analytics: Forecast future spending based on historical data.
- Data Export: Export filtered and analyzed data for external use.
- Responsive Visualizations: Multiple chart types (Line, Bar, Histogram) for data representation.
- Summary Statistics: Quick view of key financial metrics.
- Python 3.7+: Core programming language
- Streamlit: Web application framework
- Pandas: Data manipulation and analysis
- Matplotlib: Data visualization
- Scikit-learn: Machine learning for anomaly detection and predictions
- Dateutil: Advanced date parsing
- Clone the repository:
git clone https:/yourusername/finance-analytics-dashboard.git
cd finance-analytics-dashboard
- Create a virtual environment (optional but recommended):
python -m venv venv
source venv/bin/activate # On Windows use venv\Scripts\activate
- Install required packages:
pip install -r requirements.txt
-
Start the Streamlit server : streamlit run main.py
-
Open your web browser and navigate to
http://localhost:8501
. -
Use the sidebar to upload your CSV file and configure dashboard settings.
-
Explore different visualizations and insights provided by the dashboard.
Your CSV file should contain the following columns:
Date
: Transaction date (format: YYYY-MM-DD)Description
: Transaction descriptionDeposits
: Amount deposited (positive float)Withdrawals
: Amount withdrawn (positive float)Balance
: Account balance after transaction (float)
Example: Date,Description,Deposits,Withdrawals,Balance 2023-01-01,Salary,5000.00,0.00,5000.00 2023-01-02,Grocery Store,0.00,150.25,4849.75
main.py
: Main application filevisualization.py
: Data visualization functionsdata_processing.py
: Data preparation and processingutils.py
: Utility functionsmodel.py
: Machine learning modelsrequirements.txt
: List of Python dependenciesREADME.md
: Project documentation (this file)
Visualizes net cash flow (deposits minus withdrawals) on a monthly basis, helping users understand their overall financial health over time.
Allows users to set budget limits for different expense categories and visualizes actual spending against these limits, highlighting areas where spending exceeds the budget.
Utilizes the Isolation Forest algorithm to identify unusual transactions based on amount and frequency, helping users spot potential fraudulent activities or unexpected expenses.
Implements a simple linear regression model to forecast future spending based on historical patterns, aiding in financial planning.
Users can customize various aspects of the dashboard:
- Chart types (Line, Bar, Histogram)
- Date range for analysis
- Transaction categories to include/exclude
- Minimum and maximum transaction amounts to consider
- CSV Upload Issues: Ensure your CSV file matches the required format. Check for any extra commas or inconsistent date formats.
- Visualization Errors: Verify that your data contains valid numerical values for deposits and withdrawals.
- Performance Issues: For large datasets, try filtering the date range to a smaller period for faster processing.
Contributions to the Finance Analytics Dashboard are welcome! Please follow these steps:
- Fork the repository
- Create a new branch (
git checkout -b feature-branch
) - Make your changes and commit (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin feature-branch
) - Create a new Pull Request
For any queries or suggestions, please open an issue on the GitHub repository.