# Multi-Factor Risk Decomposition & Attribution Engine



An institutional-grade portfolio risk and performance attribution analytics framework built in modular, Object-Oriented Python. The repository programmatically executes **Brinson-Fachler Multi-Period Return Attribution (Carino Logarithmic Linking)**, **Covariance Matrix Risk Decomposition via Euler's Gradient Theorem (MCR/PCR)**, and **Non-Normal Fat-Tailed Tail-Risk Analytics (Cornish-Fisher Expansion & Expected Shortfall)**.
---
## 🏛️ System Architecture
```text
┌─────────────────────────────────────────────────┐
│ risk_attribution_engine.py │
└────────────────────────┬────────────────────────┘
│
┌───────────────────────────────────┼───────────────────────────────────┐
│ │ │
▼ ▼ ▼
┌───────────────────────────┐ ┌───────────────────┐ ┌────────────────────┐
│ BrinsonAttributionEngine │ │ FactorRiskEngine │ │ TailRiskAnalytics │
├───────────────────────────┤ ├───────────────────┤ ├────────────────────┤
│ • Allocation (BF Model) │ │ • Covariance Matrix│ │ • Historical VaR │
│ • Selection & Interaction │ │ Decomposition │ │ • Cornish-Fisher │
│ • Carino Log Linking │ │ • Euler MCR / PCR │ │ Expansion │
│ • Zero-Weight Sector Fix │ │ • Systematic/Idio │ │ • Expected Shortfall│
└───────────────────────────┘ └───────────────────┘ └────────────────────┘
Decomposes total active return into Allocation Effect, Selection Effect, and Interaction Cross-Terms. Multi-period rebalancing frequencies are reconciled seamlessly using Carino's Logarithmic Linking Algorithm (
Evaluates portfolio volatility via multivariate gradient calculus (
Evaluates downside tail-risk via higher-order Cornish-Fisher Taylor expansion, adjusting
- Allocation Effect (
$A_j^{BF}$ ):
- Selection Effect (
$S_j$ ):
- Interaction Effect (
$I_j$ ):
quant-risk-attribution-engine/
├── docs/ # Exported chart artifacts for GitHub display
│ ├── brinson_waterfall.png
│ ├── risk_decomposition_pcr.png
│ └── tail_risk_drawdown.png
├── risk_attribution_engine.py # Core Object-Oriented computational engine
├── visualizer.py # Matplotlib publication chart generator
├── requirements.txt # Environment dependencies manifest
├── .gitignore # Git version control filter
└── README.md # Repository documentation