Derek Blum / Runway
Live production app

Runway ✈️💰

A local-only Monte Carlo retirement simulator, built to answer one real question with numbers instead of fear: given my actual accounts, spending, and taxes, what's my probability of never running out of money - and what's the most I can safely spend per year?

5,000 sims
Monte Carlo paths, ~41 years each, in under 2 seconds
Real tax rules
federal brackets, state rules, Social Security claiming, all sourced & tested
RAG-grounded AI
an advisor that reads real results and answers from a reference library, not memory
Zero server DB
every plan lives in the browser's own IndexedDB - the backend forgets it instantly
9 tools, 1 writes
the AI's entire toolkit - 8 read-only, 1 gated write with an exact-match check
No invented numbers
every figure is pasted verbatim from the engine - the model narrates, it never computes

01The idea

This started after leaving a job, with the same question everyone in that position actually has: not "what's a 4% withdrawal rate," but "can I really do this, with my numbers, my accounts, my taxes?" Generic retirement calculators answer a generic person. This answers one household.

Spending is modeled as what you actually live on, after tax - the engine grosses up each withdrawal to cover the tax owed on it, so the number you enter is the number you spend, not a pre-tax abstraction. Guardrails cut spending automatically when a plan drifts off course, the same way a real financial plan would, never letting "success" mean anything less than covering essential, non-discretionary spending first.

02Architecture - correctness first, on purpose

Priorities, in order: correct, pretty, fast - deliberately in that order, because the entire point of the tool collapses if the math is wrong. Every tax and financial function's docstring states the rule and its source; a deterministic single-path engine exists purely as a readable reference the vectorized Monte Carlo engine is tested against, numerically, for exact equivalence.

What it's built with

React / Vite / TypeScript FastAPI numpy (the engine) Recharts Docker nginx GitHub Actions
Real, tested tax logic, not a rough approximation: IRS-indexed brackets and deductions grow with each simulated path's own realized inflation; Social Security claiming age rescales the benefit per SSA rules (70% at 62 up to 124% at 70); state-specific exemptions for Social Security, retirement distributions, and pensions are modeled explicitly, not guessed at.

03AI - an advisor on a very short leash

The math is never AI. The engine is pure NumPy and stdlib - deterministic, auditable line by line. The advisor is a separate layer on top: a RAG-grounded chat that reads the engine's already-computed output and, only with explicit consent, can propose one specific change back into the plan.

04Privacy - the one decision everything else follows from

A retirement plan is genuinely sensitive financial data. The simplest way to never leak it from a server is to never let it reach one.

There is no server-side database. Every plan lives in the browser's own IndexedDB and the backend forgets it the instant it responds. The one thing that is server-side is the advisor's own reference library - synthetic retirement-planning material, never a real household's numbers.