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 files with idempotent processing
- Expense Analysis: Compare actual spending against budget with variance analysis
- Historical Comparison: Track spending patterns with moving averages
- HTML Reports: Generate beautiful reports with progress visualization
- Flexible Periods: Support for day, week, month, quarter, year, or custom intervals
Key Concepts
FinTrack separates your finances into clear categories:
Gross Income
- Deductions (taxes, social security)
= Net Income
- Fixed Expenses (rent, utilities, subscriptions)
- Savings Target
= Disposable Income (money you can actually spend)
Installation
pip install fintrack-cli
Quick Start
1. Create a Workspace
fintrack init my_finances
cd my_finances
2. Create a Budget Plan
Edit plans/2024-12.yaml:
id: "december_2024"
valid_from: "2024-12-01"
gross_income: 5000.00
income_currency: "EUR"
deductions:
- name: "income_tax"
amount: 1000.00
- name: "social_security"
amount: 200.00
fixed_expenses:
- name: "rent"
amount: 800.00
category: "housing"
- name: "utilities"
amount: 150.00
category: "utilities"
savings_rate: 0.20 # 20% savings goal
savings_base: "net_income"
category_budgets:
- category: "housing"
amount: 800.00
is_fixed: true
- category: "food"
amount: 400.00
- category: "transport"
amount: 150.00
3. Import Transactions
Create a CSV file in transactions/:
date,amount,currency,category,description,is_savings,is_deduction,is_fixed
2024-12-01,-800.00,EUR,housing,Monthly rent,,,true
2024-12-02,-50.00,EUR,food,Groceries,,,
2024-12-10,5000.00,EUR,salary,December salary,,,
2024-12-10,-1000.00,EUR,tax,Income tax,,true,
2024-12-15,-500.00,EUR,savings,Monthly savings,true,,
Import:
fintrack import transactions/
4. Analyze Your Finances
# View budget projection
fintrack budget
# Quick status overview
fintrack status
# Detailed analysis with history
fintrack analyze
# Generate HTML report
fintrack report
Commands
| Command | Description |
|---|---|
fintrack init <name> |
Create a new workspace |
fintrack validate |
Validate configuration files |
fintrack import <path> |
Import transactions from CSV |
fintrack budget [--period] |
Show budget projection |
fintrack status [--period] |
Show current period status |
fintrack analyze [--period] |
Full analysis with comparisons |
fintrack report [--period] |
Generate HTML report |
fintrack list transactions |
List transactions |
fintrack list plans |
List budget plans |
fintrack list categories |
List categories |
Transaction Flags
is_fixed: Fixed/recurring expense (rent, subscriptions)is_savings: Money transferred to savingsis_deduction: Pre-income deduction (taxes)
Workspace Structure
my_finances/
├── workspace.yaml # Workspace configuration
├── plans/ # Budget plan files
│ └── 2024-12.yaml
├── rates.yaml # Exchange rates (optional)
├── transactions/ # CSV transaction files
│ └── december.csv
├── reports/ # Generated HTML reports
└── .cache/ # SQLite database
Development
# Clone repository
git clone https://github.com/alexeiveselov92/fintrack.git
cd fintrack
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
# Install in development mode
pip install -e ".[dev]"
# Run tests
pytest
# Run linting
ruff check fintrack
mypy fintrack
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.1.0.tar.gz.
File metadata
- Download URL: fintrack_cli-0.1.0.tar.gz
- Upload date:
- Size: 59.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b3fb3f5be515148069cd0a6821e8856b4e048163dee553a08d3fc61353cef7af
|
|
| MD5 |
e28118f202ba709f122950509160b311
|
|
| BLAKE2b-256 |
7f0567ac5dd87003c1a12ae8001530e84ccc446440e765adf4fd8b87fb6753ce
|
File details
Details for the file fintrack_cli-0.1.0-py3-none-any.whl.
File metadata
- Download URL: fintrack_cli-0.1.0-py3-none-any.whl
- Upload date:
- Size: 54.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
073063f19678fcf6f14c52d2573bf81412705ac6d5060d4699f7fc44eaed46d1
|
|
| MD5 |
f3a12c5f9d4f6fa0b4b8d060ff44b32f
|
|
| BLAKE2b-256 |
a33957c6050439c75bfbfc168322a6f75c803a6f5d0efc70dc3b34a1b6216ad0
|