Skip to content

Configuration

Pydantic models for all simulation configuration. These are the primary data structures you'll work with.

PlanConfig

PlanConfig

Bases: BaseModel

Core financial plan parameters.

AccountConfig

AccountConfig

Bases: BaseModel

A single investment account.

DiscreteEvent

DiscreteEvent

Bases: BaseModel

A one-time financial event at a specific age.

GuaranteedIncomeStream

GuaranteedIncomeStream

Bases: BaseModel

A recurring income stream (Social Security, pension, annuity).

MarketAssumptions

MarketAssumptions

Bases: BaseModel

Market return and inflation assumptions.

AssetClass

AssetClass

Bases: BaseModel

An asset class with a target allocation weight.

GlidePath

GlidePath

Bases: BaseModel

Age-based target allocation that shifts over time.

SimulationConfig

SimulationConfig

Bases: BaseModel

Simulation execution parameters.

StressScenario

StressScenario

Bases: BaseModel

A deterministic stress scenario overlay.

PolicyBundle

PolicyBundle

Bases: BaseModel

Bundle of all policy configurations.

SpendingPolicyConfig

SpendingPolicyConfig

Bases: BaseModel

Spending policy configuration.

GuardrailsConfig

GuardrailsConfig

Bases: BaseModel

Guyton-Klinger guardrails spending policy parameters.

VPWConfig

VPWConfig

Bases: BaseModel

Variable Percentage Withdrawal spending policy parameters.

FloorCeilingConfig

FloorCeilingConfig

Bases: BaseModel

Floor-and-ceiling spending policy parameters.

RegimeSwitchingConfig

RegimeSwitchingConfig

Bases: BaseModel

Markov regime-switching model configuration.

RegimeConfig

RegimeConfig

Bases: BaseModel

Parameters for a single market regime.

Defaults

defaults

Default configuration values for monteplan.

build_global_weights(stock_pct=0.6, stock_regional=None, bond_regional=None)

Build 6-asset weight vector from stock/bond split and regional ratios.

Parameters:

Name Type Description Default
stock_pct float

Fraction allocated to equities (0-1). Bonds get the rest.

0.6
stock_regional list[float] | None

Regional split within stocks [US, Ex-US Dev, EM]. Must sum to 1. Defaults to [0.60, 0.30, 0.10].

None
bond_regional list[float] | None

Regional split within bonds [US, Ex-US Dev, EM]. Must sum to 1. Defaults to stock_regional if None.

None

Returns:

Type Description
list[float]

List of 6 weights: [US_Stk, ExUS_Stk, EM_Stk, US_Bnd, ExUS_Bnd, EM_Bnd].

default_plan()

Default plan: 30-year-old, retiring at 65, horizon to 95.

default_market(bond_type='aggregate')

Default 6-asset global market: US/Ex-US Dev/EM for stocks and bonds.

Parameters:

Name Type Description Default
bond_type str

"aggregate" (default) or "treasuries". Controls US bond return and volatility assumptions.

'aggregate'

Returns:

Type Description
MarketAssumptions

MarketAssumptions with 6 assets and academic-consensus correlations.

global_market(bond_type='aggregate')

Alias for default_market() — 6-asset global diversified market.

us_only_market(bond_type='aggregate')

2-asset US-only market: US Stocks + US Bonds.

Return assumptions aligned with the global defaults (Damodaran-based).

Parameters:

Name Type Description Default
bond_type str

"aggregate" (default, 5% nominal) or "treasuries" (4.5% nominal).

'aggregate'

default_sim_config()

Default simulation config: 5000 paths, seed 42.

default_policies()

Default policies: constant real spending, semi-annual rebalancing.

fire_plan()

FIRE template: aggressive saver, early retirement at 45.

coast_fire_plan()

Coast FIRE template: stop contributing, let investments grow.

conservative_retiree_plan()

Conservative retiree template: near retirement with Social Security.