Problem
The usual retirement calculator asks for four numbers and returns one. The interesting part is exactly what it throws away: taxes, debt payoffs falling off, college years, the pre-Medicare healthcare gap, and required distributions forcing money out at 75. I wanted a planner that kept all of that, ran on my own machine, and showed its working, so I could argue with it instead of trusting it.
Constraints
- Local-first. No account, no server, no network calls. Balances live in the browser they were typed into.
- Real numbers never ship. My own profile is gitignored, and the production build refuses to run while it exists.
- Not financial advice. Every rule of thumb shows its math, and choosing products stays out of scope.
Design decisions
Solve for the age, not the balance
Most calculators answer “will I have enough?” with one balance at 65. Fiscal Compass answers the question people actually ask: the earliest age that still funds every year, across 1,000 simulated market histories, clearing an 85% bar.
Passed on · a single projected balance.

Show the math
Every insight card names the guideline it measures against and shows the numbers behind it, so you can disagree on the merits. A tool that only reports problems trains you to ignore it, so the cards affirm good calls too. Not overpaying a 3% mortgage gets said out loud.
Passed on · a score or a traffic light.

Stress tests, because worry is specific
The Monte Carlo says how often a plan works. Stress tests answer the question people lie awake with: what if this particular bad thing happens? A lost decade, a crash the year you retire, stagflation, a year out of work.
Passed on · asking people to read a probability distribution.

Two inflation rates
Official CPI indexes the tax code. It doesn’t index groceries. Tracking the two separately shows the squeeze one rate hides, and over fifty years a one-point gap is a different retirement.
Passed on · one inflation slider for everything.
Build notes
React 18, Vite and TypeScript, with Mantine components and CSS Modules. The projection engine is plain functions over the plan, so every screen, the Monte Carlo and the stress tests run the same arithmetic. Data lives in IndexedDB on the device, and the spending import reads bank CSVs in the browser without uploading them.
A Vitest suite of 234 tests across 10 files covers the tax engine, the projection and each insight rule. The one I’d point to guards frozen raises. A review found that a year out of work never froze a salary quoted as a premium over inflation, so pay came back as if nothing had happened: $301,575 instead of $281,388 on the sample household, and the raise-freeze insight priced a lost raise at $0. A test now fails on the old code.
Outcome
Live at fiscal-compass.nineafterten.com with a fictional sample household, so anyone can try it without typing in a thing. I learned to trust my own read of my situation. The first answer on paying off a loan early was sound in general and wrong for my household, and the plan is better because I argued the point.
What’s next
Roth conversions modeled year by year, IRMAA surcharges, state graduated brackets, and a glide path that de-risks the portfolio as retirement gets close.
