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 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:

  1. Overview - KPIs, Cash Reconciliation, Timeline charts
  2. Income & Expenses - Sankey diagram, Category Treemap
  3. Savings - Coverage Indicator, Savings vs Target
  4. Budget - Budget vs Actual progress bars with variance display
  5. 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/false or 1/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


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.3.16.tar.gz (151.0 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.3.16-py3-none-any.whl (84.6 kB view details)

Uploaded Python 3

File details

Details for the file fintrack_cli-0.3.16.tar.gz.

File metadata

  • Download URL: fintrack_cli-0.3.16.tar.gz
  • Upload date:
  • Size: 151.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for fintrack_cli-0.3.16.tar.gz
Algorithm Hash digest
SHA256 48be41186b96a540e53c3cb820370a9ee3573d101f09a4afd0b25bfb7c632fc1
MD5 f4491816efb9eaba0164e1254406ee59
BLAKE2b-256 8861e026a4f3cef859b2ca08dc2684ee1c513353c17eaf7ca9ab1fcbe92f6a06

See more details on using hashes here.

File details

Details for the file fintrack_cli-0.3.16-py3-none-any.whl.

File metadata

  • Download URL: fintrack_cli-0.3.16-py3-none-any.whl
  • Upload date:
  • Size: 84.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for fintrack_cli-0.3.16-py3-none-any.whl
Algorithm Hash digest
SHA256 8562ab438be4e94224ec083ff689d571c7b5e2e82c0450ef0339c442130226dd
MD5 e1f2aabab611ab58682bef172bca4f11
BLAKE2b-256 cca75be0ce795d8426aca1b6e4cf7761fc00e42e39f2b3b75c294aae6ea78e1b

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