FinanceAutomationTool is a personal finance dashboard built with Streamlit that empowers you to analyze, categorize, and visualize your bank transactions with full control and transparency. Unlike generic banking summaries, this tool lets you define your own categories and keyword rules, ensuring accurate and meaningful insights into your spending and income. This was built when I realised DBS AI categorization leaves close to 80% of my transactions completely uncategorized.
-
Custom Categorization:
Define your own categories and associate them with specific keywords or phrases. Transactions are automatically categorized based on matches in their reference fields. -
Interactive Editing:
Easily review, edit, and re-categorize transactions directly in the web UI. Add new categories or keywords on the fly. -
Keyword Management:
When you change a transaction's category, you can specify a keyword or phrase to associate with that category for future auto-categorization. -
Visual Analytics:
Instantly view your expenses and income with interactive pie and bar charts, as well as summary tables. -
Data Privacy:
All processing is done locally in your browser and on your machine. Your financial data never leaves your computer.
-
Upload CSV:
Upload your bank transaction CSV file (supports DBS format and similar). -
Automatic Cleaning:
The tool cleans and parses your file, handling common formatting issues. -
Categorization:
Transactions are categorized based on your defined rules (keywords/phrases in Ref1, Ref2, or Ref3). -
Review & Edit:
Use the interactive editor to review, correct, and further categorize your transactions. -
Visualize:
Explore your spending and income with summary tables and charts.
- Python 3.8+
- pip
-
Clone the repository:
git clone https://github.com/yourusername/FinanceAutomationTool.git cd FinanceAutomationTool -
Install dependencies:
pip install -r requirements.txt
streamlit run main.pyThe app will open in your browser at http://localhost:8501.
- Upload your transaction CSV file using the file uploader.
- Review and edit categories in the "Expenses (Debits)" tab.
- Add new categories or associate new keywords/phrases as needed. This is done by directly retagging the expense in the UI boxes, and optionally providing a matching keyword in the dialogue box below for saving.
- View summaries and charts for both expenses and income.
- Categories and keywords are saved in
categories.jsonlocally for all future sessions.
main.py— Main Streamlit application and ETL data pipelinecategories.json— Stores your custom categories and keywords (auto-generated).requirements.txt— Python dependencies.README.md— Project documentation..gitignore,.gitattributes,LICENSE— Project configuration and license.
- Keyword Matching:
Use specific keywords or phrases to avoid misclassification. Only transactions containing the exact keyword/phrase in Ref1, Ref2, or Ref3 will be auto-categorized. - Manual Cleanup:
Removing keywords from categories must be done manually incategories.json. - UI-Driven Workflow:
For best results, use the UI to categorize uncategorized transactions. Manual edits to categorized transactions require manual keyword management.
This project is licensed under the MIT License.
- Built with Streamlit, Pandas, and Plotly.
- Inspired by the need for more transparent and customizable personal finance tracking.
For questions, suggestions, or feedback, please open an issue or contact caleblyk12.