How chihchen22/nmd-regime-aware-model works
This repository implements a research framework for modeling nonmaturity-deposit (NMD) runoff under market-implied interest-rate uncertainty. Its principal workflow uses SOFR market data to construct rate inputs, simulates deposit balances under behavioral decay, and compares Monte Carlo results with analytical and bifurcation approaches. Separate analyses test regime amplification and parameter sensitivity, including March 2022 versus September 2025 scenarios. The master controller documents a registry of runnable analyses. The README describes broader framework capabilities; sampled excerpts support the core model and several analysis links, but not every internal call.
Main entry points: nmd_master.py Master controller · model_outputs Model result files · dual_period_alpha_sensitivity.py Dual-period comparison · market_data_loader.py Market data loader
Components 17
Analysis control
- Master controller
nmd_master.py - Model parameters
config.py
Market inputs
- Market data loader
market_data_loader.py - September 2025 SOFR data
SOFR_Market_Data_20250930.xlsx - March 2022 SOFR data
SOFR_Market_Data_20220331.xlsx - SOFR history
SOFR_History.xlsx
Rate modeling
- SABR volatility surface
sabr_volatility.py - Curve and rate paths
comprehensive_nmd_model.py
Deposit modeling
- Base NMD model
comprehensive_nmd_model.py - Regime amplification
regime_amplification_analysis.py - Model result files
model_outputs
Sensitivity studies
- Parameter sensitivity
parameter_sensitivity.py - Two-dimensional sensitivity
sensitivity_matrix_2d.py - Dual-period comparison
dual_period_alpha_sensitivity.py - Alpha sensitivity
dual_period_alpha_sensitivity.py - Result validation
validate_model.py
Other components
- Researcher
Connections 24
- Researcher → Master controller: selects analysis
- Master controller → Model parameters: sets parameters
- Master controller → Market data loader: dispatches market data
- Market data loader → September 2025 SOFR data: reads
- Market data loader → March 2022 SOFR data: reads
- Market data loader → SABR volatility surface: provides cap vols
- Master controller → Base NMD model: dispatches base model
- Base NMD model → Curve and rate paths: constructs rates
- Base NMD model → Model result files: writes results
- Master controller → Regime amplification: dispatches analysis
- Regime amplification → Model result files: writes results
- Master controller → Parameter sensitivity: dispatches analysis
- Parameter sensitivity → Model result files: writes results
- Master controller → Two-dimensional sensitivity: dispatches analysis
- Two-dimensional sensitivity → SOFR history: reads
- Two-dimensional sensitivity → Model result files: reads rate summary
- Two-dimensional sensitivity → Model result files: writes analysis
- Master controller → Dual-period comparison: dispatches analysis
- Dual-period comparison → SOFR history: reads
- Dual-period comparison → March 2022 SOFR data: uses period data
- Dual-period comparison → Model result files: reads rate summary
- Dual-period comparison → Alpha sensitivity: compares alpha values
- Alpha sensitivity → Model result files: writes analysis
- Result validation → Model result files: reads WAL results