Personal finance
Financial Independence Planner
When can what you have saved pay for your life, and which lever moves that year? Set a base, change one thing per scenario, and see each one arrive — or not — against the base. Everything is in today’s money. Financial independence is the FI in FIRE; nothing here models retiring early.
Your situation
Today’s money throughout. The first scenario is the base; a blank cell in any other row keeps the base figure.
| Scenario | Saving a year | Spending a year after | Real return % | Withdrawal % | |
|---|---|---|---|---|---|
| Base | |||||
Rates are percentages: 5 means 5% a year. The withdrawal rate is yours to set; the tool asserts none. Paste a block from a spreadsheet into any cell.
Base — financially independent
Age 51
in 16 years
Saving $30,000 a year at a 5.0% real return, your $150,000 reaches the $1,000,000 needed to draw $40,000 a year at 4.0% in 16 years, at age 51.
Target
$1,000,000
Years by formula
15.5
Pot on arrival
$1,037,156
Scenarios against the base
Figures in grey were left blank and keep the base’s. Sooner is green, later is red; the base itself carries no colour.
| Scenario | Saving a year | Spending after | Real return | Withdrawal | Target | Age | Years | Versus base |
|---|---|---|---|---|---|---|---|---|
| Base | $30,000 | $40,000 | 5.0% | 4.0% | $1,000,000 | 51 | 16 | The base |
| Save 10,000 more | $40,000 | $40,000 | 5.0% | 4.0% | $1,000,000 | 49 | 14 | 2 years sooner |
| Returns two points lower | $30,000 | $40,000 | 3.0% | 4.0% | $1,000,000 | 54 | 19 | 3 years later |
| Spend 5,000 less | $30,000 | $35,000 | 5.0% | 4.0% | $875,000 | 49 | 14 | 2 years sooner |
Portfolio by age, against the target
Each line is a scenario, the dashed level is its target, and the dot is the age it crosses. Figures in USD, today’s money.
Year by year
Every figure on this page is reachable from this table by hand: growth is the opening balance times the real return, and saving lands at the end of the year. Shown to the cent; each figure is rounded from its exact value, so a row can differ from the sum of its parts by a cent. The CSV carries full precision.
| Year | Age | Base opening | Growth | Saving | Base closing | Save 10,000 more | Returns two points lower | Spend 5,000 less |
|---|---|---|---|---|---|---|---|---|
| 1 | 36 | $150,000.00 | $7,500.00 | $30,000.00 | $187,500.00 | $197,500.00 | $184,500.00 | $187,500.00 |
| 2 | 37 | $187,500.00 | $9,375.00 | $30,000.00 | $226,875.00 | $247,375.00 | $220,035.00 | $226,875.00 |
| 3 | 38 | $226,875.00 | $11,343.75 | $30,000.00 | $268,218.75 | $299,743.75 | $256,636.05 | $268,218.75 |
| 4 | 39 | $268,218.75 | $13,410.94 | $30,000.00 | $311,629.69 | $354,730.94 | $294,335.13 | $311,629.69 |
| 5 | 40 | $311,629.69 | $15,581.48 | $30,000.00 | $357,211.17 | $412,467.48 | $333,165.19 | $357,211.17 |
| 6 | 41 | $357,211.17 | $17,860.56 | $30,000.00 | $405,071.73 | $473,090.86 | $373,160.14 | $405,071.73 |
| 7 | 42 | $405,071.73 | $20,253.59 | $30,000.00 | $455,325.32 | $536,745.40 | $414,354.95 | $455,325.32 |
| 8 | 43 | $455,325.32 | $22,766.27 | $30,000.00 | $508,091.58 | $603,582.67 | $456,785.59 | $508,091.58 |
| 9 | 44 | $508,091.58 | $25,404.58 | $30,000.00 | $563,496.16 | $673,761.81 | $500,489.16 | $563,496.16 |
| 10 | 45 | $563,496.16 | $28,174.81 | $30,000.00 | $621,670.97 | $747,449.90 | $545,503.84 | $621,670.97 |
| 11 | 46 | $621,670.97 | $31,083.55 | $30,000.00 | $682,754.52 | $824,822.39 | $591,868.95 | $682,754.52 |
| 12 | 47 | $682,754.52 | $34,137.73 | $30,000.00 | $746,892.24 | $906,063.51 | $639,625.02 | $746,892.24 |
| 13 | 48 | $746,892.24 | $37,344.61 | $30,000.00 | $814,236.86 | $991,366.69 | $688,813.77 | $814,236.86 |
| 14 | 49 | $814,236.86 | $40,711.84 | $30,000.00 | $884,948.70 | $1,080,935.02Reached | $739,478.18 | $884,948.70Reached |
| 15 | 50 | $884,948.70 | $44,247.43 | $30,000.00 | $959,196.13 | $1,174,981.77 | $791,662.53 | $959,196.13 |
| 16 | 51 | $959,196.13 | $47,959.81 | $30,000.00 | $1,037,155.94Reached | $1,273,730.86 | $845,412.40 | $1,037,155.94 |
| 17 | 52 | $1,037,155.94 | $51,857.80 | $30,000.00 | $1,119,013.74 | $1,377,417.40 | $900,774.78 | $1,119,013.74 |
| 18 | 53 | $1,119,013.74 | $55,950.69 | $30,000.00 | $1,204,964.43 | $1,486,288.27 | $957,798.02 | $1,204,964.43 |
| 19 | 54 | $1,204,964.43 | $60,248.22 | $30,000.00 | $1,295,212.65 | $1,600,602.69 | $1,016,531.96Reached | $1,295,212.65 |
Reuse the analysis
Copy the summary, or export the tables and the chart.
Transparent by design
Method and limits
Every figure above can be reproduced by hand from the year-by-year table, and the year can be checked with one formula. Where the arithmetic cannot give an answer, the page says so rather than printing an age.
The target
Spending a year after independence divided by the withdrawal rate — written SWR elsewhere; nothing here tests whether any rate is safe. At 40,000 a year and 4% that is 1,000,000. The rate is yours to choose: the tool cites no rule for it, endorses no 4% rule, and asserts none.
The projection
One row per year. Growth is the opening balance times the real return; saving is added at the end of the year; the closing balance is opening plus growth plus saving, and becomes the next year’s opening. You are independent in the first year whose closing balance is at or above the target.
Today’s money, real return
There is no inflation field because every figure is in today’s money: the return you enter is the real return, after inflation and fees, and the spending and saving are what they would cost today. A nominal return with inflation applied to everything gives the same year and figures nobody can picture.
The cross-check
Years = ln((Target × r + Saving) ÷ (Invested × r + Saving)) ÷ ln(1 + r), or (Target − Invested) ÷ Saving when r is zero. Rounded up it is the table’s year. Where the formula has no answer — a return that caps the pot below the target, a saving the growth cannot cover — the table is the authority and the chip says not available.
Blank means the base
A scenario is a change to the base, so a blank cell keeps the base figure and the scenario table shows it in grey. The base row itself has no fallback and every cell is required.
Versus base, and colour
Each scenario’s years to independence less the base’s. Fewer years is favourable and green; more is unfavourable and red. Balances, targets and ages are levels, not movements, and carry no colour. Where either the scenario or the base is not reached there is nothing to compare, and the cell says so.
What is refused, and what is merely unusual
Rejected: a value that is not a number, a withdrawal rate at or below zero, a return at or below −100%, negative spending, and a horizon that is not a whole year past today or is more than a century past it. Accepted and calculated: a negative return, a negative saving, a negative pot, a 20% withdrawal rate. Unusual is not invalid.
What it will not tell you
Whether the pot survives the years after independence. A constant real return and a withdrawal rate are a planning convention, not a forecast: returns arrive unevenly, tax and fees vary, and spending changes. This tool tells you which lever moves the year and by how much, under the figures you typed. The return is one constant real rate in every year, not a simulated market path: nothing here draws a distribution of outcomes or a probability of success.
No figure leaves the browser
Every figure is computed in this page. No balance, rate or result is sent anywhere, and the tool has no model call in it — the numbers come from arithmetic in lib/finance/financialIndependence.ts and from nowhere else.