Ember Back to the planner

Methodology & assumptions

Exactly how Ember turns your inputs into a financial-independence date, a target number, and a “will it last?” probability — and where we simplify. Everything runs in your browser. Not financial advice.

Real return FIRE number The bridge Projection & FI date Monte-Carlo Historical replay Withdrawal strategies Tax Goal solver Limits & honesty

1 · Real (inflation-adjusted) return

Every figure in Ember is in today’s money. We convert your nominal return and inflation into a single real return using the exact Fisher relation, not a subtraction:

realReturn = (1 + nominalReturn) / (1 + inflation) − 1

So 7% nominal with 3% inflation is a 3.88% real return (not 4%). Working in real terms means a dollar at age 30 and a dollar at age 65 mean the same thing on every chart.

2 · The FIRE number

Your target portfolio is your retirement spending divided by your safe withdrawal rate (SWR):

fireNumber = retireSpend × (100 / swr)

At a 4% SWR that’s the familiar “25× your annual spending.” Ember then adjusts this effective target for two things: other income in retirement (a pension/rental lowers the portfolio you must build) and taxes (see §7), which gross up the withdrawal your portfolio has to fund.

2b · Other income that starts later — the “bridge”

A pension or state benefit usually starts years after you reach financial independence. Between those two dates your portfolio must fund the whole of your spending on its own. So Ember sizes your target as:

fireNumber = target for the reduced spend (once the income starts)
            + the present value of bridging the gap until it does

The bridge is discounted at your real return, and the FI date is solved iteratively (your target depends on when you retire, and when you retire depends on the target).

Why this matters. Earlier versions of Ember subtracted other income from the target immediately, even if it began decades later. That made the headline FIRE number and FI date look better than reality — and quietly disagreed with the simulation in §4. Fixed in Sprint 31: a plan with a pension at 67 now shows a higher target and a later FI date, and it survives a zero-volatility drawdown. If you saved a plan with other income before this change, your number will have gone up. That is the honest number.

3 · Deterministic projection & your FI date

The main line is a year-by-year real-terms projection from your current age to 100. Income can grow over your career and plateau at a peak age. Your FI date is the first age the portfolio reaches the FIRE number — interpolated to a fraction of a year so small input changes move it smoothly rather than in jumps.

The timing convention (and why it matters)

Every year in the accumulation projection is exactly this, and the milestone table, chart and CSV all show the same arithmetic:

endOfYear = startOfYear × (1 + realReturn) + netCashFlow

Growth accrues on the balance you started the year with; the year's net cash flow — income minus spending, minus any life events — lands at the end of the year. So a contribution earns no return in the year you make it. That is the conservative choice for saving, and it is why our numbers can be slightly behind calculators that credit a full year's growth to money you only saved in December.

In retirement the convention deliberately flips: spending is withdrawn at the start of the year, before growth (see §4). Both choices share one rule — money moving in or out never earns that year's return — and both err on the cautious side of the answer they affect.

A spending deficit is real money. If your spending exceeds your income, the shortfall is withdrawn from the portfolio, exactly like a negative contribution. Ember used to floor this at zero, which quietly let a portfolio compound as though the gap cost nothing; a plan with no income and $48,000 of spending appeared to grow. It now shrinks, which is what actually happens.
“Not reached” is a real answer. If your portfolio only reaches the FIRE number after your life expectancy, Ember says not reached within the modelled lifetime rather than quoting an age you would not live to see — and it reports no success probability at all, because a retirement that never begins cannot be scored. A plan that never retires never runs out of money, and calling that “100% success” would be the most flattering lie the model could tell.

4 · Monte-Carlo (“will it actually last?”)

A single average return hides sequence-of-returns risk — a crash just after you retire hurts far more than the same crash later. So Ember (Pro) runs hundreds of randomized lifetimes: each year’s return is drawn from a normal distribution centred on your real return with your volatility as the standard deviation. Withdrawals are taken before growth each year (the conservative choice). The success rate is the share of runs whose money survives to your life expectancy; we also report the 10th/50th/90th-percentile portfolio paths.

The random generator is seeded (deterministic), so the same inputs always give the same result — reproducible, testable, and frozen by a golden-master test in our suite.

5 · Historical replay (block bootstrap)

Instead of random draws you can replay sequences of real-world-style annual returns, sampled in contiguous blocks so crashes and recoveries stay clustered the way they occur in markets.

Honest caveat: the bundled series is illustrative — a multi-decade set of real-equity-like returns with a fat left tail — not exact Shiller 1871+ data. Treat historical mode as a stress-flavoured alternative to Monte-Carlo, not a claim about specific years. A versioned real dataset is planned (EMB-401); this page will say so the moment it ships.

6 · Withdrawal strategies

StrategyRule
Fixed 4%Spend the same real amount every year (classic 4%-rule spending).
Flexible %Spend a constant % of the current balance, floored at 60% of target — you tighten in bad years.
GuardrailsSimplified Guyton-Klinger: cut spending ~10% if your withdrawal rate drifts too high, raise it ~10% if it drifts low.

7 · Tax — a deliberate simplification

Ember estimates one effective rate on retirement withdrawals from your account mix: tax-deferred (401k/pension) is treated as income-taxed, taxable brokerage as capital-gains-taxed on the gain portion, and Roth/tax-free as untaxed.

This is intentionally not a jurisdiction-specific tax engine (no brackets, credits, RMDs, or local rules). It captures the shape of the tax drag on FIRE, not a filing. For real numbers, consult a qualified professional in your country.

8 · Goal solver (“free by age X”)

The goal-first insight inverts the projection: holding your income, returns and retirement spending fixed, it finds the highest annual spending — i.e. the lowest saving — whose FI date still lands by your target age, then reports the required annual savings and savings rate. If even saving 100% of income can’t reach the goal in time, it says so and shows the earliest age that is reachable.

9 · Limits & honesty