Problem
Most budgeting apps stop at showing you a list of transactions. The harder, more useful problem is turning a messy, real-time bank feed into something that tells you when to pay attention — a missed paycheck, a subscription that quietly went up, a budget about to blow — plus one honest read on whether your finances are improving. That's an engineering problem as much as a finance one.
Data
Live transaction, balance, and account data from real financial institutions via Plaid's Production environment, synced on a schedule and normalised through a TypeScript cleaning pipeline that resolves pending transactions, deduplicates, and maps merchants before anything reaches the UI.
Method
A React + TypeScript front end over an Express + Prisma API, with Clerk handling authentication and a node-cron job pulling fresh data daily. The core logic is a seven-detector alerts engine (large transactions, budget pace, low balance, missed paycheck, subscription price hikes, and more) and a transparent 0–100 financial-health score that weights distinct signals so the number is explainable, not a black box.
Finding
The app connects real bank data through a daily pipeline to seven alert detectors and an explainable health score.
The engineering signal is the point — authentication, a typed data pipeline, scheduled jobs, and a real third-party financial integration, end to end.
Recommendation
Make each alert and score component traceable to its underlying transactions so users can understand the signal and review categorisation errors. Prioritise sync reliability and access-control testing as the app grows.
Limitations and next steps
The health score reflects designed rules rather than a validated predictor of financial outcomes. Bank-feed delays and categorisation errors can affect alerts. Next steps are testing sync failures and account isolation, and validating demonstrations with synthetic transactions so they can be reviewed without personal banking data.