The parameters

Every field in the simulation and how it moves the result.

Personal data, capital and inflation are set in their own sections. All income and expenses (contributions, earnings, pension, recurring costs and one-off events) go in as rows in the Income and expenses table, each with an amount, frequency, period and inflation indexation.

Your life line

Current age. The simulation's starting point. It determines the length of the accumulation phase (today → FIRE age) and of the post-FIRE phase (FIRE → estimated death).

FIRE age. The age at which you expect to stop working; the corresponding year is shown below the field. From that point the portfolio switches from accumulation to withdrawal.

Simulation end. Two modes. Stochastic: lifespan is sampled from ISTAT mortality tables by sex — each path draws its own age of death XX — and every simulation runs a different length. Fixed age: all simulations end at the same age.

Capital and inflation

Starting capital. The value of the portfolio already invested today, where the simulation begins.

Rebalancing. How often the portfolio is realigned to its target allocation, applied forward on each simulated path: monthly, quarterly, semi-annual, annual, never, or drift-based with a percentage threshold. With Never, weights follow buy & hold. This cadence applies during accumulation; in the FIRE phase withdrawals do most of the rebalancing and only the drift backstop stays active. See How it works.

Inflation rate. Either a custom fixed value, or Italian historical inflation sampled from ISTAT data, which reflects the real variability of prices. It revalues expenses and all indexed items year after year.

Inflation is the parameter people underestimate most, because it acts slowly and then all at once: over a thirty-year horizon the compounded effect is substantial.

Income and expenses

Amount and frequency. For each row you give an amount and a frequency: one-off, or recurring (monthly, quarterly, semiannual, annual). Income feeds the portfolio, expenses draw from it.

Period (From / To). When a row starts and ends: immediately, from a specific year or age, or from the FIRE year; through to a year, an age, the FIRE year, or for life.

Inflation. Two things:

  • How much of inflation the row tracks — 0% keeps the amount fixed in nominal terms (it loses purchasing power), 100% keeps its real value, ~75% is the Italian INPS pension style.
  • What your typed amount meansToday: it's in today's money, and the model inflates it from now until the row starts. At start: it's the nominal figure the row will actually pay in its first year (use this for a known future amount, e.g. a €1,200/month pension quoted for age 67); it only starts compounding inflation from activation.

Inside the engine every row follows a revaluation multiplier:

mt=mt1(1+πtf)m_t = m_{t-1} \cdot \bigl(1 + \pi_t \cdot f\bigr)

where πt\pi_t is the month's inflation and ff the share of inflation the row tracks (0–100%). With Today the multiplier starts at 11 now and grows immediately, so the amount you type is revalued even in the months before activation. With At start the multiplier stays at 11 until the row begins: the amount you type is already the nominal figure of the first payment.

Those fields are enough to model almost any cash flow. The most common patterns:

SituationType · frequency · From → To · Inflation
Mortgage paymentExpense · monthly · now → end of mortgage · 0% (fixed rate stays nominal)
State pensionIncome · monthly · age 67 → for life · 75–100% of CPI
Child costsExpense · monthly · now → year the child turns ~25 · 100% of CPI
Rental incomeIncome · monthly · now → for life · ~75% of CPI
WindfallIncome · one-off · specific age · 0%

Three details that change results more than they seem to:

  • On a fixed-rate mortgage inflation must be 0%: the payment stays nominally identical, and that is precisely what makes it lighter over time. Indexing it is an error that makes the plan look worse than it is.
  • On a state pension, revaluation isn't full: roughly 100% of CPI on the lowest payments, 75–90% on middling ones. Assuming 100% on an average pension overstates future income.
  • On rental income, enter the rent already net of taxes and maintenance, and ask yourself whether it continues past FIRE or stops earlier.

Taxes and events

Capital gains tax and stamp duty. The rate applies to gains realised on withdrawals and on rebalancing that generates sales (typically 26% in Italy). Stamp duty is 0.2% a year on the portfolio total: each December every holding is scaled by the factor 10.0021 - 0.002. Both bite year after year.

On withdrawals, to hand you the net amount you asked for the engine sells more and applies the gross-up:

gross=net1gˉτ\text{gross} = \frac{\text{net}}{1 - \bar{g} \cdot \tau}

where gˉ\bar{g} is the embedded gain of the mix actually sold — selling the asset that ran up the most realises more tax — and τ\tau the rate. How gˉ\bar{g} is computed, with the full worked example, is in How it works.

Unexpected events. Rare extraordinary expenses (medical emergencies, for example) that force extra withdrawals, each one taking a percentage of the portfolio's value at the moment it strikes. Four preset levels:

LevelEventsWithdrawal per event
Light115% of portfolio value
Moderate130% of portfolio value
Heavy145% of portfolio value
Severe260% of portfolio value each

Event ages are drawn once and shared across all simulations (EUE \sim \mathcal{U} between your current age and the median death age), so comparisons between scenarios stay comparable. Each event withdraws p%p\% of the portfolio's value (VtEp)(V_{t_E} \cdot p) at the moment it strikes. They appear as amber markers on the charts.