An offline, end-to-end independent quant model validation framework for derivatives, interest-rate models, Monte Carlo risk simulation, VaR/Expected Shortfall backtesting, numerical reliability, and model-risk governance artifacts.
This repository was designed as a non-production portfolio project for market-risk/model-validation roles. It uses synthetic portfolios by default, optional public-data sample files shaped after Federal Reserve H.15 Treasury-rate and FRED ICE BofA OAS-style data, and conservative claim boundaries.
-
Model inventory and validation scope definition
-
Black-Scholes, binomial tree, Monte Carlo option pricing, Heston simulation, Vasicek and CIR rate paths
-
Independent benchmark comparison, no-arbitrage checks, Greeks validation, finite-difference tolerance tests
-
Full-revaluation vs delta-gamma P&L, VaR, Expected Shortfall, stress loss
-
250-day rolling VaR backtesting with Kupiec and Christoffersen tests
-
Public-data sample validation for Federal Reserve H.15-style Treasury rates and FRED ICE BofA OAS-style spread factors
-
Subportfolio backtesting proxies for derivatives, rates, spread-risk, and aggregate portfolio P&L
-
Regulatory-style mapping memo connecting VaR/ES/backtesting/assumption testing artifacts to market-risk model validation concepts
-
Stressed-window VaR proxy using maximum rolling historical VaR window selection
-
P&L attribution proxy comparing actual vs explained P&L and residual-risk budget
-
APL/HPL backtesting proxy comparing actual P&L proxy against hypothetical/explained P&L proxy
-
ES tail diagnostics comparing modeled ES to realized average tail losses
-
FRTB-inspired liquidity-horizon ES proxy across derivatives, rates, spread-risk, and aggregate P&L proxies
-
Stress scenario coverage and monotonicity checks for equity, volatility, and rate shocks
-
Artifact manifest and run manifest for reproducibility and GitHub review
-
Dockerfile for containerized local validation
-
FRTB-inspired risk-factor modellability/data-sufficiency proxy for public-data samples
-
Baseline-vs-final validation summary showing one-sided false-pass reduction from the specialty reliability layer
-
Numerical reliability: Monte Carlo convergence, seed stability, tolerance gates, optional CPU/GPU consistency scaffold
-
Specialty reliability layer: Validation Health Score, closed-form NumPy ridge residual error-correction challenger, asymmetric validation envelope
-
Governance artifacts: validation memo, model card, known limitations, compensating controls, model-risk findings, release gate
This is an offline/non-production validation framework using synthetic portfolios and public-data samples. It is not a bank trading-desk model, not a regulatory capital model, not FRTB-compliant, and does not use proprietary bank data.
Recommended Python: 3.11. The GitHub Actions workflow uses Python 3.11 for reproducible CI validation.
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
python -m pip install -r requirements.txt
PYTHONDONTWRITEBYTECODE=1 python scripts/run_pipeline.py
PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 python -m pytest -qOr:
make validateAfter python scripts/run_pipeline.py, generated artifacts are saved under outputs/ and reports/.
Key files:
outputs/model_inventory.csvoutputs/benchmark_comparison.csvoutputs/greeks_validation.csvoutputs/convergence_summary.csvoutputs/var_es_results.csvoutputs/stress_loss_results.csvoutputs/backtesting_exceptions.csvoutputs/kupiec_christoffersen_results.csvoutputs/assumption_sensitivity_matrix.csvoutputs/validation_health_scores.csvoutputs/model_risk_findings.csvoutputs/baseline_vs_final_validation_summary.csvoutputs/public_market_data_validation.csvoutputs/subportfolio_backtesting_summary.csvoutputs/regulatory_mapping_table.csvoutputs/stressed_var_results.csvoutputs/pnl_attribution_proxy_summary.csvoutputs/apl_hpl_backtesting_comparison.csvoutputs/es_tail_diagnostics.csvoutputs/liquidity_horizon_es_proxy.csvoutputs/stress_scenario_coverage.csvoutputs/artifact_manifest.csvoutputs/run_manifest.jsonoutputs/risk_factor_modellability_proxy.csvreports/github_runnable_audit.mdoutputs/release_decision.jsonreports/public_market_data_validation_report.mdreports/regulatory_mapping_memo.mdreports/resume_metrics_report.mdreports/model_risk_validation_memo.mdreports/executive_summary.md
The dashboard dependencies are kept separate from the core validation dependencies so GitHub Actions and Docker validation stay lightweight.
pip install -r requirements-dashboard.txt
streamlit run src/dashboard/streamlit_app.pydocker build -t qmv-framework .
docker run --rm qmv-frameworkBuilt an independent Python quant model validation framework for derivative pricing, interest-rate models, and market-risk simulation, covering Black-Scholes, binomial tree, Monte Carlo, Heston, Vasicek/CIR rates, no-arbitrage checks, Greeks validation, full-revaluation vs delta-gamma P&L, VaR/Expected Shortfall, stress diagnostics, and Kupiec/Christoffersen backtesting.
Added numerical-reliability and model-risk controls including public-data sample validation, subportfolio VaR backtesting, Monte Carlo convergence diagnostics, finite-difference tolerance gates, seed-stability tests, asymmetric validation envelopes, residual error-correction challengers, regulatory-style mapping, finding severity, validation memos, model cards, known limitations, and conservative synthetic/public-data claim boundaries.