Your money, visualised
Upload your ledger CSV or explore
with a realistic sample dataset
📄
Drop your ledger.csv here
or click to browse · output of pdf_to_ledger.py
or

🔒  Your data never leaves your browser

Required CSV columns
date month amount description category merchant account_type
How it works
1
Store your PDFs
Place your FNB bank statement PDFs — credit card and/or savings account — into the Bank Statements/ folder.
2
Run the parser
A custom Python parser uses pdfplumber to extract transaction tables from each PDF, handling both credit card and cheque account layouts.
python pdf_to_ledger.py
3
Auto-categorise
Transactions are matched against 30+ regex rules covering SA merchants — grocers, petrol stations, restaurants, subscriptions. A merchant map preserves manual edits across runs.
4
Deduplicate & consolidate
All statements are merged into a single ledger.csv. A transaction ID prevents duplicates when you re-run after adding new PDFs.
5
Upload & visualise
Drop the ledger.csv here. The dashboard renders instantly — all processing happens in your browser, nothing is uploaded.
See the pipeline in action
Terminal — pdf_to_ledger.py
$ python pdf_to_ledger.py
Under the hood
pdf_parser.py
Detects statement type (credit vs savings), extracts transaction tables using coordinate-based PDF parsing, assigns transaction dates with cross-year logic, and cleans merchant names.
pdf_to_ledger.py
Orchestrates the pipeline: discovers PDFs recursively, applies 30+ regex categorisation rules, merges with existing ledger preserving manual edits, rebuilds the merchant map.
merchant_map.csv
Persistent lookup table mapping merchant names to categories. Manual corrections made in the dashboard are exported and feed back into the next pipeline run — the system learns over time.
📊
Interactive charts
Monthly cashflow, category breakdown, cumulative net position
🏷️
Smart categories
Auto-categorised by regex rules, editable inline per transaction
🎯
Budget tracking
Set monthly targets per category, track actual vs budget
Finance Tracker
Unsaved changes
Period
Set monthly budget targets on the
Monthly cashflow
Income vs spend by month
Net shown as line overlay
Where the money goes
Spend by category
Sorted by total spend · selected period
Top merchants
Highest spend in selected period
Patterns & position
Needs / Wants / Savings split
% of monthly spend · 50/30/20 benchmark
Cumulative net position
Running total over selected period
Date Description Merchant Category Account Amount File
💡 Type a budget amount into any category card below, then click Save budgets. The chart will show actual vs budget for the selected month. Budgets are saved in your browser automatically.
Compare month
Budget vs Actual