The What If Lab: A Complete Guide
The What If lab lets you compose an entire alternate retirement — a career break, a smaller home, a spending guardrail — and see what it does to your odds, without ever touching your real plan.
Every number your Ledger shows today is your canonical plan — the one saved to your account, the one every other page reads from. The What If lab, at /whatif, is a separate workspace where you build a full alternate version of your future — one or many life events, a spending guardrail, a savings order, proposed account moves — and run it through the same simulation engine your Ledger uses, without any of it ever landing on your Ledger. This guide covers everything the lab can model, how each piece actually works under the hood, and where its honest limits are.
An independent viewpoint, not a plan edit
Everything you build in the What If lab is an independent viewpoint. RetireOdds stores it separately from the confirmed financial facts that feed your Ledger. Saving a draft preserves an editable idea; saving a comparison freezes that idea for a side-by-side simulation. Neither action applies a transaction or rewrites your plan, and there is no "Apply" button in the lab.
This boundary is enforced below the screen as well as explained in the interface: draft and comparison data is rejected by the Ledger's financial-input path. That keeps an exploratory home purchase, career break, transfer, or spending rule from quietly becoming a real balance, liability, expense, or plan setting.
Two ways to ask "what if"
RetireOdds actually has two different what-if tools, built for two different jobs. Reach for the right one.
The Ledger's one-lever preview ("Test assumptions")
From the Ledger itself, "Test assumptions" opens a lightweight, temporary preview: pick a single lever — one input, like your withdrawal strategy or spend — enter a new value, and the whole Ledger recalculates as a scenario. Every affected cell shows the new value with the baseline struck through beneath it and a colored up-or-down dollar change. Click into any cell during a preview and its trace gains a "What changed" panel comparing baseline and scenario math side by side. If the lever affects market-path outcomes, a comparison section shows plan success, ending-balance range, after-tax wealth, and median spend for baseline vs. scenario.
The defining constraint: only one lever at a time — the server rejects a request that tries to combine two — and nothing is saved. Closing the preview (the × next to the what-if control) snaps the Ledger back to your saved plan exactly as it was.
The What If lab
The lab is for the opposite case: when you want to combine several changes into one coherent story — a career break and a smaller home and a spending guardrail — and keep it around to compare against your baseline (and against other scenarios) later. You compose it across five tabs, save it, and it becomes a named plan on the Compare Plans page.
Tour the lab: five tabs
The lab is organized into five tabs — Life events, Milestones, Spending flex, Savings order, and Transfers — each backed by its own data contract and, where relevant, its own calculation. All five feed the same isolated simulation run when you save the scenario.
Life events
This tab covers six event cards, but they resolve to a small number of underlying kinds: a general cash flow (one-time, monthly, quarterly, or annual, with an explicit tax treatment for any inflow — ordinary income or after-tax cash), a home and mortgage (purchase price, down payment, closing costs, an optional linked fixed-rate mortgage, and an optional later sale), a career break for either person (a wage reduction, an incremental expense, and a benefits cost, each an annual rate over a monthly-cadence window), and a dependent with an optional college window (a separate annual cost over a chosen number of years, kept apart from healthcare spending). "Windfall" and "vehicle purchase" aren't separate model types — they're presets over the same cash-flow event, one dated inflow and one dated outflow.
- A home purchase and any linked sale each require a once cadence; a linked mortgage's first payment requires a monthly cadence.
- A career break's wage/expense/benefit window also requires a monthly cadence.
- A college plan's annual cost requires an annual cadence and runs for 1–8 years.
- A cash-flow event can start on a fixed month offset, a calendar month, or a number of months relative to a milestone.
Month-level proration is the mechanism that makes exact dates matter. RetireOdds' simulation engine works in whole calendar years, so the compiler that turns your entered events into simulation inputs clips every event to the plan's year boundaries and scales it by how many months of that year it was actually active. A recurring rate (like a career break's annual wage reduction) is prorated as amount × activeMonths ÷ 12 for each calendar year it touches. A per-occurrence amount (like a monthly cash flow) is instead counted by how many payments actually land inside that clipped window — so a monthly expense that starts in October only contributes three months' worth to its first calendar year, not a full year.
Housing math has real, disclosed simplifications worth knowing: a home's value is held flat at its purchase-day real price with no interim appreciation until an explicit sale, mortgage payments use standard fixed-rate monthly amortization at a nominal rate, and a sale's net cash is calculated before any unentered home-sale income or capital-gains tax. Dependents model support costs only — they don't recompute your household's tax filing status or ACA subsidy eligibility.
Milestones
A milestone is a named date you can anchor other events to. Under the hood, every milestone (and event) can carry a condition — a binding sourced from a profile value, an account, another milestone, another event, or a fixed constant, tested with an operator like equals, greater-than, or truthy/falsy. The lab's Milestones tab uses this in its simplest form: a milestone you can switch on or off, letting you build out a whole branch of a scenario — a set of events anchored to "if I take the break" — and toggle the entire branch without deleting anything.
The tab also shows your Ledger's retirement date, Social Security start, and (if set) pension start as reference points you can turn into event anchors — but doing so only creates a scenario anchor prefilled with that date. It never edits your actual retirement age, claiming age, or pension data. A milestone only ever shifts when something happens in the scenario; it has no amount of its own.
Spending flex
This tab defines a discretionary-spending guardrail: how much of your annual spend is discretionary, the maximum percentage you're willing to cut, a dollar floor below which discretionary spending never falls, and a rule that watches one metric — funded ratio, drawdown from peak, or months of liquid coverage — with separate activate and release thresholds so a single choppy year doesn't flip the guardrail on and off. (The contract supports several rules combined by taking the single largest active cut rather than stacking them; the lab's form configures one primary guardrail.)
The guardrail is deliberately evidence-limited: it can only look at the prior year's portfolio metrics, never the year currently being calculated, precisely so it can't create a circular "spend depends on spend" calculation. Four categories are never touched by this rule at all — essential spending excluding healthcare, healthcare itself, debt service, and college costs — only the discretionary slice can shrink, and never below your chosen floor. And it changes only this scenario's projected years: it never rewrites your canonical spending baseline or the Ledger.
Savings order
This tab lets you define the priority order your annual saving flows through: a cash-reserve target, mandatory debt minimums, employer 401(k)/403(b) match, extra debt paydown, tax-advantaged account contributions up to their remaining caps, and finally taxable overflow. Reserve target and debt minimums are fixed at the front of the order (debt minimums can never be pushed behind a discretionary step); everything after that follows the sequence you and the tool configure.
To compute an allocation, the policy needs real inputs: after-tax cash available this year, pre-tax deferral capacity, your current cash reserve and its target, each debt's balance/minimum payment/rate, each account's remaining annual contribution cap, and any employer-match terms (match rate, compensation limit, remaining employer dollar cap). If your plan has neither accounts nor liabilities, the tab explains what is missing and links you to add them rather than presenting an empty waterfall. With liabilities but no accounts, debt steps remain available while contribution routing is clearly marked unavailable.
The waterfall is solved when the scenario runs, and its computed dollars replace the saving channels for only the very first forward year of the scenario (and only if that year is still a working year) — it isn't re-solved for every subsequent year of the projection. Named accounts stay receipt metadata; the underlying simulation still projects your authoritative aggregate tax-bucket balances, not per-account balances.
Transfers
The Transfers tab proposes moves between accounts: a same-tax-bucket transfer (moving money between two accounts that share a tax character — say, two taxable brokerage accounts) or a Roth conversion (moving pre-tax, tax-deferred money into a tax-free bucket). The tab picks automatically between the two based on the source and destination account's tax bucket. A transfer needs at least two real accounts; with fewer, the tab links to Portfolio instead of showing unusable source and destination menus. It also holds two cash-reserve fields — your current reserve and its target — which remain usable on their own.
A same-bucket transfer has no projection effect — it's neutral receipt context, since your aggregate tax-bucket totals don't change. A Roth conversion is different: it has a real modeled tax consequence, so it's scheduled in the first projected year of the scenario and handed to the same source-aware tax engine your Ledger uses, which prices the ordinary income it creates. These are proposals, not transactions — they never write an account balance, and this contract in particular is built so that transfer proposals can never become a canonical Ledger mutation; they lack the per-account cost basis, IRA basis, and lot-level detail a real transaction would need.
Saving and comparing
As you build, the live "Scenario summary" shows counts of events, milestones, and policies plus a suggested name drawn from what you've entered. Use Save draft to preserve the editable bundle without running a comparison. When you're ready, Save and compare saves the current draft, freezes it into a scenario snapshot, runs the full simulation, and adds it as a named plan on Compare Plans. If your base plan is still incomplete, you can keep authoring and save the draft, but comparison stays disabled so RetireOdds never measures your idea against sample assumptions.
The fairness property that makes comparison meaningful: every saved scenario — your baseline and every what-if — is simulated against the same seeded sequence of market returns. Differences in the numbers you see on Compare Plans reflect the decisions you modeled, not a lucky or unlucky random draw. The comparison is a frozen snapshot, while your separately saved draft remains the place to continue editing the idea.
A worked workflow (illustrative)
Say you want to see what happens if you take a career break at 52 and add a spending guardrail for bad years. All figures below are illustrative, not a recommendation.
- Open the Life events tab and add a career break for yourself starting at age 52, ending at 53½ — an annual wage reduction, plus a modest incremental-expense and benefits-cost estimate for the gap in employer coverage.
- Switch to Milestones if you want to anchor other events (say, a smaller home purchase a few years later) to "when the break ends" instead of a fixed date, so the whole story stays consistent if you nudge the break's length.
- Open Spending flex and set a guardrail: activate a cut if the funded ratio dips to 80%, release it once it recovers past 90%, cap the cut at 15% of discretionary spending, and set a dollar floor you're not willing to go below.
- Name the scenario, then click Save and compare.
- On Compare Plans, read this scenario's chance of success and ending-balance range side by side with your baseline — same market paths, so the gap is the break and the guardrail, not luck.
Honest limits
Every claim above is checked against what the underlying contracts and running code actually do. A few limits worth knowing before you build:
- Nothing here reaches your Ledger today. The lab has no "Apply" action; drafts and comparisons remain isolated viewpoints that the Ledger refuses as financial inputs.
- Home and career-break events never fully post to a plan even in principle — the underlying contract explicitly keeps them preview-only because they don't yet post a linked asset/liability or recompute payroll, deferrals, and tax as one atomic unit.
- A Roth conversion or savings-order allocation only affects the first projected year of the scenario, not every future year — they aren't re-solved annually.
- Transfer proposals can never become a real transaction through this feature; they're aggregate-bucket estimates, not account-level moves with cost basis and lot detail.
- Spending flex only ever sees last year's evidence — it cannot react to the same year's own withdrawals or taxes.
- Home appreciation isn't modeled between purchase and an explicit sale, and a sale's proceeds are shown before any unentered home-sale tax.
- Dependents affect spending only — adding one doesn't recompute your tax filing status or ACA subsidy.
Next steps
If a scenario changes your Roth conversion or savings picture, the Roth conversion guide and the underlying tax analytics guide explain how those numbers are actually priced. If a career break or guardrail touches your health coverage before Medicare, see the healthcare guide. And to understand what "chance of success" and the P10/P50/P90 range actually mean once you're comparing scenarios, read why Monte Carlo beats a single average return and sequence-of-returns risk — the reason a guardrail in a bad early year matters more than the same cut later.
Key takeaways
- The What If lab runs as an independent viewpoint: saving a draft or comparison never reaches your Ledger; only a separately confirmed financial action changes your real plan.
- Use the Ledger's "Test assumptions" for a quick, single-lever, unsaved preview; use the What If lab when you want to combine several changes into one saved, comparable scenario.
- Five tabs — Life events, Milestones, Spending flex, Savings order, Transfers — each map to a real, checked data contract; exact months are prorated into the annual engine by active-months-over-12, which is why precise dates matter.
- Spending flex only ever reads last year's evidence and never touches healthcare, debt service, college, or the canonical spending baseline. Savings order and Roth conversions are solved for the first projected year only, not every future year.
- Saved scenarios are compared on identical seeded market paths, so differences on Compare Plans reflect your decisions, not random luck.