Retirement

Simulate a dynamic retirement-spending strategy

Projects retirement spending under a chosen dynamic-withdrawal rule across Monte Carlo market paths, reporting the year-by-year spending distribution, success probability, spending volatility, and ending-balance percentiles. Strategies: fixed_real (constant real, the "4% rule"), fixed_pct (percent of current balance), guardrails (Guyton-Klinger), vpw (Variable Percentage Withdrawal), and floor_and_ceiling. Shares the Monte Carlo return model and deterministic RNG. Calculation engine output, not financial advice. Deterministic given a seed.

post/v1/retirement/withdrawal-strategy

Request

  • Base URL: https://api.numeratica.com
  • URL: https://api.numeratica.com/v1/retirement/withdrawal-strategy
  • Auth: one of:
    • HTTP bearer
    • API key in header X-API-Key

Request body

annual_fee_ratenumber double

All-in annual cost drag as a decimal (0.01 = 1%): advisory fee plus fund expense ratios, applied as a reduction to the expected return. Omitted or 0 means the projection is GROSS of fees, which leaves result_id unchanged. Costs compound: a 1% load moves long-horizon outcomes by a large margin (see the Concepts page).

current_ageinteger required

Start of decumulation; spending begins now.

end_ageinteger required
current_balancenumber required
initial_ratenumber required

First-year withdrawal rate (used by all strategies except vpw).

strategy'fixed_real' | 'fixed_pct' | 'guardrails' | 'vpw' | 'floor_and_ceiling' required
expected_returnnumber

Required unless glide_path is given.

return_volatilitynumber

Required unless glide_path is given.

inflationnumber
num_simulationsinteger
seedinteger

Optional; generated and echoed back if absent (for reproducibility).

guard_widthnumber

guardrails: band half-width vs the initial rate (default 0.20).

guard_adjustnumber

guardrails: spending cut/raise step (default 0.10).

vpw_real_returnnumber

vpw: assumed real return for the amortization factor (default 0.03).

floor_multnumber

floor_and_ceiling: lower bound × initial real withdrawal (default 0.85).

ceiling_multnumber

floor_and_ceiling: upper bound × initial real withdrawal (default 1.20).

Example request

{
  "annual_fee_rate": 0.01,
  "current_age": 65,
  "end_age": 95,
  "current_balance": 1000000,
  "initial_rate": 0.04,
  "strategy": "guardrails",
  "expected_return": 0.05,
  "return_volatility": 0.12,
  "inflation": 0.02
}

Response

Dynamic-withdrawal projection

result_idstring
engine_versionstring
seedinteger
disclaimerstring

Example response

{
  "result_id": "wds_1a2b3c4d5e6f7a8b",
  "engine_version": "withdrawal-strategy-1.0.0",
  "inputs": {
    "annual_fee_rate": 0.01,
    "current_age": 65,
    "end_age": 95,
    "current_balance": 1000000,
    "initial_rate": 0.04,
    "strategy": "guardrails",
    "expected_return": 0.05,
    "return_volatility": 0.12,
    "inflation": 0.02
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.