Back to Portfolio On Fire

How the FIRE projection works

A projection you cannot inspect is a horoscope with a chart attached. This page sets out the exact arithmetic Portfolio On Fire runs, the assumptions it makes, and — more importantly — the five things it deliberately does not model.

The short answer

  • It compounds monthly: balance = balance × (1 + rate/12) + contribution, repeated month by month.
  • Two modes: project until you reach an amount, or project forward to a date and report the value there.
  • The rate you type is treated as nominal. Enter 7% and the effective compounded return is 7.23% a year.
  • It does not model inflation, tax, fees, sequence-of-returns risk or variable contributions.
  • It is a sensitivity tool, not a prediction. Changing the return assumption from 5% to 9% moves a typical result by seven years.

The arithmetic, in full

There is no proprietary model here and no machine learning. The projection is a loop that runs once per month:

  • Convert the annual return you entered into a monthly rate: monthlyRate = annualReturnPct / 100 / 12
  • For each month: balance = balance × (1 + monthlyRate) + contribution
  • Separately track contributions alone: invested = invested + contribution
  • Stop when the balance crosses your target, or when the horizon runs out (50 years by default)

Two lines are plotted from those numbers. The portfolio line is the balance including growth. The invested line is only the money you put in. The gap between them is compounding, and watching that gap widen is the entire argument for starting early.

Growth is applied before the contribution each month, which treats your monthly payment as arriving at the end of the month rather than the start. That is the conservative convention — an end-of-month contribution has one month less to compound than a start-of-month one — and it matches how most people actually invest, out of a salary that arrives at month end.

Nominal versus effective: why 7% becomes 7.23%

Dividing the annual rate by twelve gives a nominal monthly rate. Because each month's growth compounds on the previous month's, twelve of those months produce slightly more than the headline figure:

You enterMonthly rateEffective annual return
5%0.4167%5.12%
7%0.5833%7.23%
10%0.8333%10.47%

This is the same convention as the difference between APR and APY on a savings account, and it is what nearly every retirement calculator does. It is documented here because a number you cannot reconcile is a number you cannot trust. If you want the effective return to be exactly 7%, enter 6.78%.

A worked example

Someone with €50,000 invested, adding €1,000 a month, assuming 7% a year, targeting €750,000:

ResultValue
Target reached after20 years 5 months
Total contributed over that period€296,000
Growth€454,000

Roughly 60% of the final figure is growth rather than contributions. That ratio is the single most useful thing the chart communicates, and it is why the invested line is drawn alongside the portfolio line rather than left out for tidiness.

Compound growth against contributions over 21 years Two lines from the same projection: total portfolio value including growth, and the money contributed. Starting at 50,000 euro with 1,000 a month at 7 percent, the portfolio crosses 750,000 euro after 20 years and 5 months, of which 296,000 was contributed and 454,000 is growth. €0k€150k€300k€450k€600k€750k€900k05101520 EUR 750k after 20 years 5 months Portfolio €788k Contributed €302k value years Year 0: portfolio EUR 50,000, contributed EUR 50,000 Year 2: portfolio EUR 83,171, contributed EUR 74,000 Year 4: portfolio EUR 121,312, contributed EUR 98,000 Year 6: portfolio EUR 165,166, contributed EUR 122,000 Year 8: portfolio EUR 215,590, contributed EUR 146,000 Year 10: portfolio EUR 273,568, contributed EUR 170,000 Year 12: portfolio EUR 340,231, contributed EUR 194,000 Year 14: portfolio EUR 416,881, contributed EUR 218,000 Year 16: portfolio EUR 505,013, contributed EUR 242,000 Year 18: portfolio EUR 606,348, contributed EUR 266,000 Year 20: portfolio EUR 722,864, contributed EUR 290,000
The same projection, two lines. The gap between them is compounding — after twenty years it is roughly 60% of the final figure.

The number that should worry you

Keep every input above identical and change only the assumed return:

Assumed annual returnYears to €750,000
5%24.6 years
7%20.4 years
9%17.5 years

A four-percentage-point swing in an assumption nobody can verify in advance moves the answer by seven years. That is not a flaw in the arithmetic; the arithmetic is exact. It is a property of compound growth, and it is the most important thing to understand about any FIRE projection, including this one.

Use it as a sensitivity tool

The productive question is not "when will I reach financial independence?" — the honest answer is that nobody knows. It is "how much does my answer move when my assumptions are wrong?" Run the projection three times, at a pessimistic, central and optimistic rate, and treat the spread as the actual result.

The two goal modes

Amount mode: "when do I reach this number?"

You supply a target and the projection runs forward until the balance crosses it, capped at a 50-year horizon. The crossover is interpolated within the month it happens rather than rounded to a whole month, so the answer reads as 20 years 5 months instead of jumping in twelve-month steps.

Date mode: "what will I have by then?"

You supply a calendar month and the projection runs to exactly that point and reports the balance there. This is the mode to use when the date is fixed by something other than money — a mortgage ending, a child finishing school, a planned career change.

There is also an inverse: given a target and a date, the app solves for the monthly contribution required to connect them. That number is often more actionable than the projection itself, because it is the one thing on the screen you directly control.

Where the target number comes from

The projection needs a target, and the convention most FIRE planning uses is 25× annual spending — the inverse of a 4% withdrawal rate, from the 1998 Trinity Study on sustainable portfolio withdrawals.

Annual spending25× target
€30,000€750,000
€40,000€1,000,000
€50,000€1,250,000

Two caveats that the shorthand tends to lose. The Trinity Study examined 30-year retirement horizons using US market history; a longer retirement, or a different market, is not the case it tested. And it is a rule of thumb derived from one dataset, not a law. Many people plan on 3.5% (28×) for a long horizon. Portfolio On Fire does not pick for you — you enter the target, and the arithmetic above is applied to it.

What this projection does not model

This is the part most calculators leave out, which is precisely why it belongs near the end rather than in a footnote:

  1. Inflation. Results are in today's nominal currency. If you assume 7% growth and inflation runs at 2%, your real purchasing power grows at roughly 5%. To think in today's money, enter a real (inflation-adjusted) return instead of a nominal one.
  2. Tax. No capital gains tax, dividend withholding, or wealth tax. These vary enormously by country — a Dutch investor's position differs sharply from a US or German one — and guessing badly would be worse than not guessing.
  3. Fees. Fund charges and platform fees are not deducted. Subtract them from your assumed return: a 7% expectation with a 0.2% ongoing charge should be entered as 6.8%.
  4. Sequence-of-returns risk. The model applies a smooth, identical return every month. Real markets do not, and when a bad decade lands matters enormously — a crash early in accumulation is very different from the same crash late. Two portfolios with the same average return can end far apart.
  5. Variable contributions. One constant monthly figure. No raises, no career breaks, no lumpy bonuses.
Why not model all of it?

Each addition would demand inputs most people cannot supply accurately — your marginal rate in retirement, your country's treatment of unrealised gains, your salary trajectory over twenty years. A model with five confident-looking but invented inputs is less honest than a simple one with its limits written down. The arithmetic above is exact; it is the assumptions that carry the uncertainty, and hiding them behind more machinery does not reduce it.

How it is tested

The projection is a pure function: every input arrives as an argument, it reads no application state, and it touches no interface. That makes it testable in isolation, and it is covered by its own unit test suite. It runs entirely on your device — your portfolio value, your contribution rate and your retirement target are inputs to a local calculation, not a request to a server.

Not investment advice

Portfolio On Fire is a tracking and planning tool. It does not broker trades, hold funds, or recommend what to buy. This page describes arithmetic, not a recommendation, and nobody involved is a licensed financial adviser. For decisions that matter, talk to someone regulated in your country.

Run it on your own numbers

The projection, the dividend forecast and the charts — computed on your device.

Download Portfolio On Fire