Page actions
instrument / verified-clean
Monte Carlo Retirement Simulator
The current ledger marks this instrument verified clean within the source-bound verification corpus.
Inspectable records
Ledger state
The current ledger marks this instrument verified clean within the source-bound verification corpus.
- Area
- Finance, Economics & Business (educational only — never individualized investment, tax, or legal advice)
- Tranche
- tranche-6
- Evidence ID
- t6-061
- Ledger rows
- 1
No ledger note is attached.
Review findings
The formula is a reasonable high-level Monte Carlo concept, but the exact financial algorithm is not sufficiently specified for verification. The four deterministic vectors use the valid degenerate case volatility=0 so expected values are hand-checkable without an unseeded random generator. Before PASS, specify withdrawal timing, return convention, failure semantics, withdrawal-rate behavior, return-floor policy, inflation treatment, percentile methodology, and reproducible RNG details.
Formula and scope findings
- The recurrence is underspecified: it must state whether each year's return is applied before or after the withdrawal. The test vectors assume end-of-year withdrawal followed by return: B_t=(B_{t-1}-W_t)(1+r_t).
- The failure rule is unspecified. The test vectors define failure when the balance immediately before a scheduled withdrawal is less than that withdrawal; equality is allowed.
- A normal return distribution can generate r<-1, which implies a loss greater than 100% and a negative portfolio unless returns are floored or a different distribution is used.
- The withdrawal plan is ambiguous: fixed nominal withdrawals, inflation-adjusted withdrawals, and percentage-of-balance withdrawals produce different algorithms. The test vectors use a fixed nominal withdrawal unless a withdrawal rate is explicitly supplied.
- The meaning of withdrawal rate is unspecified. The test vector using 4% interprets it as the initial balance multiplied by 0.04, with a fixed nominal withdrawal thereafter.
- A finite Monte Carlo estimate is random. No random-number seed, generator, draw ordering, or reproducibility contract is specified, so exact stochastic test outputs cannot be verified.
Unit assumptions
- Starting balance and withdrawals are in the same currency units.
- Mean return and volatility are annual decimal fractions: 0.05 means 5% and 0.20 means 20%, not 5 and 20.
- The normal draw is an annual simple return, r~N(mu,sigma), rather than a continuously compounded log return.
- Withdrawals occur once per year at the beginning of the recurrence, followed by that year's return; equivalently, the balance update is B_t=(B_{t-1}-W_t)(1+r_t).
- A path succeeds only if it can make every scheduled withdrawal; balance equal to the withdrawal is allowed and leaves zero after withdrawal.
- For deterministic sigma=0 vectors, every trial has the same return and therefore the same path; p5, p50, and p95 are identical.
Boundary hardening
BREAK_CLAIMED · SELF_FLAGGED
The extreme-magnitude vector produces approximately 1e616, which overflows standard JavaScript Number arithmetic to Infinity. The specification also leaves withdrawal timing and return-unit conventions underspecified, allowing materially different balances for the same apparent inputs.
Errata and corrections
No applied erratum is attached to this unique-name record.
Inspectable example
4 review vectors are recorded. One source-bound sample is shown below.
{
"inputs": {
"starting_balance": 100000,
"withdrawal_amount": 5000,
"mean_return": 0.05,
"volatility": 0,
"years": 3,
"trial_count": 100,
"withdrawal_timing": "end_of_year",
"return_model": "simple_annual",
"return_draws": [
0.05,
0.05,
0.05
]
},
"expected_outputs": {
"success_probability_percent": 100,
"balance_percentiles": {
"p5": [
100000,
99750,
99487.5,
99211.875
],
"p50": [
100000,
99750,
99487.5,
99211.875
],
"p95": [
100000,
99750,
99487.5,
99211.875
]
}
},
"working": "All 100 trials are identical because sigma=0. Year 1: (100000-5000)*1.05 = 95000*1.05 = 99750. Year 2: (99750-5000)*1.05 = 94750*1.05 = 99487.5. Year 3: (99487.5-5000)*1.05 = 94487.5*1.05 = 99211.875. Every withdrawal is affordable, so 100 of 100 trials succeed and every percentile equals the common path."
}Related workflows
No source-defined multi-instrument workflow membership is recorded.
Sources and evidence
These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.
VERIFIED_LEDGER.json · VERIFIED_CLEANevidence-tranche6/tranche6-results.jsonBOUNDARY_HAZARD_CATALOG.json