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.5.tar.gz (148.9 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.5-py3-none-any.whl (83.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fintrack_cli-0.3.5.tar.gz
  • Upload date:
  • Size: 148.9 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.5.tar.gz
Algorithm Hash digest
SHA256 9e4a1b29f396b2605c08f2d7279ce13a8f5f70b1ffa8533597feb5d761259027
MD5 ad019ff2ecc5285006ee889776c12b0c
BLAKE2b-256 69e4523058d71c63a74d6f12f5e52cb33dfddeb6478b26899ba195367daaf808

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fintrack_cli-0.3.5-py3-none-any.whl
  • Upload date:
  • Size: 83.3 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 df3aaecee6033a01d776bc521bc1c7b22c1d885927edae520e49d5ded23ed953
MD5 031f27e83a5bb4398ccb811c02414307
BLAKE2b-256 06f5a3b41c82e2f94993127c6781389ffa6f3fc75b9f6f8ec01be41e98874d9e

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