exityear

a free and private financial projection tool with a bit more oomph than others

Methodology & Sources

Detailed mathematical models, tax assumptions, and statutory data sources.

Nominal vs. Real Math

All internal calculations in ExitYear run on a strictly nominal basis. Asset growth rates and return assumptions represent raw nominal percentages (e.g. 7% per year). Inflation is compounded and applied directly to future income streams, living expenses, and withdrawals.

When you select "Today's money" on the main chart, the engine deflates nominal figures using standard present-value discounting:

Value_Today = Value_Nominal / (1 + inflation_rate) ^ years_from_start

Account-Aware Tax Modeling

The main projection engine applies a user-configured flat effective tax rate (or 0% for after-tax income) combined with account-aware tax rules across your savings:

  • Cash & Emergency Reserves: Liquid withdrawals incur no additional tax liability.
  • Taxable Brokerage: Withdrawals are split between principal cost basis and capital gains, with gains taxed at your effective rate.
  • Pre-Tax Accounts (Traditional 401(k), IRA, 403(b), Pensions): Contributions reduce taxable wage income in the contribution year. Distributions count as taxable income in retirement.
  • Tax-Free Accounts (Roth IRA, Roth 401(k), HSA): Qualified distributions are tax-free. Contributions to HSAs reduce taxable wage income in the contribution year.
  • Early Retirement Liquidity (Pre-59): The simulation draws from taxable liquid reserves (cash and brokerage) first to fund early retirement years before tapping tax-advantaged retirement accounts.

Dividend Yield & Total Return Decoupling

Standard calculators often treat dividend yield as bonus money added on top of market gains. ExitYear decouples price appreciation from cash dividend yield to prevent double-counting:

Price_Growth_Rate = max(0, Expected_Return - Dividend_Yield_Pct)

If an account assumes an 8% return and a 3% dividend yield, the underlying share price grows at 5% per year. The other 3% is distributed as monthly cash.

Dividends follow a two-phase lifecycle:

  • Dividend Reinvestment (DRIP): During working years (or up to your DRIP end age), dividends automatically reinvest into the account each month. In taxable brokerage accounts, each reinvestment increases your cost basis and incurs current tax. Tax-advantaged accounts (401(k), IRA, Roth, HSA) compound without annual tax drag.
  • Cash Payout: At retirement (or after your DRIP age), reinvestment stops. Dividends flow directly into household cash flow to pay living expenses.

Drawdown Strategies: SWR, Dividends First, and Dividends Only

Retirement plans fund living expenses using one of three drawdown rules:

  • Safe Withdrawal Rate (SWR): Standard Trinity study mechanics. Living expenses are funded by selling portfolio assets across liquid accounts according to your withdrawal rate, regardless of dividend cash flow.
  • Dividends First: Hybrid cash flow priority. Dividends fund living expenses first. Shares are sold from liquid assets only if expenses exceed dividend payouts, reducing share sales during downturns.
  • Dividends Only: Strict principal preservation. Living expenses are paid only from dividends and other income. Shares are never sold in retirement. If dividends fall short of expenses, the gap is tracked as an unfunded cash shortfall.

Standalone Tools & Statutory Data Sources

While the main planner uses an effective tax rate to prevent false precision over multi-decade horizons, ExitYear includes dedicated standalone calculators that evaluate full statutory schedules:

  • Paycheck Calculator (2026 Federal & FICA Brackets): Evaluates IRS Revenue Procedure brackets for Single, Married Filing Jointly, Married Filing Separately, and Head of Household filers (IRC §1, §63), plus FICA taxes (6.2% Social Security up to the $184,500 wage base limit and 1.45% Medicare, with the 0.9% Additional Medicare Tax under IRC §3101).
  • Paycheck Calculator (50-State Income Tax Tables): Uses graduated bracket rates, standard deductions, and flat-tax schedules compiled from state department of revenue statutes to estimate state withholding.
  • Healthcare Modeler (ACA Subsidies): Pre-65 healthcare subsidy modeling references Kaiser Family Foundation (KFF) benchmark premiums and HHS Federal Poverty Line (FPL) multiplier tables.

Use the Paycheck Calculator to find your combined federal, state, and FICA effective rate to enter into the main planner.

Debt & Mortgage Amortization

Liabilities model true fixed-rate loan amortization using standard annuity formulas:

Payment = (Principal * monthly_rate * (1 + monthly_rate)^months) / ((1 + monthly_rate)^months - 1)

Real estate assets are treated as illiquid. Property equity builds net worth as debt amortizes and property appreciates, but is never liquidated to fund monthly living expenses.

Monte Carlo Simulations

Deterministic projections apply a constant expected return every year. While constant compounding provides an arithmetic baseline during accumulation, it fails to capture Sequence of Returns Risk (SRR) during decumulation. When living expenses require selling assets during an early retirement downturn, an investor must liquidate more shares to meet fixed dollar costs. This permanently reduces share count and diminishes future compounding, which can trigger early portfolio exhaustion even if long-term average returns match the plan.

To stress-test plans against market path dependency, ExitYear runs a stochastic simulation modeled around the nominal expected return with fixed annual return volatility:

u1 = max(rng(), Number.EPSILON), u2 = rng()
Z = sqrt(-2 * ln(u1)) * cos(2 * PI * u2) [Box-Muller: Z ~ N(0, 1)]
Return_Year_i = Expected_Return + Volatility * Z (Volatility = 15%)

  • Stochastic Generation (Mulberry32 & Box-Muller): Return shocks are drawn from a standard normal distribution via the Box-Muller transform, seeded by a 32-bit PRNG (Mulberry32) for reproducible, deterministic test runs. Annual volatility is fixed at 15% (sigma = 15%), calibrated to broad-market equity index dispersion.
  • Execution Scale: Desktop browsers evaluate 500 trials; mobile devices evaluate 100 trials to maintain client-side responsiveness. Computations execute in a background Web Worker with an asynchronous generator fallback on the main thread.
  • Full Engine Evaluation: Rather than approximating outcomes with an isolated real-growth formula or static withdrawal rate, every trial executes the complete, month-by-month cash-flow projection engine. Each path fully models progressive tax withholding, fixed-rate debt amortization, multi-phase living expenses, geographic arbitrage adjustments, lump-sum windfalls, and early withdrawal ordering under IRC §72(t).
  • Account-Level Selectivity & Volatility Dampening: Randomized return overrides apply only to assets inheriting the global expected return. Assets with a user-specified custom growth rate (such as cash reserves, CDs, or fixed income) maintain their static nominal rate, acting as natural volatility dampeners. Dividend yield decoupling remains active across all trials: price growth equals max(0, return - dividend_yield), preventing cash distributions from being double-counted as capital appreciation.
  • Strict Solvency Definition: A trial is marked as successful if and only if liquid cash shortfall is zero in every single year (shortfallCashFlow == 0) AND ending net worth at life expectancy is positive. The engine tracks cash-flow shortfalls (inability to fund mandatory living expenses and debt) rather than cumulative contribution shortfalls, so a single unfunded retirement year marks the entire path as a failure.
  • Percentile Trajectories (p10, p50, p90): Ending net worth balances for all trials are ranked each year using linear interpolation between percentiles. The 10th percentile (p10) highlights poor sequence-of-returns stress cases, the 50th percentile (p50) tracks median performance, and the 90th percentile (p90) illustrates favorable early growth paths.

When the interface is toggled to "Today's money", the percentile curves and terminal statistics are deflated by the compound inflation factor to preserve purchasing-power alignment with deterministic charts:

Deflation_Factor(age) = (1 + inflation_rate) ^ max(0, age - currentAge)
Percentile_Today(age) = Percentile_Nominal(age) / Deflation_Factor(age)

Exit Readiness Score

The Exit Readiness Score (0 to 100) provides a deterministic check on balance sheet structure, answering whether an early exit is viable without liquidity bottlenecks or excessive burn rate. It evaluates 5 weighted pillars on a standardized 0 to 10 scale:

  • Safe Withdrawal Rate & Coverage (30% weight): Compares projected annual spending at retirement to the liquid portfolio balance against the chosen safe withdrawal rate. A withdrawal rate of 3.5% or lower scores 10/10, 4% scores 8/10, and rates above 6% score 0/10.
  • Pre-59.5 Bridge Runway (25% weight): Models whether liquid, penalty-free accounts (cash, taxable brokerage, and accessible Roth contributions) can cover living costs from early retirement age to age 59.5 without triggering IRC §72(t) early withdrawal penalties. Plans retiring at or after age 59.5 receive a full 10/10.
  • Savings Velocity & Horizon (20% weight): Measures current gross savings rate and remaining accumulation years. A savings rate of 50% or higher with 3 or more years of runway receives 10/10.
  • Fixed Debt & Burn Drag (15% weight): Evaluates annual debt service as a percentage of gross income. Zero debt scores 10/10, while debt service consuming more than 35% of income scores 0/10.
  • Cash Buffer & Flexibility (10% weight): Evaluates current cash and liquid reserves measured in months of living expenses. A 12-month cash cushion scores 10/10, 6 months scores 8/10, and under 1 month scores 0/10.

The composite score assigns four deterministic tiers: Optimal (85 to 100), Viable (70 to 84), Elevated Risk (50 to 69), and Critical Friction (below 50).

Bridge_Needed = sum_from_exit_to_59.5(Annual_Expenses - Guaranteed_Income)
Bridge_Coverage = Accessible_Liquid_Assets / Bridge_Needed