FIREproof Help

Guides, references, and concepts

Browse topics

How a simulated year flows

The exact ordering of adjustments, taxes, withdrawals, returns, rebalance.

TL;DR. Each cycle replays a historical window one year at a time. Inside a year, the simulator runs a fixed sequence of phases: initialize → apply adjustments → record taxable events → plan withdrawals → fund HSA → calculate base spending → generate cash-flow deposits → execute withdrawals → pay last year's taxes → apply portfolio returns → rebalance. When a year-N number looks surprising, the answer is almost always upstream in this list.

The phases, in order

  1. Initialize the year. Open new log buffers on every account, reset per-year accumulators (dividends used, payroll-deposited account IDs).
  2. Resolve adjustments. Figure out which Inflows and Outflows apply this calendar year. Income, spending, post-tax, HSA contributions, and Real Estate are bucketed separately so each bucket can be processed at the correct moment below.
  3. Record taxable events. For each income adjustment (job, pension, Social Security, other income), generate a taxable event for next year's tax bill. Job adjustments also run payroll: pre-tax 401(k)/403(b)/457(b) deferrals reduce taxable wages; FICA, deductions, and deferrals exit the household pool before surplus is computed. Income flagged Treat as post-tax is skipped here: it is already-taxed money, so it produces no taxable event and does not appear in that year's taxable income at all.
  4. Plan withdrawals. Using your account order and any bracket-fill / ACA / IRMAA caps, decide how the year's spending plus last year's tax bill will be sourced.
  5. Fund HSA. Apply HSA contributions before base spending so the HSA's below-the-line tax treatment is captured for the year.
  6. Calculate base spending. Run your chosen spending-plan rule against the current portfolio, last year's spending, and inflation to get this year's base spending number.
  7. Generate cash-flow actions. Route any surplus through your cash-flow priorities: deposits, contributions, cash reserves, debt paydown, etc. The surplus is income left over after spending and taxes.
  8. Execute withdrawals. Actually withdraw the planned amounts from each account, recording realized gains, ordinary income, and early-withdrawal penalties as taxable events.
  9. Pay last year's taxes. Settle the tax bill computed from the prior year's events, including federal income, capital gains, FICA-related items, ACA reconciliation, and state taxes if configured. The cash moves this year, but the bill uses the brackets and rules of the year the income was earned, as a real tax return does. Because this step comes after the withdrawals, the year a cycle runs out of money never reaches it: that year's detail shows every tax at zero, and a banner says so. Step back one year for a complete picture.
  10. Apply portfolio returns. Grow each asset by this calendar year's historical return, applied to the post-withdrawal balance.
  11. Rebalance. Drift the portfolio back toward its target allocation. HSA can be excluded if configured; cash reserves are honored.
  12. Convert to Roth. Run any Roth conversions last, sized on all of the year's income, including the gains your rebalance realized. Then settle the ACA subsidy and record the year's income for the IRMAA lookback.
  13. Advance the clock. Increment current_year and repeat until the horizon ends or the portfolio depletes.

Related

Was this helpful?

For sim-specific issues, open Plan Diagnostics from the Proof view. For everything else, reach out to support.