Methodology
How our retirement engine works
Most planning tools treat their math as a black box. Ours is the product — so here is the full methodology: every assumption, every simplification, and what the results do and don't mean.
Published August 2026 · By the UltimateCRM team
The question it answers
The engine answers one question with honest uncertainty attached: "If this household retires on this plan, what fraction of plausible market futures does the money outlast?" It models the whole lifecycle — accumulate until retirement, then draw an inflating spending stream, net of Social Security and pensions, through each spouse's planning horizon — and reports how many futures fail.
The simulation core
- 5,000 market paths per run, simulated in annual steps (cashflows, taxes, and RMDs are inherently annual events).
- Log-normal return shocks, normalized so the expected shock is 1 — which means at zero volatility every path collapses to the same deterministic drawdown. That keeps the median band consistent with a point estimate and makes the math independently checkable.
- Risk bands map a household's risk tolerance to capital-market assumptions: Conservative (4.5% expected return, 7% volatility), Moderate (6.0%, 12%), Aggressive (7.5%, 17%). Firms can override these in settings.
- A retirement glidepath (on by default) de-risks after retirement: expected return drops by one percentage point and volatility scales to 75% — retirees rarely hold their accumulation portfolio.
- Inflation defaults to 2.5% and inflates spending, tax brackets, and deductions alike; results can be displayed in today's dollars.
Taxes are modeled, not hand-waved
Withdrawal math without taxes flatters every plan. Each simulated year computes federal tax using the actual bracket tables (currently the 2026 tables from IRS Rev. Proc. 2025-32, inflated along the plan), the standard deduction, and a three-bucket withdrawal model:
- Taxable accounts first — a configurable fraction of each withdrawal is treated as realized gain, taxed at a flat long-term capital-gains rate (15% in the engine; the planning hub models the full 0/15/20% brackets).
- Tax-deferred next — withdrawals are ordinary income, and the deferred bucket is split per spouse, so RMDs apply to each person's own balance at their own age.
- Roth last — tax-free.
- Social Security is taxed at the simplified 85%-includable rate; an optional flat state tax applies to ordinary income and gains.
RMDs and the widow's penalty
Required minimum distributions start at age 73 using the IRS Uniform Lifetime Table, forced from each spouse's own deferred balance even when the plan doesn't need the cash. At the first death, the survivor inherits the deceased's deferred balance (spousal rollover), keeps the larger of the two Social Security benefits, receives a configurable fraction of any pension, scales spending to a survivor percentage — and, crucially, switches from married-filing-jointly to single brackets. That "widow's penalty" is a real and routinely ignored risk; the engine models it by default (and lets you toggle it to see its isolated effect).
Guardrails: modeling what retirees actually do
Fixed-spending simulations overstate failure, because real retirees adjust. The engine implements Guyton-Klinger-style guardrails: if a path's current withdrawal rate drifts more than ±20% from the initial rate, spending steps down (or back up) by 10%. Alongside the success probability, the engine reports the probability that any spending cut occurs and how deep cuts run — because "97% success, but a 60% chance of cutting lifestyle" is a very different conversation than the headline number suggests.
What we deliberately don't model (yet)
- Mortality is deterministic — each spouse has an explicit plan-to age rather than stochastic lifespans. It's more conservative and far easier to reason about with clients.
- IRMAA surcharges and cost-basis tracking are not in the engine; one-off inflows (a business or property sale) enter as net-of-cost haircut lump sums instead. Each omission is an isolated hook in the code, built to be upgraded without touching the core.
- Social Security uses a simplified taxation rule (85% includable) rather than the provisional-income formula.
We'd rather tell you exactly where the model is simplified than imply a precision it doesn't have.
What a success probability means — and doesn't
An 85% success rate does not mean "there is a 15% chance of ruin." It means that in 15% of simulated futures, this plan followed rigidly depletes before the horizon — in reality those paths are exactly the ones where an advisor intervenes early. Treat the number as a decision-support gauge: robust across assumptions is meaningful, a single decimal point is not. The engine's sensitivity views (retire two years later, spend $500 less, claim Social Security at 70) matter more than any single headline figure — because the question is never "what is the number?" but "which lever moves it?"
Run it on a real household
Load a household's actual finances and get a defensible retirement answer in seconds.