Skip to content

Repository files navigation

💸 Fin — your own personal finance dashboard

Turn your bank statements into a clean, private, multi-page finance dashboard — net worth, spending breakdown, a 12-month cash forecast, a sinking-fund plan, and document/renewal reminders. All local. Your data never leaves your machine. Built to be driven by Claude Code: drop in a statement, ask Claude to build it.

🇦🇪 UAE-aware out of the box. It already understands local nuances — Wio Spaces, DIB/ADIB WPS-salary + finance repayments, DEWA (incl. via DubaiNow), Empower cooling, Salik, Etisalat, Ejari, Mollak, the quarterly-rent sinking-fund pattern, and Emirates ID / visa / Mulkiya renewal cadences. See UAE-NOTES.md — your Claude reads it and picks up the whole playbook, so you don't start from scratch. (Works in any country too — just adapt the parser to your bank.)

![pages: Overview · Spending · Cash Flow · Net Worth & Plan · Renewals]

Try the sample (30 seconds)

Open sample/sample-dashboard.html in any browser — it's built from synthetic data so you can see exactly what you'll get.

Build your own — with Claude (recommended)

  1. git clone https://github.com/mpbharat/Fin.git && cd Fin
  2. Open the folder in Claude Code.
  3. Drop a bank statement (CSV/PDF) into statements/.
  4. Tell Claude: "Build my finance dashboard from my statement." Claude reads CLAUDE.md, adapts the parser to your bank, helps you fill in facts.json, and runs the pipeline. Done.

Build your own — manually

cp facts.example.json facts.json      # then edit with your numbers
# put your statement CSV(s) in statements/  (adjust COLUMN_ALIASES/CURRENCY in build_dashboard.py)
python3 build_dashboard.py             # statements → data.json
python3 finances_db.py init            # DB + your facts.json + transactions
python3 finances_db.py export          # → dashboard_data.json
python3 gen_html.py                    # → financial-dashboard.html
open financial-dashboard.html

How it's built

File Role
build_dashboard.py example statement parser → data.json (adapt to your bank)
finances_db.py SQLite store + tool (init / sync / correct / export / backup)
gen_html.py renders the self-contained dashboard from the data
facts.example.json template for your personal facts (loans, net worth, renewals…)
SCHEMA.md the data contract — what the dashboard needs
CLAUDE.md instructions Claude follows to onboard you

Privacy

This repo is code only. .gitignore blocks every data file — your database, statements, facts.json, and generated dashboard all stay local and untracked. Only the synthetic sample/ is committed. Never git add -f your own data.

Requirements

Python 3. pdftotext (poppler) only if your statements are PDFs. That's it.

Credits

Created by Bharat Sankar — built and battle-tested on real UAE finances, then genericised to share. Free and safe for personal use. Fork it, adapt it, make it yours.


Not affiliated with any bank. A personal planning tool — figures are your own estimates. No warranty; use at your own discretion.

About

Your own private, local personal-finance dashboard from bank statements — UAE-aware (Wio, DIB/ADIB, DEWA, Salik, Ejari, Mollak, EID/visa renewals) and driven by Claude Code. By Bharat Sankar · safe for personal use.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages