Retire.Simplified

How Retire.Simplified works

Retire.Simplified is built around one rule: one engine, one answer. Every screen, every tool and the AI assistant run the same year-by-year projection, so the app never gives two answers for the same household. The assistant’s job is to explain what the engine calculated, never to calculate on its own. This page is for anyone who wants to know what’s under the hood.

At a glance

One engine answers every screen; the assistant only explains it13 toolsplan inputsPlanYour plan, the odds,year-by-year ledgerImproveRanked moves withthe math shownAskQuestions answeredfrom tool resultsWeekly checkScheduled healthreport, by emailAssistant: Claude + 13 toolsReads the plan, runs the engine through toolsNever names investments; proposes, never changesShared rules in code, locked by testsOne projection engine, year by yearIncome, spending, healthcare and long-term care, RMDs, withdrawalsFederal and state tax with inflation-indexed thresholdsGrowth applied after withdrawals; liquid balance decides lasts-toEvery number traceable to a Ledger rowStress testReruns the engine across500 simulated markets andevery real sequencesince 1928Your browserPlan, scenarios and settings in localStorageA random device ID, no accountsServer, keyed by device IDChat history, health-check reports,email preference (DynamoDB)

Plan and Improve call the engine directly. Ask and the weekly check go through the assistant, which reaches the engine only through its tools. The stress test reruns the same engine; nothing else calculates.

The engine

The projection walks your plan one year at a time from today to your longevity age. Each year it:

  1. Brings in income. Salary while working; Social Security, pensions, annuities, rental and part-time income in retirement, each with its own start and end age and its own owner in a couple.
  2. Figures the spending. Base spending in phases (early, mid and late retirement), healthcare (an ACA bridge before 65, Medicare and IRMAA surcharges after), long-term care as a probability-weighted cost, and goals such as college.
  3. Takes required minimum distributions from tax-deferred accounts once you reach RMD age.
  4. Withdraws the gap from accounts in order (taxable, then tax-deferred, then Roth by default, or a bracket-fill strategy), grossing up for the tax the withdrawal itself creates.
  5. Computes taxes. Federal brackets, Social Security taxability, capital gains, NIIT, and state tax including retirement-income exemptions by state, with future-year thresholds indexed for inflation.
  6. Grows what’s left at your working or retired return, after the withdrawal, not before.

The output is the Ledger: a row per year showing every one of those lines, so any number on any screen can be traced to its row. Real estate and 529 balances are tracked but never counted as spendable, which is why “money lasts to” uses liquid balance only.

Stress testing

A single projection assumes markets return the same amount every year. They don’t, and the order of good and bad years matters more than the average. So the headline on the Plan screen is not one number but odds.

The Monte Carlo and backtest screens read these same results. There is no second, simplified engine.

The assistant

“Ask about your plan” is a language model (Claude) with a fixed set of 13 tools. The tools are thin wrappers around the engine’s own functions: read the plan, run the projection, get the odds, estimate taxes, compare scenarios, optimize Social Security claiming, model a Roth ladder, compare withdrawal orders, read plan history, and run a full ranked optimization.

Three design decisions follow from “one engine, one answer”:

The same model and the same rules also power the weekly health check, the quarterly review, the optimizer explanations and onboarding. The rules themselves are on What the assistant will and won’t do.

Guardrails in operation

How we know it’s right

Calculators disagree with each other, and a user can’t tell which to trust. So instead of claiming accuracy, the app shows its work.

What the engine does not model is also listed on How the math works, so you know where to be careful.

Stack and source

Next.js and React on AWS Amplify. Charts are hand-rolled SVG with no charting dependency. Server-side data (chat history, health-check reports, email preference) lives in DynamoDB, keyed by browser ID. The assistant runs on Claude through the Anthropic API. Email, when turned on, goes through Resend.

The whole thing is open source under the MIT license at github.com/keeplearnin/retirement-simplified-nextjs. The commit history is the real engineering log, including the bugs.

See also How the math works, How we check it, How it works and What the assistant will and won’t do.

Educational planning estimates, not financial advice.