Monte Carlo Ledger
Monte Carlo Ledger is a local-first finance project focused on a more useful question than "what is my current balance?":
How much can I safely spend before my next paycheck, and how likely is that answer to hold up?
The project combines a ledger-first SQLite core, a deterministic cash-flow timeline, and a bounded Monte Carlo risk model. The result is a CLI and local API that feel practical to use while still reading like an intentional engineering project instead of a themed CRUD app.
Companion app: MonteCarloLedger-Android — deterministic bill pacing and AES-GCM encrypted backups on Android.
At a Glance
- Problem: most budget tools show balances, but not cash-flow fragility.
- Approach: model future income and bills on a real timeline, then stress-test that forecast.
- Surfaces: local CLI for day-to-day use and a local-only FastAPI surface for integrations.
- Engineering focus: integrity-first persistence, explicit migrations, package boundaries,
typed/linted quality gates, and regression coverage.
Why It Stands Out
- Ledger-first accounting: balance is derived from transactions, not treated as an editable
source of truth.
- Deterministic forecast first: recurring bills and income are merged into a real future
timeline before simulation happens.
- Probabilistic stress test second: the Monte Carlo layer measures how robust that forecast is
under bounded variance.
- Local-first by design: SQLite, no hosted dependencies, and a deliberately local-only API
surface.
- Engineering discipline: package layout, schema migrations, foreign-key enforcement,