Personal Finance Tracker CLI - budget planning and expense analysis
Project description
FinTrack
Personal Finance Tracker CLI - Budget planning and expense analysis tool.
Features
- Budget Planning: Define income, deductions, fixed expenses, and savings goals
- Transaction Import: Import transactions from CSV with idempotent processing
- Interactive Dashboard: 5-tab HTML dashboard with Plotly charts and range sliders
- Dark/Light Theme: Toggle dashboard theme in workspace configuration
- All-Periods View: Single dashboard with period switcher dropdown
- Savings Coverage: Track if available funds can cover savings gaps
- Expense Analysis: Compare spending against budget with variance analysis
- Flexible Periods: Support for day, week, month, quarter, year, or custom intervals
Installation
pip install fintrack-cli
Quick Start
# Create workspace
fintrack init my_finances
cd my_finances
# Create budget plan in plans/2024-12.yaml
# Import transactions from transactions/*.csv
fintrack import
# View status and generate dashboard
fintrack status
fintrack report
See Quick Start Guide for detailed steps.
Key Concepts
Gross Income
- Deductions (taxes, social security)
= Net Income
- Fixed Expenses (rent, utilities, subscriptions)
- Savings Target
= Disposable Income (money you can actually spend)
Transaction Flags:
is_deduction: Pre-income deductions (taxes)is_fixed: Fixed/recurring expenses (rent)is_savings: Savings transfers
Commands
| Command | Description |
|---|---|
fintrack init <name> |
Create new workspace |
fintrack validate |
Validate configuration |
fintrack import [path] |
Import CSV transactions |
fintrack budget |
Show budget projection |
fintrack status |
Quick spending overview |
fintrack analyze |
Full analysis with history |
fintrack report |
Generate HTML dashboard |
fintrack list <type> |
List transactions/plans/categories |
Dashboard
fintrack report generates an interactive HTML dashboard with 5 tabs:
- Overview - KPIs, Cash Reconciliation, Timeline charts
- Income & Expenses - Sankey diagram, Category Treemap
- Savings - Coverage Indicator, Savings vs Target
- Budget - Budget vs Actual progress bars with variance display
- Transactions - Filterable table with totals and CSV export
Dashboard Options
# Generate dashboard for current period
fintrack report
# Generate dashboard for specific period
fintrack report --period 2024-11
# Generate all-periods dashboard with period switcher
fintrack report --all
The --all flag creates a single HTML file with a dropdown to switch between all periods.
Dark Theme
Add theme: "dark" to your workspace.yaml:
name: my_finances
base_currency: EUR
interval: month
theme: dark # Options: light (default), dark
Then regenerate the dashboard: fintrack report
See Dashboard Guide for details.
Documentation
CSV Format
date,amount,category,description,is_savings,is_deduction,is_fixed
2024-12-01,5000.00,salary,Monthly salary,,,
2024-12-01,-1000.00,tax,Income tax,,true,
2024-12-01,-800.00,housing,Rent,,,true
2024-12-10,-500.00,savings,Savings transfer,true,,
2024-12-15,-45.00,food,Groceries,,,
Notes:
- All amounts in workspace
base_currency - Positive = income, Negative = expense
- Boolean flags:
true/falseor1/0
Budget Plan Example
id: "december_2024"
valid_from: "2024-12-01"
gross_income: 5000.00
deductions:
- name: "income_tax"
amount: 1000.00
fixed_expenses:
- name: "rent"
amount: 800.00
category: "housing"
savings_rate: 0.20
savings_base: "net_income"
category_budgets:
- category: "food"
amount: 400.00
Development
git clone https://github.com/alexeiveselov92/fintrack.git
cd fintrack
pip install -e ".[dev]"
pytest
License
MIT License - see LICENSE file.
Author
Alexei Veselov (@alexeiveselov92)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fintrack_cli-0.3.19.tar.gz.
File metadata
- Download URL: fintrack_cli-0.3.19.tar.gz
- Upload date:
- Size: 151.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d73eecafe9b029e7f3e18345ed2dfc6d32ebcc4baf4acbf95236a908479c571c
|
|
| MD5 |
ead031fca76a017a5a89eadaf65826b2
|
|
| BLAKE2b-256 |
fb596feba1f18b4a5f494ed587327bfd5bbb898c9602618bb51ce34435d91fb7
|
File details
Details for the file fintrack_cli-0.3.19-py3-none-any.whl.
File metadata
- Download URL: fintrack_cli-0.3.19-py3-none-any.whl
- Upload date:
- Size: 85.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5fccae5db43e3cd72fad5bce378e0f1d0ac317cacba0f77989802e42821b9214
|
|
| MD5 |
29cdabeb1cd787393fecd0e8fb47310c
|
|
| BLAKE2b-256 |
35bb6116e59351cc4fcfba2dca6d931c300ab14aa5f3c54fb2012f3a7ef486f6
|