Data engineering · 2026
Where did it actually go?
Statements and card bills arrive as email. This ingests them, categorises the spend, tracks budgets and flags anomalies — and because it holds real financial records, it is behind auth and there are no screenshots of it here.
Nightly
ingestion
Cash-basis
wallet accounting
Built with
PythonSQLiteReactVercel
Wallets break accrual accounting
Money loaded into a payments wallet is not spent when it is loaded, and is not income when it is refunded. Treating wallet top-ups on a cash basis and only recognising the spend at the merchant was the difference between a budget that reconciled and one that double-counted.
Credentials first
The project began with an audit of which services could read that mailbox and with what scope, before a line of ingestion was written. A finance tool is a credential-handling tool that happens to draw charts.