Ghost in the Ledger: open-weight AI that finds the ghosts haunting your bank statement
Description and use
Ghost in the Ledger automatically detects hidden fees, subscriptions, and unusual spending in bank statements, presenting them as verified stories while ensuring data never leaves the user’s machine.
Problem
Users cannot easily identify hidden fees, subscriptions, late‑night spends, or rapid salary withdrawals in their bank statements.
Outcome
The app reliably identifies hidden costs and unusual spending patterns in bank statements, presenting them as verified stories while ensuring no financial data leaves the user’s machine.
Workflow
- Paste or upload a bank statement (PDF/CSV) or copy alerts
- The app parses the file, detects currency and date format
- Deterministic code identifies ghost patterns and extracts facts
- An open‑weight model (Gemma, Llama, gpt‑oss) rewrites each fact into a short story
- A guard validates that all numbers and dates are accurate and not fabricated
- If validation fails, a template story replaces the model output
- The user reviews the stories and can see the original transaction lines
- The app logs outbound requests and bytes sent for transparency
Evidence
Ghost in the Ledger takes a bank statement (PDF or CSV) or pasted alerts and SMS from almost any bank, in many currencies, and shows you the ghosts hiding in it
The model never decides what happened. It receives the facts of one finding plus a few example lines, and its only job is to rewrite them as a short story.
Every number must exist in the facts or the example lines. Spelled‑out numbers, k and million shortcuts, and vague amounts are refused.
Gemma 3 1B, local, on my laptop. The US demo with a one‑story limit took about 3 to 4 minutes for that single story, at roughly 2 tokens per second on 2 cores and almost no free memory.
- Record date: 2026-11-01T09:58:58.816Z