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.