Analyze bank transactions, categorize spending, track monthly budgets, detect overspending and anomalies. Outputs interactive HTML report.
Analyze transactions, categorize spending, track budgets, flag overspending.
Ask user for bank/card CSV export OR pasted text.
Common sources:
Supported formats:
Read input, normalize to standard format:
For each transaction, assign category:
Categories:
Categorization order:
For ambiguous merchants (batch of 5-10), ask user to confirm. Save overrides for future runs.
Compare spending against user-defined budgets.
Alert thresholds:
See budget-templates.md for suggested budgets.
Flag unusual spending:
Baseline = previous 3 months average (or current month if no history).
Create local HTML file with:
Copy template.html and inject data.
Persist to ~/.watch_my_money/:
state.json - budgets, merchant overrides, historyreports/YYYY-MM.json - machine-readable monthly datareports/YYYY-MM.html - interactive report# Analyze CSV
python -m watch_my_money analyze --csv path/to/file.csv --month 2026-01
# Analyze from stdin
cat transactions.txt | python -m watch_my_money analyze --stdin --month 2026-01 --default-currency CHF
# Compare months
python -m watch_my_money compare --months 2026-01 2025-12
# Set budget
python -m watch_my_money set-budget --category groceries --amount 500 --currency CHF
# View budgets
python -m watch_my_money budgets
# Export month data
python -m watch_my_money export --month 2026-01 --out summary.json
# Reset all state
python -m watch_my_money reset-state
Console shows:
Files written:
~/.watch_my_money/state.json~/.watch_my_money/reports/2026-01.json~/.watch_my_money/reports/2026-01.htmlAll data stays local. No network calls. No external APIs.
Transaction data is analyzed locally and stored only in ~/.watch_my_money/.