Skip to main content

Personal Finance Tracker CLI - budget planning and expense analysis

Project description

FinTrack

Personal Finance Tracker CLI - Budget planning and expense analysis tool.

PyPI version Python 3.11+ License: MIT

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 savings
  • is_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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fintrack_cli-0.1.0.tar.gz (59.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fintrack_cli-0.1.0-py3-none-any.whl (54.1 kB view details)

Uploaded Python 3

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

Hashes for fintrack_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b3fb3f5be515148069cd0a6821e8856b4e048163dee553a08d3fc61353cef7af
MD5 e28118f202ba709f122950509160b311
BLAKE2b-256 7f0567ac5dd87003c1a12ae8001530e84ccc446440e765adf4fd8b87fb6753ce

See more details on using hashes here.

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

Hashes for fintrack_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 073063f19678fcf6f14c52d2573bf81412705ac6d5060d4699f7fc44eaed46d1
MD5 f3a12c5f9d4f6fa0b4b8d060ff44b32f
BLAKE2b-256 a33957c6050439c75bfbfc168322a6f75c803a6f5d0efc70dc3b34a1b6216ad0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page