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

Uploaded Python 3

File details

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

File metadata

  • Download URL: fintrack_cli-0.3.6.tar.gz
  • Upload date:
  • Size: 149.3 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.6.tar.gz
Algorithm Hash digest
SHA256 af7c05c3d0124d77289f5eb2e61dfa80a7fbc3deb9b6ec5f59a0308038b2a9e2
MD5 f61be32c5d1e18d8a060b63c547956c8
BLAKE2b-256 35b6aa0d4096614834222206e1ffcf96195b5afd4b2c8b0c82c8097a32936dd0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fintrack_cli-0.3.6-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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 49fe4d6f3c7e697afc859f6adb01df1d8a0cd3cd8077dcba95bd965467347281
MD5 48914a7c9f47e7855738673517184ecd
BLAKE2b-256 3f27f40616e989eb9e5c8520dfc6d15d0c5bc68c12407b96098afba25908c3f7

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