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.
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:
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.
Your target portfolio is your retirement spending divided by your safe withdrawal rate (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.
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:
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).
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.
Every year in the accumulation projection is exactly this, and the milestone table, chart and CSV all show the same arithmetic:
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 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.
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.
| Strategy | Rule |
|---|---|
| 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. |
| Guardrails | Simplified Guyton-Klinger: cut spending ~10% if your withdrawal rate drifts too high, raise it ~10% if it drifts low. |
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.
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.