Model Limitations, by Portfolio Inventory
For financial planners reviewing a RetireRange plan. This page maps each kind of account, asset, and income source a household might hold to how the model treats it, the specific limitation to check, and which way the simplification leans — so you can go straight to the rows relevant to this portfolio.
RetireRange is a Monte Carlo simulator: thousands of randomized market/inflation paths, a household-level withdrawal strategy, and a tax engine (federal + all 50 states/DC). It is a model, not a prediction — every result is a projection from the assumptions entered. Read the Leans column as the fastest signal of where results may be too rosy or too cautious.
A. By account / tax type
| Holding | How the model treats it | Limitation to check | Leans |
|---|---|---|---|
| Traditional 401(k)/IRA | RMDs via Uniform Lifetime Table, onset 73/75 by birth cohort, pooled per owner and tax type (IRS aggregation) and drawn through the normal withdrawal path, so the cash reserve and downturn ordering apply to them; withdrawals as ordinary income | RMD smoothing is always on (no lump-timing choice); heir tax is a flat ordinary+state rate — the SECURE-Act 10-year drawdown bracket math isn’t applied yet; two employer plans of the same type held by one person pool loosely (same dollars distributed and taxed, different sleeve sold); no still-working exception — a 401(k) at an employer the owner still works for starts RMDs at the onset age, where the IRS lets a non-5%-owner defer that plan’s RMDs until retirement | Conservative on heir tax and on RMD timing |
| Roth 401(k)/IRA | Withdrawals tax-free; passes to heirs at full value. A pre-retirement withdrawal before 59½ is booked as earnings: the whole amount is ordinary income that year, plus the 10% penalty unless an exception or the Rule of 55 waives it (they waive the penalty, never the tax). On a Roth IRA only, the user can assert the withdrawal is contributions (Roth basis), which removes both | 5-year rule not modeled: there is no account-open date, so any withdrawal at 59½+ counts as qualified; Roth draws outside the Pre-Retirement Withdrawals card are never taxed or penalized; an employer-plan Roth early withdrawal is treated as all earnings, because basis isn’t tracked and the real split is pro-rata | Optimistic for a recently opened Roth; pessimistic for an employer-plan Roth early withdrawal |
| Taxable / brokerage | Withdrawals taxed as ordinary income; basis stepped up at death | No long-term cap-gains or qualified-dividend rates, no tax-loss harvesting; post-death gain drag not yet modeled | Overstates tax (conservative) |
| HSA | Medical-only (VEBA→HSA cascade); optional "stealth IRA" deferral | Inherited HSA taxed per the account’s Beneficiary: spouse rolls over tax-free; a non-spouse owes ordinary+state on the full balance in the year of death (no step-up; harsher than an inherited IRA’s 10-year spread). An account left on the default beneficiary (Spouse for married filing jointly) is valued with no heir tax, which is optimistic once both spouses have died; choose Non-spouse explicitly for a conservative figure. Modeled as a flat haircut — the year-of-death bracket spike isn’t captured. | Slightly optimistic for a non-spouse HSA (flat rate ignores the year-of-death lump) |
| VEBA | Medical-only, drawn before HSA; full value to heirs | Modeled as a distinct medical bucket, not a securities portfolio | Neutral |
| Custom (user-added) tax type | The household can add tax types beyond the eleven built-ins. The engine dispatches on the built-in names only, so an account under a custom type is treated as fully tax-free: withdrawals recognize no ordinary income, RMDs never apply, and heirs inherit at full value | Correct for a genuinely untaxed holding (municipal bonds, some trust structures), but there is no way to tell the engine a custom type is taxable — the fallback is the only treatment available. A typo is indistinguishable from intent: an account named Traditional 401A silently leaves the taxed set. The app raises a per-account warning whenever a tax type isn’t built in; confirm any such account was meant to be tax-free |
Optimistic when used by mistake — understates lifetime tax, RMD-driven income, and heir tax simultaneously |
B. By asset class
| Holding | Treatment | Limitation to check | Leans |
|---|---|---|---|
| Stocks / Bonds / Cash | Block-bootstrapped historical returns by default, or parametric stochastic returns with a fixed correlation; the mix comes from how accounts are built | No rebalancing unless the optional Rebalancing setting is on (off by default; when on, dollars move only within an owner + tax-type pool, so a household with stocks and bonds in different tax types cannot rebalance). The target mix can change later in the plan through glide-path waves, but each wave is a step (no interpolated, gradually gliding target); the schedule is one per household, keyed to the oldest person’s age, so with a wide age gap the younger spouse’s own accounts de-risk on the older spouse’s timeline; and waves key on age only, never on market conditions or portfolio value; correlation held constant in parametric mode (assets can fall together in real crises); only four classes (no intl / small-cap / REIT / alternatives); parametric mode understates fat tails, and bootstrap can only replay patterns present in 1928–2025 | Both ways — cross-check across return generation modes and the historical backtest |
The concrete consequence of no rebalancing worth walking a client through: a dedicated cash or bond account shrinks over time, and that is expected, not a bug. Each withdrawal — the monthly spending draw and the December tax bill alike — pulls from every account in a tax type in proportion to its balance, so a cash sleeve pays its share of both while earning only the cash return. It falls as long as the withdrawal rate on that tax type exceeds the cash rate, then levels off at a floor rather than draining to zero. Worked figures: a $50K cash account held alongside $200K of taxable stock fell to roughly $39K over 17 years and then flattened. Cash Reserve is the one Strategy-tab control that changes this, and it is two separate checkboxes — turning the reserve on protects cash from ordinary withdrawals, but the balance is only rebuilt if the refill checkbox inside it is also on. With both on (12 months, 10% refill threshold), the same account held $88–120K instead of falling toward $25K, at a cost of essentially no success rate (84.6% → 83.8% in the same test). Also worth noting: when RMDs exceed spending the surplus is deposited to a Taxable account, and by default the app picks the owner’s first Taxable account, which may itself be a money-market/cash account — the RMD Overage Destination setting on the Strategy tab lets you route it elsewhere per person.
C. By income source
| Holding | Treatment | Limitation to check | Leans |
|---|---|---|---|
| Social Security | Claiming-age optimizer; taxation thresholds modeled; spousal paid as max(own, 50% of the other’s PIA at their FRA), gated on the worker having filed and reduced at the dependent’s age when it begins | Hand-entered estimates assume work-to-claim (an SSA statement XML can instead be imported and the PIA recomputed from the earnings history — see note below); survivor benefit uses the SSA age-graded factor (71.5% at 60 → 100% at FRA); no policy/solvency changes; no WEP/GPO | Neutral |
| Other income (part-time work, consulting, royalties) | Monthly stream with start/end dates, CPI or fixed growth, owner-scoped (stops at the earner’s death) or Household; Earned streams carry payroll tax (FICA or self-employment, per-earner wage base, Additional Medicare), the SS earnings test with the benefit restoration at FRA, and PIA credit via the SSA-import recompute | Earnings test is the annual test only (no first-year monthly test), so a mid-year retiree may show more first-year withholding than SSA applies; the FRA restoration is applied to a spousal step-up at the worker’s ratio (an approximation); PIA credit reaches the plan only through the SSA-import recompute; a CPI-tracking earned stream is credited toward PIA flat in today’s dollars; Household-scoped earned income is neither tested nor credited | Mostly conservative |
| Pension | COLA + survivor % modeled; optional end date or fixed term (number of monthly payments), the earlier stop winning when both are set — blank pays for life | No lump-sum option; a survivor benefit runs only for what remains of a fixed term, not beyond it | Neutral |
| Annuity | QLAC, exclusion ratio, COLA, survivor modeled; optional end date or fixed term, as for pensions | Models an existing stream; buying a new annuity mid-plan isn’t a modeled transaction; no refund-of-premium or cash-refund option (a fixed term simply stops paying — nothing goes to the estate); a "life with N-year certain" contract should be left as lifetime income, because the fixed-term field stops payments during the owner’s life. QLAC RMD deferral is unaffected by an end date | Neutral |
| Real estate | Appreciation + optional rental income + sale proceeds routed to an account | No mortgage amortization, HELOC, or reverse-mortgage modeling; primary residence counts only if entered | Neutral |
| Cash-value life insurance | Cash value + tax-deferred growth + death benefit to an account + optional tax-free policy-loan income | No lapse, MEC, surrender charges, or loan-interest accrual; not a general living-income source beyond the loan feature | Optimistic (ignores policy drag) |
Note on SSA benefit estimates. A client can enter the 62 / FRA / 70 figures by hand or import the SSA statement data XML (parsed in the browser; never uploaded). An import accepted as-is carries SSA’s own assumption that the worker keeps earning at their current rate until claiming — the standard overstatement for an early retiree. The importer’s Recompute PIA from earnings history mode removes that assumption: it rebuilds AIME from the top-35 wage-indexed FICA years in the file under a client-chosen stop-earning age and future annual earnings, then applies the eligibility-year bend points. Figures from the recompute can differ materially from the bar chart on the client’s own statement, and for an early retiree that difference is the point. WEP/GPO, the disability freeze, and death before 60 are not modeled by the recompute.
D. Household-level
| Area | Treatment | Limitation to check | Leans |
|---|---|---|---|
| Mortality / survivor | None / Deterministic / Stochastic; survivor holds MFJ through the year of death, then flips to Single the following January | Stochastic deaths drawn from the SSA period life table variant matching each person’s optional Gender setting, falling back to the unisex blend when it is left unspecified; survivor SS via the SSA age factor (up to 100% at FRA); use Deterministic for clean strategy comparisons | Neutral |
| State tax | All 50 + DC, with brackets and deductions checked against each state’s own revenue department or statute during 2026; planned move supported, and a move’s tax change flows to legacy under every target (V2). Social Security exemptions are income- and age-tested where the state taxes it. Retirement-income and military exemptions are verified and applied in every income-tax state, including age tiers, income phase-outs, Social Security offsets and government-pension rules (CSRS vs FERS included), per recipient — see below. Future-year changes already enacted are recorded, not pre-applied | A list of narrower state breaks is not modeled (see below); age tests in ID, MN and VT use the youngest household member; caps and thresholds are not inflated over the plan; no county/local tax (except Maryland, whose brackets carry a county add-on) and no New York City tax; New York’s benefit recapture not modeled | Mostly conservative; optimistic for high-income New York households |
| Medical / long-term care | Separate medical track + inflation, Medicare / IRMAA / Medigap / pre-Medicare bridge | Long-term care is not modeled at all | Optimistic — the biggest gap for many households |
| Fees | None deducted | No fund expense ratios, advisory fees, or trading costs — compensate by lowering return assumptions | Optimistic |
| Tax accounting | Realized federal + state tax drawn from the portfolio at each year-end, under every target (Engine V2) | Simplifications live in the rates (ordinary-income treatment of taxable withdrawals; no cap-gains / QDI / AMT / NIIT — see the rows above), not the payment mechanism | Conservative (rates overstate tax) |
| Guaranteed income above the spending target | Any month’s Social Security + pension + annuity + rental + other + policy-loan income that exceeds the spending target is invested — deposited into the household’s first Taxable account and added to its cost basis, the same treatment already used pre-retirement (fixed 2026-09-24; previously the surplus was discarded while still being taxed, which could make more Social Security leave a household strictly worse off) | A household with no Taxable account still loses the surplus — there is nowhere for the engine to deposit it. Worth checking on any plan where guaranteed income can exceed spending, most often early retirees who claimed Social Security before ramping spending, and surviving-spouse or low-spend scenarios | Conservative for a household with no Taxable account; otherwise neutral |
State tax on retirement income, in detail
What counts as retirement income for a state exclusion: pension and annuity income (the taxable part), withdrawals and RMDs from Traditional 401(k)/IRA/403(b)/457(b) accounts, Roth conversions, and early distributions. Taxable-account gains, Roth, HSA and VEBA draws are not in it. Military retired pay is its own category, flagged per pension on the Household tab, and so is a government pension (federal, or state/local with the paying state), which matters in Arizona, Indiana (federal civil service only), Kansas, Louisiana (federal and Louisiana systems), Massachusetts and Missouri (any government, including another state’s). A federal pension also carries a Federal retirement plan of Not sure / CSRS / FERS. It matters in ID, MN, NE and VT, which exclude CSRS annuities only. Not sure applies no exclusion by design, so a pre-existing plan behaves as before and a CSRS client must set it; the field shows an amber reminder in those four states. A split annuity (CSA-1099 account number starting with 8) is entered as two pensions.
Where exemptions are applied. Every income-tax state now has a verified retirement-income rule and a verified military rule. Several are verified as giving no general exclusion — CA, DC, MT, NC, ND, NM, OH, OR, UT and WV; ID, MN, NE and VT apart from CSRS annuities; plus private pensions in AZ, IN, KS, LA (under 65) and MA — so full taxation there is deliberate, not a default. MT, NM and WV do give a 65+ allowance against any income (MT $5,660 per person, no income test; NM up to $8,000 per person, stepping to zero above $28,500 single / $51,000 joint; WV $8,000 per person, reduced by the Social Security WV already exempts), and all three are applied. Military pay is taxed in CA, DC, MT and OR. It shares the general exclusion in CO (55+), DE and GA, which have a larger military-only allowance at younger ages (DE $12,500 under 60, GA $17,500 under 62), and in KY. It is capped in ID, MD, NM, VA and VT, relieved by a nonrefundable credit in UT, and exempt in full elsewhere.
Shapes worth knowing when reviewing a client’s state result:
- Social Security offsets. Maine (gross benefit received), Maryland (gross), Idaho’s military deduction (gross), and Missouri’s public-pension cap (taxable benefit) reduce the cap by Social Security. Colorado reduces its $20,000 (55–64) / $24,000 (65+) subtraction by the Social Security subtraction actually claimed, not the benefit, and military pay from 55 shares the same cap. At 55–64 above $75,000 single / $95,000 joint of AGI, where no direct Social Security subtraction is available, the benefit instead counts as qualifying income and fills whatever part of the cap the pension leaves. Indiana’s $16,000 federal civil-service adjustment is reduced by Social Security received. West Virginia’s 65+ allowance is reduced by the Social Security it exempted. Where two spouses have separate caps, the household benefit is apportioned by each spouse’s share of the gross benefit.
- Per recipient, not per household. Exclusions are computed per claimant: each person’s own age, and their own pension, annuity, withdrawal, RMD and conversion income (attributed by owner). A per-person cap covers only that person’s income and can’t be shared. New York’s $20,000 each, with "neither of you can claim any unused part of your spouse’s exclusion", gives an $80,000 / $5,000 couple $25,000, not $40,000. That raises state tax for lopsided households, correctly. The same applies in DE, GA, KY, MD, ME, MO, RI, SC, VA, WI and the other per-person states. Income that can’t be attributed (a household-scoped stream, the carried-forward tax draw) goes to the youngest person.
- Elect one (Vermont). Vermont’s Social Security, CSRS ($10,000 per return, in full below $55,000 / $70,000 of AGI, gone at $65,000 / $80,000) and other non-covered-pension exclusions are mutually exclusive. The engine resolves each and keeps the larger, so a household with sizeable Social Security sees no change from marking an annuity CSRS. Vermont’s military exclusion is outside the election and stacks.
- Staircase (Minnesota). The CSRS subtraction ($13,540 single / $27,080 joint, no age test) loses 10% for each $2,000, or part of $2,000, of AGI above $84,490 / $108,320. It is reproduced exactly, not as a line, and is gone by about $103,489 / $127,319.
- Roth conversions. Excluded from Maine’s deduction (Maine says no benefit is received at conversion); included in Iowa’s unlimited 55+ exclusion, which makes Iowa one of the few states where converting costs no state tax.
- Per-return, not per-person. Idaho, Michigan, Minnesota, New Jersey and Vermont set one cap for the return. Idaho’s single deduction ($48,216 single / $72,324 joint, reduced by gross Social Security) is shared by military pay (from 62) and CSRS annuities (from 65). New Jersey ($100,000 joint) and Michigan ($131,794 joint) are not halved for a one-recipient couple, and they count only the qualifying spouse’s income toward the cap.
- Scheduled future changes in GA, HI, IN, MS, NE, NY and VA are recorded with the year they take effect but not applied early. All seven make the state cheaper, so those plans overstate later-year state tax slightly. State tax data is excluded from the automated annual tax refresh; every state entry changes only by a sourced, human-reviewed edit, once a year in late autumn.
Simplifications that overstate tax (conservative):
- Age tests in Idaho, Minnesota and Vermont still use the youngest household member, because one age field feeds several rules with different floors in those states, so raising it for one rule could open a rung the household hasn’t reached. Everywhere else, age tests use each recipient’s own age.
- Exemption caps and income thresholds are not inflated over the plan (brackets and deductions are), so the exemptions shrink in real terms and later years run high.
- CSRS-adjacent gaps. Vermont’s $10,000 also reaches any other contributory federal or state plan not covered by Social Security, and Minnesota’s subtraction reaches its own basic-member public pensions (PERA Police and Fire, the state agency law-enforcement fund) and another state’s non-covered plan. The model records a pension’s paying jurisdiction, not whether it was covered by Social Security, so it grants neither. Both overstate tax, and Vermont’s is bounded by $10,000. Most current retirees of Minnesota’s PERA, TRA, St Paul Teachers, Legislators and Local Government Correctional plans are coordinated members and correctly get nothing.
- Not modeled: Utah’s $450 retirement credit (gated on birth on or before 31 Dec 1952, a fixed cohort the model can’t express; also not combinable with the Social Security credit already applied); New Mexico’s exemption for a blind filer under 65; Ohio’s retirement income credit (max $200); Oregon’s retirement income credit and pro-rated exemption for federal service before 1 October 1991; Idaho’s PERSI Firefighters Retirement Fund and closed Idaho city police fund types, and its disabled (below the age floor) and under-62-still-working routes; Colorado’s $15,000 military subtraction under 55 (deliberately, since it applies only to tax years 2022–2028 and the model applies current rules to every year), Colorado railroad retirement, and on a joint return a Colorado spouse whose only qualifying income is Social Security (not counted as a recipient, so their cap share is lost); Georgia’s second $17,500 for a military retiree with Georgia earned income above $17,500; Delaware’s limits for a military retiree under 60 (their other pension income is still held to $2,000, and a non-military spouse’s separate $2,000 isn’t added); Indiana’s surviving-spouse exception to age 62; Montana’s military exemption (new residents with earned income only); Oregon’s subtraction for federal tax paid and its per-person credit; Alabama’s deduction for federal income tax; Minnesota’s second-tier Social Security subtraction; Kentucky’s pre-1998-service pension rule; Michigan’s uncapped public-pension deduction for those born before 1946 and its alternative $20,000 / $40,000 deduction at 67+; full exemption of New York public and federal pensions; scheduled future cuts (Mississippi’s 2027 rate step, Hawaii’s later deduction increases, Georgia’s 2027 exclusion rise).
- Income tests use federal AGI where a state uses its own measure (New Jersey, Virginia, and Missouri’s private-pension phase-out, which uses Missouri AGI less taxable Social Security).
Simplifications that understate tax (optimistic):
- New York’s benefit recapture above $107,650 of income is not modeled — the largest single state-tax gap for a high-income New York household — and New York City’s income tax is not included.
- Capital-gains taxes not modeled: Washington’s 7% excise on long-term gains above roughly $270,000 (9.9% above $1 million) and Maryland’s 2% surtax on net gains for high earners.
- California’s 2.5% additional tax on early distributions is not modeled.
- Phase-downs not modeled: South Carolina’s deduction phase-down at higher incomes and Illinois’s exemption cut-off above $250,000 / $500,000 of income.
- Louisiana’s own-system exclusion covers a named list of plans the model can’t distinguish, so an unlisted Louisiana public plan would be exempted.
- Idaho reduces its deduction maximum by railroad retirement benefits as well as Social Security. The model has no railroad retirement input, so it doesn’t make that reduction.
- West Virginia’s 65+ allowance is reduced here only by the Social Security WV exempted. The real form also nets several other WV modifications the model doesn’t carry.
- Exemption definitions approximated in a few states, generously: Pennsylvania exempts a privately purchased annuity, Hawaii exempts a pension’s employee-contribution share, Kansas exempts every Kansas public pension, and Massachusetts exempts non-contributory federal pensions. Arkansas and South Carolina exempt military pay without netting it against the general retirement cap.
Either direction: stepped state tables (Connecticut’s pension phase-out, Wisconsin’s and Maine’s deduction phase-outs) are approximated as straight lines. Minnesota’s CSRS staircase is the exception, reproduced exactly. A CSRS-to-FERS transferee in Minnesota is prorated by Minnesota on months of non-covered service. The model uses the CSRS share of the dollars from the Notice of Annuity Adjustment, which is close but not identical, and the difference is bounded by the cap.
Conservative by design
Most simplifications above are deliberately cautious — they tend to overstate tax and understate legacy (taxable-as-ordinary, non-spouse heir tax). The exceptions worth flagging to a client are the ones that lean optimistic: long-term care, investment fees, and cash-value life-insurance drag. Weigh a plan’s success rate with those three in mind — and for a high-income New York household, state tax too. A fourth item is different in kind rather than directional — hand-entered SSA benefit estimates carry SSA’s continued-work assumption, which flatters an early retiree’s plan until the figures are trimmed or recomputed from the earnings history (see the notes under section C).
See the user-facing Limitations page for the plain-language version.
Questions or suggestions?
If a limitation above needs more precision for how you use the model with clients, or you’ve spotted a gap this page doesn’t cover, email support@retirerange.com — a real person reads every message. See Contact & Support for what to include.