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.2.tar.gz (144.2 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.2-py3-none-any.whl (80.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fintrack_cli-0.3.2.tar.gz
  • Upload date:
  • Size: 144.2 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.2.tar.gz
Algorithm Hash digest
SHA256 75503a2d1fd519460ec13108414427a298150cd741bc1a5567af9a7b3cb6bfe2
MD5 7e6e5101eda4a4f1d346d692adec6cd9
BLAKE2b-256 06ab02d6573123a0e44c484ad9bcd1a0f2842d46e0987957d369da45af41e029

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fintrack_cli-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 80.0 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a01265b468577ed7c61f3b424985cb9d83fddf862f1ee920aa100e248838d9ba
MD5 568648bb1d819eb4b0f6872ed1f31b59
BLAKE2b-256 88099ae6c1fc9177f1fa99f9fd5d38ec851d5f7ca34661837442c8e919274471

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