Limitations

A precise map of what SmartRetireCalc does not model, where it is deliberately simplified, and where a result can systematically run high or low — with links to the detailed methodology for each area.

Overview

Every SmartRetireCalc calculation is a model — a deliberate simplification of a real financial life. This page lists the simplifications that matter, grouped so you can see which ones could affect your plan. It is not a legal disclaimer (see the Disclaimer for that) and it is not a bug list — most items here are intentional design choices, and the few genuine implementation issues are called out separately at the end.

Each item is tagged with roughly when it matters: model boundary (outside the model by design), simplification (modeled, but approximately), standalone tool (a separate calculator that doesn’t feed your retirement plan), data limitation, or known issue (a verified defect).

The main projection is a model, not a forecast

The core retirement projection (Projection Engine) is deterministic: it applies one fixed annual return per scenario, steps through each year, and produces a single “plan fully funded” yes/no outcome for the modeled assumptions.

  • No Monte Carlo, no probability of success. The main projection does not simulate thousands of random return paths and does not produce a “percent chance” figure. The three built-in scenarios (Average, −1%, −2%) are how it stress-tests a plan. See Assumptions.model boundary
  • No sequence-of-returns risk in the main projection. A fixed annual return cannot capture the danger of poor early-retirement years. Use the Sequence of Returns Risk Calculator to explore that, or Portfolio Lab for actual historical sequences.model boundary
  • No investment fees or fund expense ratios are deducted anywhere in the projection. Enter a return net of fees if you want to account for them. May overstate long-run growth.model boundary
  • Only as good as your inputs. If your return, inflation, or spending figures are off, the projection is off proportionally.simplification
  • Tax and Medicare law can change. Brackets, deductions, IRMAA, and Social Security taxation are modeled as current law, with disclosed forward-year projections (Assumptions).model boundary

Tax modeling

Federal income tax uses a real progressive-bracket model with the standard deduction and the age-65 additions (Taxes). Social Security taxation uses the full §86 provisional-income formula. The gaps:

  • Taxable brokerage withdrawals are not taxed in the projection. There is no cost-basis tracking, no realized capital gain, no preferential long-term capital-gains rate, no qualified-dividend modeling, and no annual dividend/interest tax drag on this bucket. In effect the taxable account is treated as tax-free. May overstate after-tax sustainability for a plan with large taxable balances or big embedded gains. See Accounts.simplification · material for taxable-heavy plans
  • Savings-account interest is not taxed. The cash/savings bucket grows at its flat rate with no tax on the interest. May overstate savings growth slightly.simplification
  • No state or local income tax. Federal only. Residents of states that tax retirement income should add a manual estimate.model boundary · matters in high-tax states
  • No Net Investment Income Tax (NIIT) and no Alternative Minimum Tax.model boundary
  • Two filing statuses only — Single and Married Filing Jointly. Married Filing Separately, Head of Household, and Qualifying Surviving Spouse are not modeled, and the projection does not switch a household from MFJ to Single when one spouse dies (it has no death event — see Social Security below).simplification
  • The §86 and NIIT dollar thresholds are held fixed ($25,000 / $32,000 / $34,000 / $44,000; $200,000 / $250,000). Current law does not index them, so this matches the law — but if Congress ever indexes them, the model would lag.simplification

Accounts and contributions

  • Accounts are collapsed into aggregate tax buckets (pre-tax, Roth, taxable, savings, non-deductible IRA). Per-account performance, fees, and allocation drift are not tracked, and only pre-tax balances keep owner detail (for per-spouse RMDs). See Accounts.simplification
  • The non-deductible IRA pro-rata rule is applied to that account alone. The IRS aggregates every traditional IRA on Form 8606, so if you also hold pre-tax IRA money the real taxable portion of a non-deductible IRA withdrawal is higher than the model computes.simplification
  • The non-deductible IRA is not driven by the RMD rule in the projection, even though a real one is still a traditional IRA subject to RMDs.simplification
  • IRS contribution limits, the age-50 catch-up, and income phase-outs are not enforced. Entering feasible contribution amounts is up to you. Employer contributions are a flat dollar amount, not a percent-of-pay match formula.model boundary
  • Not modeled: early-withdrawal penalties, 72(t) substantially-equal payments, inherited / beneficiary IRAs, HSAs, 529s, and Qualified Charitable Distributions.model boundary

Withdrawal order and shortfalls

  • The withdrawal order is fixed and cannot be reordered. Guaranteed income and RMDs first, then savings → taxable → non-deductible IRA → your pre-tax → spouse pre-tax → Roth. The engine does not search for a more tax-efficient sequence for your specific situation. See Accounts.simplification
  • Spending is never automatically reduced. If income and accounts can’t cover the planned spending, the model reports the unfunded amount as a funding gap — it does not fabricate a withdrawal, model borrowing, or apply a lifestyle cut. Planned spending continues at the amount you entered every year. See Projection Engine.model boundary
  • Portfolio depletion is not the same as plan failure. If guaranteed income still covers the cash need after the portfolio hits zero, the plan is reported as funded.simplification

RMDs and Roth conversions

  • RMD ages are whole years — no half-year birthday, no first-year delay-to-April-1 election, no Joint Life & Last Survivor table for a much-younger sole-beneficiary spouse. QCDs and inherited-IRA RMD rules are not modeled. See RMDs.simplification
  • Roth conversions convert only your primary pre-tax bucket — never the spouse pre-tax bucket or the non-deductible IRA.simplification
  • Conversion strategies are solved per year, not over your lifetime. The Fill-to-Bracket and Fill-to-IRMAA strategies fit each year’s conversion under that year’s ceiling; the engine does not compute a globally optimal multi-year conversion schedule. See Roth Conversions.simplification

Social Security

  • You enter your benefit in today’s dollars for a chosen claiming age — it is not imported from an SSA record, and the projection adds no further claiming-age adjustment.simplification
  • The projection does not model SSA spousal or survivor benefits, the earnings test before Full Retirement Age, WEP/GPO, dependent benefits, or the Medicare premium deducted from the benefit check. The standalone Social Security calculators do apply the claiming-age rules. See Social Security.model boundary
  • No mortality or death event. Both people’s income continues for the full horizon; there is no survivor step-down and no switch to single-filer taxes.model boundary

Pensions and annuities

In the projection, each pension/annuity account is modeled as its own independent income stream, with its own start age, COLA setting, and taxable portion (Pensions & Annuities). What still doesn’t carry through:

  • Per stream, COLA is all-or-nothing at the full plan inflation rate. A capped or partial COLA (common in public pensions) cannot be represented for any one stream.simplification
  • Streams are not tied to a specific spouse. Each stream keeps its own timing and COLA, but ownership is not tracked and a spouse’s age or death does not change any stream.simplification
  • Guaranteed income above the year’s spending need is retained, not optimized. The surplus pays that year’s tax bill and the remainder is held in the taxable bucket (like an excess RMD) — the model does not spend it down, gift it, or search for a better use.simplification
  • Taxation is 100% by default or a flat user-entered amount — there is no §72 exclusion-ratio calculation and no explicit qualified / non-qualified / Roth-funded distinction.simplification
  • No survivor-option reduction (50% / 75% / 100% joint-and-survivor). Enter the post-reduction amount if you expect one.model boundary

Real assets and liabilities

  • Real assets (home, car, boat) are net-worth-only and held constant. No appreciation, depreciation, rental income, or sale event is modeled. A net-worth total can therefore differ substantially from a real future value.model boundary
  • Loans do not amortize. The monthly payment × 12 is added to the spending need for the whole projection; a paid-off loan doesn’t stop automatically and doesn’t reduce spending — exclude or delete it when it’s paid off.simplification

Standalone calculators don’t change your plan

Several SmartRetireCalc tools are standalone decision aids. Running one never writes anything into your saved retirement projection — not returns, allocations, balances, or assumptions:

  • Safe Withdrawal Rate Calculator — a single fixed-rate / fixed-return / fixed-inflation model with no taxes, Social Security, pensions, account buckets, or historical data. The “safe” rate is the one you pick, not one the tool solves for.standalone tool
  • Annuity Income Calculator (SPIA / DIA / QLAC) — table payout rates, no taxes, fees, or inflation on the payout.standalone tool
  • Pension vs Lump Sum Calculator — a nominal-dollar comparison to a single fixed life expectancy, with no taxes, no survivor benefit, and no present-value discounting.standalone tool
  • Portfolio Lab — historical backtesting; importing a saved plan into it is one-directional.standalone tool
  • Sequence of Returns Risk Calculator and the income-gap / income-floor / retirement-paycheck tools — each takes its own inputs and reports its own result.standalone tool

Backtesting data limitations

Portfolio Lab replays actual historical price and dividend data — a description of the past, not a forecast:

  • No taxes, no fees, no inflation adjustment. Outputs are nominal and assume perfect execution at period-end prices — a real investor’s result would have been lower.data limitation
  • No retirement withdrawals. The backtest supports periodic contributions but not a decumulation drawdown.model boundary
  • History varies by security. Different holdings can have different start dates. When a holding’s own history is too short, an early period may be filled by a historical proxy (a related security’s real returns, shown in the results as “Synthetic history”) — either a curated, administrator-reviewed pairing or, where that option is enabled, one chosen automatically at backtest time. Either way the substitute must first pass the same economic-compatibility and statistical-validation checks a reviewer applies, and this only happens on a Monthly backtest. Actual history always takes precedence, and a substitute that does not clearly qualify — or a security that cannot be classified with confidence — is not given a proxy. When no proxy applies, the whole portfolio’s backtest may start later instead (disclosed as “Backtest period adjusted”) so every holding participates; a holding with no usable data at all is still held as disclosed uninvested cash. Proxy-derived periods are disclosed in the results. Provider-specific semantics (survivorship, how far each series reaches) are not independently reconstructed.data limitation
  • Rebalancing is off by default — the default is buy-and-hold with drifting weights.simplification

Risk Analytics limitations

Every figure on Risk Analytics is computed from the one historical backtest you ran:

  • Sharpe uses a 0% risk-free rate and Sortino a 0% minimum acceptable return — both hard-coded, not inputs. In a positive-rate environment this makes the ratios somewhat higher than a cash-adjusted version.simplification
  • Value-at-Risk and Expected Shortfall are empirical — the actual 5th-percentile periodic return and the average of the periods at or below it, with no distribution assumed. They are one-period figures, not annualized, and require at least 20 observations; from short histories they are unstable and not a floor on future losses.simplification
  • Many risk figures depend on the simulation frequency (Daily / Weekly / Monthly) and are not directly comparable across frequencies. Scoring uses a frequency-stable canonical-monthly volatility to limit that drift.simplification
  • No beta, alpha, tracking error, information ratio, or capture ratios, no efficient frontier, and no optimizer. Benchmarks are shown side-by-side, not as a regression.model boundary
  • The Portfolio Rating and badges rank the tested history under SmartRetireCalc’s fixed bands — they are not an investment recommendation or a prediction. An incomplete portfolio still shows its metrics but is left out of every ranking.simplification

Known implementation issues

These are verified defects, not design choices. They are disclosed here for transparency; current user-facing impact is noted.

  • A legacy backtesting API field, PerformanceMetrics.RecoveryYears, returns 0 for a drawdown still open at the end of the backtest instead of “unrecovered.” The Portfolio Lab results screen does not display that field — the recovery figures shown come from a corrected wealth-index calculation — but the field is still present in the raw API response.known issue · not shown in the UI

Two previously-listed defects are now fixed: guaranteed income above the year’s spending need is retained (it pays that year’s tax bill and the remainder is held in the taxable bucket), and pension / annuity income received before retirement is taxed and its after-tax cash retained rather than disappearing. See Pensions & Annuities.

When these limitations matter most

If your situation involves…Pay attention to
A large taxable brokerage balance or big embedded gainsno capital-gains tax on taxable withdrawals — results may run optimistic
Living in a state that taxes retirement incomefederal-only tax modeling
A pension with a capped (1–3%) COLAper stream, COLA is all-or-nothing at full inflation
A large pension relative to spendingthe surplus is retained in the taxable bucket — not spent down, gifted, or tax-optimized
A plan to survive on your own strategy for withdrawal timingthe withdrawal order is fixed and not optimized
Relying on the Safe Withdrawal Rate or Annuity calculatorsthey are standalone and don't change your saved plan
Backtests over a short window or with newer fundstail-risk figures are unstable; proxy history may be used
SmartRetireCalc results are educational estimates for planning, not a substitute for a financial planner or CPA. See the Disclaimer.

Related guides: Retirement Planning Guide