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.3.tar.gz (150.6 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.3-py3-none-any.whl (86.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fintrack_cli-0.3.3.tar.gz
  • Upload date:
  • Size: 150.6 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.3.tar.gz
Algorithm Hash digest
SHA256 9417545711cd07fa143e5da72ff30eff240050e68d8c753a65bacf827a66b646
MD5 f6651ee10524e721a413f61ae933b2d6
BLAKE2b-256 c023e96a1ddf1a2c6ab60e2406235947eb2957d8e54162fe84b6c32dabcddff9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fintrack_cli-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 86.1 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3fe53736f3a0f63593fdce188b86a1382c60e9b44179b189d05d95754b3ed6a9
MD5 45040194e98bf8b905e23ea490451e6e
BLAKE2b-256 06febc7d4231db60282311ad3dd159415712a49bad25d0a5390206f416272a7e

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