User Manual • Styled HTML Export

Retirement Risk Lab User Manual

Version: 2026-03-02
Scope: v1.0.0 / Engine 1.0.0-engine2

Why Retirement Risk Lab?


When I retired in 2023 after years as Director of Development for a global manufacturing company, one of my wife and my Sunday rituals was “doing the money.” I’d gather the latest balances for everything and use spreadsheet formulas to give my wife an update on how long our money might last - straight-line projections, rough assumptions, best I had.

I knew it wasn’t accurate. Our financial advisor had shown me output from a Monte Carlo simulator once, and it was reassuring - but things change fast, and I didn’t want to depend on someone else for answers about our own financial situation.

I’d just spent a year and a half building a serious blackjack simulator - one that could run two million hands per second and produce deterministic, reproducible results. What I learned from that project was that I had a taste for that kind of rigor: if you’re going to test something, you need to be confident that what you’re testing is the only thing that can change.

So I decided to build a Monte Carlo retirement simulator for myself. One I could trust, inspect, and run as many times as I wanted without bothering anyone.

That’s Retirement Risk Lab. This manual covers how to use it.

1) What this app is

Retirement Risk Lab is an offline Monte Carlo retirement simulator.

It estimates the probability your portfolio survives from current_age through end_age under uncertain returns, inflation, spending, and optional income/expense assumptions.

Core properties:

2) Important input conventions

Before using the app, lock these conventions:

3) Screen layout

The main window has two major areas:

  1. Left panel (Inputs) - Core / Income / Advanced tabs - Simulation and goal-seek controls - File action buttons

  2. Right panel (Results) - HTML results report - Fan chart / Path table area

Menu bar:

4) Input fields and meaning

4.1 Core tab

4.2 Income tab

4.3 Advanced tab

Startup behavior:

  1. Click Load Baseline (or load your own scenario). - If baseline file is missing, app recreates it automatically.
  2. Confirm all fields use your intended units.
  3. Choose Timestep: - Annual for faster iteration - Monthly for more granular depletion timing
  4. Set Trials (start around 10,000 to 50,000 while iterating).
  5. Set Seed Mode: - fixed for apples-to-apples comparison runs - random for fresh draw stream each run
  6. Click Run Simulation.
  7. Review report sections in order: - Run Overview - Assumption Warnings - Ending Balance Distribution - Depletion Timing - Run Metadata - Math Transparency
  8. Review fan chart, then toggle Show Path Table for checkpoint detail.

6) How to read results

6.1 Run Overview

6.2 Ending Balance Distribution

6.3 Depletion Timing

6.4 Run Metadata

6.5 Assumption Warnings

6.6 Math Transparency

Shows model formulas and convention text used in the run, including:

7) Fan chart and path table

8) Goal seek (target success)

Controls:

Behavior:

9) Scenario and results files

9.1 Scenario files

9.2 Run artifact files

10) Help system in app

The results panel can show built-in guides:

Use:

11) Licensing behavior (app side)

License manager entry points:

Activation methods:

Stored license location:

Enforcement mode is compile-time:

12) Troubleshooting

12.1 RR_ERR_TRIALS_OUT_OF_RANGE

Meaning:

Fix:

12.2 Runs feel slow

12.3 Compare chart unavailable

12.4 Reproducibility differences

12.5 Window geometry persistence

12.6 App blocked on first launch (direct download builds)

13) Suggested operating discipline