A portfolio's dollar (or rupee) weights and its risk weights are usually nothing alike, and confusing the two is the most common allocation error this module exists to correct. Define, for a portfolio with weights w and covariance Σ:
Marginal contribution to risk: MCTR_i = (Σw)_i / σp
Component contribution to risk: CCTR_i = w_i × MCTR_i (these sum exactly to σp)
Percent contribution to risk: %CCTR_i = CCTR_i / σp (these sum exactly to 100%)
What do marginal and component contributions to risk show?
MCTR_i answers "if I nudge asset i's weight up by a hair, how much does portfolio risk rise?" CCTR_i scales that by how much of the asset you actually hold, so the pieces add up to the whole portfolio's risk, a clean, auditable budget.
Worked by hand, the same 60/40 pair, US-flavored (Equity σ = 18%, Bond σ = 6%, ρ = 0.10):
Σ = [0.0324 0.00108] w = [0.60, 0.40]
[0.00108 0.0036 ]
Σw = [0.0324×0.60+0.00108×0.40, 0.00108×0.60+0.0036×0.40] = [0.019872, 0.002088]
σp = √(w·Σw) = √(0.6×0.019872 + 0.4×0.002088) = √0.0127584 = 11.30%
MCTR = Σw/σp = [0.019872, 0.002088]/0.1130 = [17.59%, 1.85%]
CCTR = w × MCTR = [0.60×17.59%, 0.40×1.85%] = [10.56%, 0.74%] (sums to 11.30% = σp ✓)
%CCTR = CCTR/σp = [93.45%, 6.55%]
In this book 60% of the capital carries 93.5% of the risk, because bonds' low volatility and modest correlation mean the 40% allocated there barely registers in the risk ledger. Nothing about the case is special or rigged. It is the ordinary arithmetic of a stock-heavy multi-asset book, and it is the single fact risk budgeting exists to surface: a portfolio that looks diversified by capital can be a near-single-factor bet by risk. Worked Example 2 runs the same computation for a full worked institutional case; Worked Example 6's rebalancing build reuses this same lens later in the module.
Advertisement
Risk parity: equal risk, unequal capital
Risk parity turns risk budgeting around: instead of measuring a chosen weight's risk contribution, solve for the weights that make every asset's risk contribution equal. For exactly two assets, the answer has a beautiful closed form you can derive yourself: setting CCTR_1 = CCTR_2 and simplifying (the correlation terms cancel) gives
w_1 / w_2 = σ_2 / σ_1 (weight ratio is the INVERSE of the volatility ratio — regardless of correlation)
For the same Equity 18% / Bond 6% pair: w_eq/w_bond = 6/18 = 1/3, so normalizing, w_eq = 25%, w_bond = 75%. Check it: Σw at these weights gives equal CCTR for both assets by construction (checked in the module's script: each contributes exactly 3.34 percentage points of the resulting 6.67% portfolio σ, a clean 50/50 risk split from a 25/75 capital split). The two-asset shortcut is genuinely elegant, and genuinely limited: it stops working the moment you add a third asset. With three or more assets the pairwise correlations no longer cancel out of the algebra, and naively extending "weight inversely proportional to volatility" to N assets produces unequal risk contributions. Worked Example 3 verifies this directly: the naive shortcut misses badly once a third, differently-correlated asset joins. The N-asset solution requires a short iterative algorithm: start from the naive inverse-volatility weights; compute each asset's actual risk contribution; scale every weight by the square root of (its 1/N target contribution ÷ its actual contribution); renormalize the vector to sum to 1; repeat. Within a handful of passes the corrections converge and every asset's risk contribution lands on exactly 1/N.