run_retirement_stress_test
Runs a deterministic projection plus Monte Carlo simulation of a retirement savings plan, aggregating active pension streams before applying personal income tax allowances and the shared GESY ceiling. Use for a retirement savings sustainability or portfolio-longevity projection. Reuse the user's ages, savings, contributions and planned monthly spending; ask for each missing essential input and never use example personal values. Values are EUR, contributions/drawdown are monthly, and ages are years. Supply pensionStreams to include Cyprus or foreign pension income; concurrent streams are aggregated before applying the personal progressive allowance, one foreign-pension allowance and the shared €180,000 GESY ceiling. Foreign pensions use the 2026 flat 5% rate above €5,000 unless a net override is supplied. Omitted state pension means pension income is excluded. Returns, inflation, horizon and simulation count use disclosed modelling assumptions when omitted. Runs without seed are stochastic; a supplied seed makes identical inputs repeatable for the same implementation version.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Optional unsigned 32-bit seed for repeatable runs with identical inputs and implementation versions. Omit to keep the run stochastic. | |
| endAge | No | Planning horizon age (default 90). | |
| currentAge | Yes | Age today. | |
| simulations | No | Monte Carlo runs (default 1000). | |
| statePension | No | Expected monthly state pension in EUR. | |
| inflationRate | No | Annual percentage value (e.g. 2.5 for 2.5%). Supply the actual rate unless the user accepts a stated modelling default. | |
| retirementAge | Yes | Planned retirement age. | |
| currentSavings | Yes | Current investable savings balance in EUR. | |
| pensionStreams | No | Optional annual pension streams that offset retirement drawdown. Concurrent streams are aggregated before applying progressive tax, the single 2026 foreign-pension €5,000 allowance, and the shared personal GESY ceiling. A supplied netAnnualOverride is treated as already net and is used as-is. | |
| monthlyDrawdown | Yes | Planned monthly withdrawal in retirement in EUR. | |
| monthlyContribution | Yes | Monthly contribution until retirement in EUR. | |
| expectedAnnualReturn | No | Annual percentage value (e.g. 2.5 for 2.5%). Supply the actual rate unless the user accepts a stated modelling default. | |
| expectedAnnualReturnRetirement | No | Annual percentage value (e.g. 2.5 for 2.5%). Supply the actual rate unless the user accepts a stated modelling default. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| series | No | ||
| ltcRunRate | Yes | ||
| assumptions | Yes | ||
| acuteRunRate | Yes | ||
| shockRunRate | Yes | ||
| medianDepletionAge | Yes | ||
| successProbability | Yes | ||
| averageDepletionAge | Yes | ||
| medianTerminalWealth | Yes | ||
| deterministicFinalBalance | Yes | ||
| worstCase10thPercentileBalance | Yes |