Portfolio Construction & Risk
Euler Portfolio Risk Decomposition: Marginal and Component Volatility
Decompose multi-asset portfolio volatility into exact additive Component Risk CR_i = w_i * (Sigma * w)_i / sig_p and Percentage Risk Contribution in Excel and Arte Sheets.
See why a 60% equity capital allocation actually drives 92.5% of portfolio volatility
Standalone asset volatilities do not add up to portfolio volatility sig_p = SQRT(w’ * Sigma * w), tempting analysts into ad-hoc rescaling. Because sig_p is homogeneous of degree 1 in weights w, Euler’s theorem guarantees an exact additive decomposition: Marginal Contribution to Risk MCR_i = (Sigma * w)_i / sig_p, Component Risk CR_i = w_i * MCR_i (summing identically to sig_p!), and Percentage Risk Contribution PCR_i = CR_i / sig_p = w_i * (Sigma * w)_i / var_p.
Test a 3-asset portfolio: Equities w_1 = 0.60, Bonds w_2 = 0.30, Commodities w_3 = 0.10 (B2:B4) with covariance matrix C2:E4. Covariance-weight products (Sigma * w) in F2:F4 equal 0.02440, -0.00012 (negative because bond-equity covariance -0.0020 hedges equities!), and 0.01225. Portfolio variance is 0.015829 (sig_p = 0.1258), and Equities alone account for 0.01464 / 0.015829 = 92.49% of total risk while Bonds contribute -0.23%!
| Asset Sleeve | Capital Weight w_i | Percentage Risk Contribution PCR_i |
|---|---|---|
| Equities (20% vol) | 0.6000 (60.0%) | 0.9249 (92.49% of portfolio risk!) |
| Bonds (6% vol, neg cov) | 0.3000 (30.0%) | -0.0023 (-0.23% risk reducer) |
| Commodities (25% vol) | 0.1000 (10.0%) | 0.0774 (7.74% of portfolio risk) |
| Portfolio Total (Euler Sum) | SUM(w_i) = 1.0000 | SUM(PCR_i) = 1.0000; sig_p = 0.1258 |
Total Portfolio Volatility sig_p Formula
Multiply weights B2:B4 against row covariance-weight products F2:F4 via SUMPRODUCT and take SQRT.
=LET(var_p, SUMPRODUCT(B2:B4, F2:F4), IF(var_p <= 0, "Invalid Covariance Matrix", ROUND(SQRT(var_p), 4)))Equity Percentage Risk Contribution PCR_1 Formula & Risk-Parity Shift
Compute PCR_i = w_i * (Sigma * w)_i / var_p. Test shifting capital toward bonds (w_1 = 0.25, w_2 = 0.65, w_3 = 0.10): portfolio volatility drops nearly in half from 0.1258 to 0.0671 and equity risk share falls from 92.49% to 53.94%.
=LET(var_p, SUMPRODUCT($B$2:$B$4, $F$2:$F$4), IF(var_p <= 0, "Invalid Covariance Matrix", ROUND((B2 * F2) / var_p, 4)))Try the example
Use the original values or change them to test your understanding.