How the projections are calculated, and the assumptions behind them.
The model runs year by year, from your current age through the later of the two life expectancies. Each year has two phases. While you’re working (accumulation), contributions are added to your accounts and balances grow. Once retired (decumulation), income sources and account withdrawals cover your spending. Every scenario is projected independently so they can be compared side by side.
Most dollar inputs — income, contributions, annual spending, Social Security, one-time expenses, and COLA-adjusted pensions — are entered in today’s dollars and inflated forward each year by your inflation assumption. Two deliberate exceptions are entered as the nominal amount in the year they occur: inheritances (enter what you expect to actually receive at that age) and flat Roth conversion amounts.
Today’s vs. future dollars. All calculations run in nominal (future) dollars, but by default results are displayedin today’s dollars — every value deflated by cumulative inflation — because “what could this buy today?” is the meaningful question over a multi-decade plan (and it matches how most planning tools report). A toggle above the results switches to nominal future dollars, which is useful for verifying year-by-year tax math against bracket thresholds.
Savings are tracked in three separate buckets, because each is taxed differently:
Tax-deferred and Roth accounts are individually owned (they matter for per-person RMDs and for the survivor rollover). The taxable account is treated as joint for a couple.
Each year the model stacks income the way the IRS does: wages, pension, RMDs, and any tax-deferred withdrawals are ordinary income; the taxable portion of Social Security is added on top; then the standard deduction is subtracted and federal brackets applied. Long-term capital gains from taxable-account sales are taxed separately. State income tax is applied at your state’s rate.
Social Security taxation follows the federal provisional-income rules, where up to 85% of benefits become taxable once combined income crosses fixed thresholds (these thresholds are not inflation-adjusted, by law).
RMDs are mandatory. Once an account owner reaches their RMD start age, the IRS requires a minimum withdrawal from tax-deferred accounts each year whether or not you need the money — and that withdrawal counts as taxable ordinary income. The model computes each person’s RMD on their own prior-year-end tax-deferred balance using the IRS Uniform Lifetime Table.
The RMD start age follows SECURE 2.0 and depends on birth year: age 72 for those born before 1951, 73 for 1951–1959, and 75 for 1960 and later. Because RMDs are forced, the tax-deferred bucket gets drawn down on this schedule regardless of your spending needs; RMD proceeds you don’t spend are reinvested into the taxable account.
Each year, income (wages, Social Security, pension, and any RMDs) is applied to your spending first. If there’s a surplus, it’s reinvested into the taxable account. If there’s a shortfall, the model draws from your accounts in tax-efficient order:
This is the conventional tax-efficient decumulation order. Note that because RMDs are mandatory, the tax-deferred bucket is still tapped on the RMD schedule even though it’s second in the discretionary order.
When the first spouse dies, the model reflects the real changes that follow:
You enter each person’s benefit at full retirement age (the number on your SSA statement). The model derives the benefit at any claiming age from 62 to 70 using the standard SSA factors — a reduction of 5/9 of 1% per month for the first 36 months claimed early and 5/12 of 1% per month beyond that, and delayed credits of 2/3 of 1% per month (8% per year) past full retirement age up to 70. For someone with a full retirement age of 67, that means roughly 70% of the FRA benefit at 62 and 124% at 70. Full retirement age itself follows the SSA schedule by birth year.
The claiming optimizer tests every claiming age (and every pair, for couples) against the Monte Carlo simulation and ranks the combinations by the probability your money lasts. Because the survivor model keeps the larger benefit after the first death, the optimizer naturally reflects the value of the higher earner delaying — jointly with portfolio longevity, rather than maximizing lifetime benefits in isolation.
Each scenario can include a Roth-conversion strategy: converting tax-deferred dollars to Roth during a chosen age window, either as a flat annual amount or by filling a tax bracket— converting just enough each year to reach the top of a target bracket (the interaction with Social Security taxation is solved iteratively). Converted amounts are taxed as ordinary income in the year of conversion; that tax flows through the year’s cash flow, so it is effectively paid from the taxable account first.
The conversion optimizer searches fill-bracket and flat strategies across age windows and ranks them by after-tax ending wealth— ending assets minus the embedded tax on whatever remains in tax-deferred accounts (a $1M traditional IRA is not worth $1M; a slice belongs to the IRS). Because the projection models RMDs, IRMAA’s two-year lookback, and the survivor filing-status cliff, the ranking penalizes conversions that trigger Medicare surcharges and captures the value of converting while both spouses are alive at joint rates. Success probability is deliberately not the ranking metric: conversions are a tax-efficiency decision and barely move portfolio-longevity odds.
For a dedicated conversion-first analysis, our companion tool at rothconversion.app goes deeper on the conversion decision itself.
For each person on Medicare (65+), the model assesses IRMAA — the income-related surcharge added to Part B and Part D premiums. IRMAA has a defining quirk: the surcharge in a given year is set by your MAGI from two years earlier, so a large Roth conversion or withdrawal today creates a Medicare bill two years from now. The model tracks that lookback year by year, applies the current tier thresholds (inflated forward) for your filing status, and doubles the surcharge when both spouses are enrolled.
Only the surcharge is modeled — base Medicare premiums are assumed to be part of your annual spending. Note the survivor effect: single-filer IRMAA thresholds are half the married ones, so a surviving spouse can hit surcharge tiers on half the income — on top of the single-filer tax brackets.
Pensions can start at any age, optionally adjust with inflation, and carry a survivor percentage. An inheritance is modeled as a lump sum arriving at a chosen age and deposited into the taxable account — entered as the amount you expect to actually receive at that time (no inflation adjustment is applied to it). One-time expenses (a new roof, a car, a wedding) are entered in today’s dollars and inflated to the year they occur. State relocation switches your state tax rate at a chosen age.
The deterministic projection uses a fixed return every year. The Monte Carlo simulation instead draws a random return each year from a lognormal distribution whose average equals your expected return and whose spread is set by your volatility assumption. It runs many such paths (the app uses hundreds) and measures how often the portfolio stays solvent through the end of the plan.
Because each path applies returns year by year, this captures sequence-of-returns risk — the reality that a bad stretch early in retirement is far more damaging than the same stretch later. Results are reported as a probability of success, a range of ending balances, and a percentile band of assets over time. The simulation is seeded, so the same inputs always produce the same numbers.
Choosing a volatility. Most people have a feel for a target return but less sense of how much returns swing year to year — and volatility is the input that drives the probability of success. As a guide, the approximate annualized volatility of common stock/bond mixes, based on long-run U.S. historical data:
| Allocation | Typical volatility |
|---|---|
| 100% stocks | ~15–18% |
| 80% stocks / 20% bonds | ~12–13% |
| 60% stocks / 40% bonds | ~9–11% |
| 40% stocks / 60% bonds | ~7–8% |
| Mostly bonds | ~4–6% |
Approximations from long-run U.S. market history; any given decade can differ meaningfully. The model currently applies one volatility across both phases — if you de-risk in retirement, consider a value between your working-years and retirement allocations.
Why the Monte Carlo median is lower than the steady-return charts. You may notice the steady-return projection ends higher than the Monte Carlo median, even though both use the same expected return. That is not a bug — it is volatility drag. Applying the average return every single year overstates the typical outcome: when returns vary, a down year does more damage to compounding than an equal up year repairs (a −20% year followed by +20% leaves you at 96%, not 100%). So while the steady-return line approximates the averageacross all paths, the median path — the one where half of outcomes do better and half do worse — lands below it, and the gap widens with higher volatility and longer horizons. This is exactly why the Monte Carlo view exists: the smooth line is a useful baseline, but the probability of success is the more honest answer to “will my money last?”
This is a planning tool, not a tax engine. Some deliberate simplifications:
Tax laws, brackets, and rates change over time. Projections are estimates based on your assumptions and simplified modeling — always verify against current IRS guidance and consult a qualified tax or financial professional before making decisions.
© 2026 Horyzen LLC. All rights reserved.