RetiFlo — Assumptions & Limitations

RetiFlo is an educational retirement-planning and analytics tool. It is not tax, legal, or investment advice, and it does not replace a CPA, EA, CFP, or attorney. Every projection is a model built on the simplifications below. This document is the compliance-grade inventory of those simplifications, kept so that no user-facing claim overstates what the engine actually computes.


1. Scope & intended use

  • Audience: pre-retirees and the advisors who work with them. Projections are illustrative, not guarantees of any future outcome.
  • All figures are pre-tax-year-2026 nominal U.S. dollars unless a projection applies modeled inflation. U.S. residents only; no non-U.S. tax or benefit systems are modeled.
  • Results depend entirely on user-entered data and the assumptions selected. Garbage in, garbage out — the tool does not validate that entered balances, incomes, or ages are truthful.

2. Federal income tax

  • Modeled: ordinary-income brackets, standard deduction, the age-65 additional standard deduction, the temporary OBBBA senior deduction (2025–2028, with phaseout), long-term capital-gains/qualified-dividend rate brackets, student-loan-interest deduction phaseout, and Social Security taxability under IRC §86.
  • Simplified / not modeled: AMT; the Net Investment Income Tax (3.8%); most credits (child, education, EV, saver's, foreign tax); itemized deductions beyond the configured set; QBI; state/local tax interaction with itemizing (SALT); employment/self-employment tax; the "kiddie tax"; and any brackets/thresholds not present in the seeded config.
  • Brackets and deductions are annually-indexed published figures tracked in the K2 regulatory manifest with a reviewBy date; a rolled tax year without re-attestation fails the staleness CI check.
  • Filing status changes mid-projection. A household that loses a spouse files jointly for the year of the death and as a single filer from the start of the next tax year — brackets, standard deduction, §86 Social Security thresholds, LTCG brackets, the senior-deduction and student-loan phase-outs, and the IRMAA ladder all move together on that date. Dependents are not modeled, so the two further years of joint rates available to a qualifying surviving spouse with a dependent child (IRC §2(a)) are not applied; that overstates tax for the households it would apply to. A divorce switches filing status for the entire divorce year, per the IRC §7703 rule that marital status on 31 December governs the whole year (corrected 2026-09-03; it previously switched at the divorce month). The pre-divorce months of that year still carry both spouses' income while being taxed single, which overstates tax slightly for that one year — the direction this product prefers to err. Only single and married_filing_jointly are modeled; a household needing married-filing-separately uses the override paths.

2b. Withdrawal-generated tax funding

Taxes triggered by a portfolio withdrawal — federal and state income tax on a tax-deferred (IRA/401k) distribution, and brokerage capital-gains tax — are funded by drawing more from the portfolio (an iterative gross-up: after the withdrawal, the engine draws enough to cover that withdrawal's own tax, converging in a few passes; any residual after the cap becomes shortfall). This covers all withdrawal paths — expense-driven withdrawals as well as the tax on pre-tax transfers and fund-from-withdrawal shortfalls. Portfolio depletion and out-of-money dates for withdrawal-heavy plans are correct. See plans/withdrawal-tax-grossup-plan.md.

3. State income tax

  • Modeled conditionally: state income tax on ordinary income is added only for states with a curated StateTaxProfile. For any state without one, the engine returns federal-only and reports stateTaxes = 0 — never a blended guess.
  • State handling is a simplified graduated model. Local/municipal income taxes, state-specific retirement-income exclusions beyond those curated, state AMT, and state-specific credits are not modeled. Some states are explicitly marked needsReview or not-modeled and should be treated as federal-only.
  • Because production per-state coverage is partial, user-facing copy must not make a flat "federal + state" tax co-claim (enforced by honestyGate_federalStateClaim.test.ts). Expose state tax only via a qualified label (e.g. "0 when the state is not modeled").

4. Social Security

  • Claiming: early-claiming reduction (5/9 of 1% per month for the first 36, 5/12 thereafter) and delayed-retirement credits (2/3 of 1% per month to age 70) per SSA rules; FRA by birth-year schedule. Golden-tested against SSA published percentages.
  • Approximation: the year-by-year schedule generator applies a flat current-year SS amount across all years — it does not vary the benefit by future COLA or a changed claiming age within the schedule view (the full projection engine does apply COLA).
  • Taxability: IRC §86 provisional-income thresholds are the non-indexed 1984/1993 statutory amounts ($25k/$34k single, $32k/$44k joint) — they do not inflate, so more of a benefit becomes taxable over time, as in current law.
  • Solvency haircut: an optional projected post-depletion benefit reduction sourced from the SSA Trustees Report. This is a projection of a policy that has not happened, not a scheduled cut.

5. Required Minimum Distributions (RMDs)

  • Uses the IRS Pub 590-B Uniform Lifetime Table (Table III), 2022+ factors (golden-tested), and SECURE 2.0 birth-year → start-age rules (73 for 1951–1959, 75 for 1960+). Single-life factors are used where applicable.
  • Timing: each year's RMD executes in the first month of the year the account owner attains (or has passed) RMD age — including the first RMD, which lands in the attainment year itself (even for a Dec 31 birthday). The engine deliberately does not model the IRS option to defer the first RMD to April 1 of the following year, because that path forces two taxable RMDs into the second year. The first-month balance approximates the prior Dec-31 balance, the IRS basis for the year's RMD, and the divisor is the Uniform Lifetime factor for the age attained during the distribution year. There is no sub-annual optimization of when within the year to distribute.
  • Per-owner schedules: each account RMDs on its own owner's attained age — a spouse's IRA waits for (and uses the divisor of) that spouse, not the primary planholder. An account marked joint-owned follows the primary (IRAs/401(k)s cannot truly be jointly owned).
  • Joint Life and Last Survivor Table (Table II): applied when the plan has a partner more than 10 years younger than the account owner (attained ages, per the IRS rule), producing the smaller Table II RMD. Assumption: the spouse is treated as the account's sole designated beneficiary — beneficiary designations are not tracked per account, so a plan whose actual beneficiary is not the spouse (or not sole) would overstate the divisor / understate the RMD in this narrow case. Table II stops applying (falls back to the Uniform table) in years after the spouse's death. Spouse ages below 20 use the published table's age-20 column (conservative — larger RMDs). Table data: IRS Pub 590-B Appendix B, 2022+ factors, provenance-tracked in the K2 regulatory manifest.

6. Medicare & IRMAA

  • Part B standard premium and Part B/D IRMAA surcharge tiers are modeled with the two-year MAGI lookback. IRMAA MAGI includes Roth conversions and capital gains.
  • Filing status selects the threshold ladder. Each tier carries both the individual and the married-filing-jointly boundary; the premium attached to a tier is the same either way. A household with two living people is measured against the joint column, and a survivor moves to the individual column — their first cliff roughly halves — from the month their spouse dies. Two simplifications there, both erring toward the more expensive answer: the switch lands in the month of the passing rather than the following tax year, and married filing separately is not modeled (CMS publishes a three-tier ladder for it; households needing it use the override paths).
  • Vintage: Part B and Part D are both 2026 figures as of 2026-08-23 (Part B from the CMS Parts A & B fact sheet, Part D from that plus the separate Part D bid-information notice for the base beneficiary premium). They are flagged in the K2 manifest with a reviewBy tied to the CMS November announcement and should be refreshed annually. Users near an IRMAA cliff should treat the surcharge tier as approximate until the current-year CMS notice is seeded.
  • Boundary convention: CMS makes only the top boundary exclusive ("greater than or equal to $500,000"); the engine compares with ≤ throughout, so an income of exactly $500,000 is placed one tier low. Recorded rather than fudged — see OW-085.

7. Healthcare out-of-pocket costs

  • Pre-Medicare (ACA) premiums, Medigap/supplement premiums, and out-of-pocket estimates are national-average survey figures (KFF/CMS/HHS), not plan-, insurer-, or location-specific quotes. Actual costs vary widely by state, age-rating, and plan choice.
  • ACA premium tax credit (2026-09). Estimated ACA premiums for pre-65 household members are shown net of an estimated §36B premium tax credit, computed from the household's own projected income under the law in force for 2026 — including the 400%-of-poverty-level cliff, above which the entire credit ends. This is an estimate, not an eligibility ruling: the benchmark is a national Silver-plan proxy rather than your rating area's actual second-lowest Silver plan; below 100% of the poverty level no credit is modeled (Medicaid eligibility differs by state and is not determined here); Alaska/Hawaii poverty-guideline variants and cost-sharing reductions are not modeled. A premium you enter yourself is used exactly as entered — never adjusted. Each simplification errs toward overstating your costs.

8. Long-term care (LTC)

  • LTC cost defaults to a national-average annual figure with a fixed modeled duration. The engine supports either an end-of-life anchored window or an explicit user-defined event window. LTC is a high-variance, deeply personal cost; the national average is a planning placeholder, not a prediction for any individual.
  • State figures are deliberately set ~20% above published statewide medians (2026-09). A statewide median under-prices the metro areas where most households live — metro private-room medians can run 60%+ above their state's figure — and understating a cost makes a plan look safer than it is. The uplift is uniform, disclosed conservatism, not a metro-level prediction; households who know their own local figure can set per-person care costs directly on the Future Events timeline, and that entered figure always wins.
  • LTC insurance (2026-09-05): each party may hold a traditional or hybrid policy. The level monthly premium is modeled as an expense while they are alive; during their care window the policy's benefit pool (default $165,000, growing at the priced 3% option) pays care costs first, and only costs beyond the remaining pool fall to the household — the pool caps the offset, it never simply zeroes LTC cost. Estimated traditional premiums are AALTCI national age/sex averages (a market index, not a quote — carrier spreads reach 80% for the same profile); a user- or advisor-entered premium and pool always override. Hybrid policies are priced only from an entered quote. Updated 2026-09-13: the policy pays nothing for the first 90 days (three months) of a person's care — the elimination period, met once per policy, so a later claim is paid from its first month. A restoration-of-benefits rider can be marked per policy: after six months without care, a pool that has paid is refilled to what it would hold had it never been used, and an estimated premium is 8% higher for it (an entered premium is taken as the real quote). An early care episode on the Future Events timeline draws on the same pool as end-of-life care, so without a rider what it uses is gone for later. Charts and tables show what the policy paid beside the household's share; the household's share is what spending, taxes and the medical deduction use. Not modeled: premium rate increases (premiums are held level), premium waiver during claim, shared-care/couple discounts (omitting them errs toward overstating cost), the benefit pool's growth before the projection starts (a pool is taken as its value today), and tax deductibility of premiums or benefits.

9. Real estate & reverse mortgage

  • Home-sale gain uses the IRC §121 exclusion ($250k single / $500k joint, non-indexed) with a residency check and modeled selling costs.

  • Reverse mortgage (HECM): the available principal is a simplified approximation of the HUD actuarial Principal Limit Factor tables (HUD Handbook 4235.1), keyed off a base factor and expected-rate adjustment — not the exact current HUD PLF lookup. Treat reverse-mortgage proceeds as an estimate; a HUD-counseled quote is authoritative.

  • Nothing is modeled AT the second death (decided 2026-09-06, OW-109). The projection runs to the later longevity and reconciles the final partial year's taxes at the death month, and per-person flows stop at each person's own death — but no estate settlement, basis step-up, or final expenses occur at the second death. Deliberate: every candidate effect there changes only what heirs receive, and the product makes no heir-facing value claim (the estate feature is a document checklist). An heir-facing Estate Module is specified as a future feature under evaluation (PRD §13.5); if it is built, settlement, §1014 step-up at the second death, and IRD treatment of tax-deferred balances are its scope, not the projection's.

9a. Divorce, death, and community property

Every asset and debt carries an owner (member / spouse / joint), and the property law of the state the household lives in at the event date decides how each one divides. The regime is derived from the profile's state and moved by a relocation event — it is not a static setting.

  • Community-property states — AZ CA ID LA NM NV TX WA WI (Wisconsin's Marital Property Act is included). Assets and debts divide 50/50 at divorce regardless of whose name is on them, and the survivor continues to carry the deceased spouse's debts. Five further states (AK FL KY SD TN) allow community property only by election; living there is not enough, so it must be asserted explicitly.
  • All other states — ownership decides: the member keeps their own, the ex-spouse's leaves the plan, and jointly-held items divide by the percentage entered. At a death, a debt that was solely the decedent's is settled out of the estate and does not follow the survivor.

Limitations you should know about:

  • Step-up in basis at the first death (IRC §1014) is modeled — the decedent's own holdings are revalued in full and half of anything jointly held, or everything in a community-property state (the §1014(b)(6) double step-up). The adjustment runs in both directions: a holding that has lost value steps down. It applies to taxable brokerage/cash accounts and to real estate (treated as jointly held, since properties carry no owner), and deliberately not to 401(k)s or traditional IRAs — those are income in respect of a decedent and receive no step-up under §1014(c).
  • Your existing unrealized gain is recognized — if you record it. Enter a cost basis on a taxable brokerage account and the projection treats the difference between it and today's balance as gain you have already accrued, taxable proportionally as you draw the account down. If you leave it blank, the projection assumes there is no built-up gain, which understates the tax you would owe on withdrawals. The app says so where you enter it. Only brokerage accounts have a cost basis; cash accounts and tax-advantaged accounts do not need one.
  • Separate property is not modeled. Pre-marital, inherited, and gifted assets legally remain separate even in a community-property state; the plan tracks an owner, not a separate/community classification, so a community-property split treats everything as community.
  • The division and the estate settlement are untaxed and pro-rata. Basis scales with value (no gain realized) and the amounts come proportionally from all accounts rather than through the withdrawal order.
  • Real estate is not divided at divorce. Model a property disposal as a sale before the split date and divide the proceeds.
  • Federal and private student loans are not distinguished. Federal student loans are discharged at death with no estate claim; the plan has no such flag, so all debt types settle identically.
  • Debts with no owner recorded are treated as jointly owed — the conservative reading. They are flagged in the app rather than assigned a default.
  • Retirement plans: ERISA-qualified accounts (401k/403b/pension) are governed by federal law regardless of state — a real divorce splits them via a QDRO, and beneficiary changes need spousal consent. The projection does not model QDRO mechanics. IRAs are not ERISA-protected and do carry a community-property interest.
  • Social Security is never community property. It is federal; divorced-spouse benefits follow the federal 10-year-marriage rule and are unaffected by any of the above.

10. Monte Carlo & spending guardrails

  • Monte Carlo draws returns via a Box-Muller normal model around the selected expected/volatility assumptions — a stylized return process, not a bootstrap of actual historical sequences (a separate historical-sequence stress feature exists for that).
  • Dynamic spending guardrails: three methods — Vanguard-style ceiling/floor, Guyton-Klinger, and a risk-based method built on a precomputed success-rate surface (itself a stylized MC, trilinear-interpolated, shipped to a ±3pp fidelity gate vs. the engine). All are decision rules layered on the model, not predictions.
  • Compounding convention: the engine uses discrete monthly compounding ((1+r)^(1/12)), consistently across growth, inflation, and the risk surface.

11. Inflation

  • A single running-product inflation multiplier is applied by category (general, housing, healthcare, education, etc.). Category inflation rates are assumptions, not forecasts. Users may override inflation for specific future year bands (What-If); the year-band override applies to GENERAL inflation only.

11a. Education funding & 529 plans

  • College costs are modeled as education expense entries (the staged window on the Expenses page), inflated at the scenario's college-cost inflation assumption rather than general inflation.
  • With the education line's "funded from the 529 account first" setting on, the projection pays education costs from 529 balances before any other account — treated as qualified distributions (tax-free). Costs beyond the 529 balance fall back to the regular withdrawal order and are taxed normally.
  • 529 balances are never drawn for retirement spending, whatever the withdrawal order says. Non-qualified 529 withdrawals (10% penalty plus earnings taxation) are not modeled — the tool only ever routes qualified education dollars through a 529. State 529 deduction benefits are not modeled (state taxes are approximate throughout).
  • Contributions to a 529 are modeled like any account: the asset's annual contribution (while its owner's salary runs) or scheduled transfers.

12. Advisor-authored adjustments

  • Advisors may apply a variance layer (adjusting balances, income, expenses, expected return, or inflation, whole-stream or from a future year onward). These are the advisor's inputs and the advisor's professional responsibility — the tool records and applies them transparently (append-version history, shown with the underlying engine value and the advisor's rationale) but does not validate their reasonableness. Existing disclaimers govern; see questions-for-lawyers.md #26.

Review cadence

  • Annually (January): re-attest every K2-manifest figure against the current published IRS/SSA/CMS values; refresh anything past its reviewBy.
  • On any engine change touching tax, RMD, SS, Medicare, or guardrails: confirm the K1 golden tests and K3 cross-validation fixtures still pass and update this document if a simplification changed.

Prefer a copy to keep or print? Download the PDF.