What is equal risk contribution (risk parity)? Formula and example

On this page

Key takeaways

  • Equal risk contribution chooses weights so that each of n holdings carries 1/n of the portfolio's variance (uncertainty).
  • It uses the full covariance matrix, so it accounts for correlations; inverse volatility weighting, its simpler cousin, ignores them.
  • With two assets, or when every pair of holdings has the same correlation, equal risk contribution and inverse volatility give the same weights.
  • There is no closed form in general; for long-only weights and a positive-definite covariance matrix a unique solution exists and is found numerically.
  • Equal risk is not equal return: the method usually puts most of the money in bonds, and risk-parity funds often add leverage to reach a return target, which the weights on this page do not.

Definition

Equal risk contribution (ERC), the precise form of risk parity, is the set of portfolio weights at which every holding contributes the same share of the portfolio's total risk. Calm holdings get more money and volatile ones less, with correlations taken into account, so no single holding dominates the portfolio's ups and downs.

Also known as: ERC, risk parity, equally weighted risk contribution, risk-parity portfolio, risk budgeting with equal budgets.

How it works

A plain equal-weight portfolio gives each holding the same money. The risk is then uneven: the most volatile holdings drive most of the swings. Equal risk contribution turns the question around and asks which weights would make each holding's risk contribution the same.

The answer depends on two things per holding. The first is its volatility: a fund that swings twice as much needs roughly half the money to carry the same risk. The second is how it moves with the others: a fund that tends to move against the rest contributes less risk per dollar and can take more money, while a fund that moves with everything else gets less.

Ignore the second effect and you get inverse volatility weighting: each weight proportional to one over the holding's volatility. That is a good first guess, and exact when every pair of holdings has the same correlation. Equal risk contribution starts there and adjusts for the actual correlations.

Think of a seesaw with children of different weights: to balance it, the heavier child sits closer to the middle. Volatile holdings are the heavier children, and the weights are where each one sits.

The result is the allocation behind the risk-parity idea popularised by multi-asset funds: no economic risk, such as a fall in stocks, is allowed to dominate simply because its assets swing the most.

Formula

The equal risk contribution condition
wi(Σw)i=wj(Σw)jfor alli,j⇔RCi=1n
wᵢ
weight of holding i (positive, weights sum to 1)
Σ
covariance matrix of the holdings' monthly returns
(Σw)ᵢ
covariance of holding i with the whole portfolio
RCᵢ
risk contribution of holding i as a share of portfolio variance
n
number of holdings
Spinu's convex formulation
miny>012yTΣy−1n∑i=1nln⁡yi,wi=yi∑jyj
y
unnormalized positive weights
yᵢ
unnormalized weight of holding i
Σ
covariance matrix
n
number of holdings
wᵢ
final weight of holding i after rescaling to sum to 1

Setting the derivative to zero gives yᵢ(Σy)ᵢ = 1/n for every i, which is the equal risk contribution condition. The objective is strictly convex, so the minimum is unique.

One coordinate step of the solver
yi←−ai+ai2+4σii/n2σii,ai=∑j≠iσijyj
σᵢᵢ
variance of holding i (diagonal of Σ)
σᵢⱼ
covariance of holdings i and j
aᵢ
covariance of holding i with the rest of the portfolio, at the current weights
yᵢ
unnormalized weight of holding i
n
number of holdings

This is the positive root of σᵢᵢyᵢ² + aᵢyᵢ − 1/n = 0: holding the other weights fixed, it sets holding i's contribution to exactly 1/n. Cycling through the holdings until nothing moves converges to the solution.

Two assets: a closed form
w1=σ2σ1+σ2,w2=σ1σ1+σ2
σ₁, σ₂
volatilities of the two assets
w₁, w₂
their equal-risk weights

With two assets the correlation drops out, so equal risk contribution is exactly inverse volatility weighting.

Worked example

The five funds of the All Weather portfolio, VTI (US stocks), TLT (long Treasuries), IEF (intermediate Treasuries), GLD (gold) and DBC (commodities), weighted three ways from their monthly returns, Dec 2004 to Sep 2026.

With equal weights each fund gets 20.0% of the money, but the risk is uneven: GLD carries 30.4% of the portfolio's variance and DBC 28.5%, while IEF, the calmest fund, carries 7.1%.

Equal risk contribution solves for the weights at which every fund carries the same share, 20.0% each. To get there it puts 35.7% of the money in IEF and 12.6% in GLD.

Inverse volatility weighting ignores correlations. Even so, it lands close to the same place: 38.2% in IEF. Its risk shares are not equal, though; the largest is 24.0%.

Both risk-based weightings ran with lower volatility than equal weights: 8.2% for equal weights, 7.0% for inverse volatility and 7.1% for equal risk contribution. Equalizing risk shares is a different goal from minimizing volatility, and the method does not attempt the second.

One consequence is easy to miss. Equal risk contribution equalizes risk per fund, not per kind of exposure, so TLT and IEF, two Treasury funds that move together, take two of the five equal shares between them. On the co-movement groups count the three weightings read 3.94, 3.58 and 3.79 independent bets. Hierarchical methods weight by cluster instead.

Data through Sep 2026. Reproduce id 7af3286a1e525d1b (this guide, its lab setup and the data month).

Interactive lab

Weights and risk shares under equal weight, inverse volatility and equal risk contribution. Add or remove funds and the three weightings are solved again from the same monthly covariance.

Equal weight: weight versus share of the riskEqual weight over Dec 2004 to Sep 2026. VTI: weight 20%, risk 21%; TLT: weight 20%, risk 13%; IEF: weight 20%, risk 7%; GLD: weight 20%, risk 30%; DBC: weight 20%, risk 28%.Share of the moneyShare of the riskVTI20%21%TLT20%13%IEF20%7%GLD20%30%DBC20%28%
Equal weight. Grey: weight. Blue: share of the portfolio's variance. Dec 2004 to Sep 2026.
Inverse volatility: weight versus share of the riskInverse volatility over Dec 2004 to Sep 2026. VTI: weight 16%, risk 16%; TLT: weight 18%, risk 22%; IEF: weight 38%, risk 24%; GLD: weight 14%, risk 24%; DBC: weight 13%, risk 14%.Share of the moneyShare of the riskVTI16%16%TLT18%22%IEF38%24%GLD14%24%DBC13%14%
Inverse volatility. Grey: weight. Blue: share of the portfolio's variance. Dec 2004 to Sep 2026.
Equal risk contribution: weight versus share of the riskEqual risk contribution over Dec 2004 to Sep 2026. VTI: weight 18%, risk 20%; TLT: weight 18%, risk 20%; IEF: weight 36%, risk 20%; GLD: weight 13%, risk 20%; DBC: weight 15%, risk 20%.Share of the moneyShare of the riskVTI18%20%TLT18%20%IEF36%20%GLD13%20%DBC15%20%
Equal risk contribution. Grey: weight. Blue: share of the portfolio's variance. Dec 2004 to Sep 2026.
MethodVolatilityLargest weightLargest risk shareBets (co-movement groups)
Equal weight8.2%20%30%3.94
Inverse volatility7.0%38%24%3.58
Equal risk contribution7.1%36%20%3.79
MethodVTITLTIEFGLDDBC
Equal weight20.0%risk 20.8%20.0%risk 13.2%20.0%risk 7.1%20.0%risk 30.4%20.0%risk 28.5%
Inverse volatility16.3%risk 16.5%18.2%risk 21.8%38.2%risk 23.5%14.4%risk 24.0%12.9%risk 14.2%
Equal risk contribution17.7%risk 20.0%18.5%risk 20.0%35.7%risk 20.0%12.6%risk 20.0%15.5%risk 20.0%

Weight, with the holding's share of the risk beneath it. Tree order of the holdings: VTI, DBC, GLD, TLT, IEF. Dec 2004 to Sep 2026.

How MarketHeist computes it

Every choice an implementation has to make, as the code makes it today. The page is checked against the code each time it is built.

ChoiceHow it is computedIn the code
DataMonthly total returns (dividends reinvested). Funds younger than the period shown are extended backward with older funds, spliced on returns, not prices.
WindowThe worked example and the lab use the common window of the holdings, Dec 2004 to Sep 2026 (262 months), ending at the data month of this page.
CovariancePopulation covariance (divides by N, the number of months) of the funds' monthly returns over the full common window. The divisor cancels in the weights.covarianceMatrixpackages/portfolio/engine/risk.ts
SolverCyclical coordinate descent on Spinu's convex formulation: for each fund in turn, hold the others fixed and take the positive root of σᵢᵢyᵢ² + aᵢyᵢ − 1/n = 0. A sweep visits every fund; sweeps repeat until no weight moves by more than 1e-12, up to 1,000 sweeps. The weights are then rescaled to sum to 1.equalRiskContributionWeightspackages/portfolio/engine/risk.ts
Starting pointInverse-volatility weights, 1/σᵢ before rescaling. For a diagonal covariance matrix (no correlations) this is already the solution.equalRiskContributionWeightspackages/portfolio/engine/risk.ts
Long only, no leverageEvery weight stays positive by construction (a root at or below zero would be replaced by 1e-12) and the weights sum to 1. A variance below 1e-18 is floored at 1e-18 to avoid dividing by zero.equalRiskContributionWeightspackages/portfolio/engine/risk.ts
Inverse volatilitywᵢ proportional to 1/σᵢ, with σᵢ the square root of the diagonal of the same covariance matrix, rescaled to sum to 1. Correlations are not used.inverseVolWeightspackages/portfolio/engine/risk.ts
Comparison statisticsPortfolio volatility is √(12 · w′Σw) on monthly data; the table also reports the largest weight, the largest risk share and the co-movement groups count of independent bets at each set of weights.weightingStatspackages/portfolio/engine/risk.ts
In the appThe Balance-risk table and the equal-risk weights reported by the MCP tools use the same function on the portfolio's full window. The weights are estimated once from the whole window, not re-estimated month by month.
Engine functionsThe functions the portfolio app and the MarketHeist MCP tools run, called here on the same monthly returns.inverseVolWeightspackages/portfolio/engine/risk.tsequalRiskContributionWeightspackages/portfolio/engine/risk.tshierarchicalRiskParitypackages/portfolio/engine/hrp.tshierarchicalEqualRiskContributionpackages/portfolio/engine/hrp.tsweightingStatspackages/portfolio/engine/risk.tseffectiveBetspackages/portfolio/engine/overlap.ts

Equal risk contribution (risk parity) compared with its neighbours

Equal risk contribution and its neighbours
MethodWeights come fromUses correlationsRisk sharesTypical tilt
Equal weightNothing: 1/n eachNoUneven; volatile holdings dominateNone
Inverse volatilityEach holding's volatilityNoEqual only when every pair has the same correlationToward calm holdings
Equal risk contributionThe full covariance matrixYes, every pairEqual by constructionToward calm holdings and those that move against the rest
Minimum varianceThe full covariance matrix, invertedYesUneven, often concentratedHeavily toward the calmest holdings
Hierarchical risk parityA correlation tree and cluster variancesThrough the treeUnevenToward calm clusters

Limitations

  • Equal risk is not equal return. Calm assets such as bonds receive most of the money, so an unlevered equal-risk portfolio has usually grown more slowly than a stock-heavy one. Many risk-parity funds borrow to raise the whole portfolio's risk; the weights on this page use no leverage.
  • The weights depend on estimated volatilities and correlations. When those change, as when stocks and bonds fall together, the risk shares stop being equal until the weights are re-estimated.
  • The weights here are estimated from the whole window. Holding them from the start of a backtest would use information from later years, so they describe the window, not a decision someone could have made at its start.
  • Risk is measured as variance of monthly returns. Rare crashes, fat tails and liquidity are not part of the calculation.
  • Equal risk per fund can mean unequal risk per exposure: two funds that hold nearly the same thing get two shares. Hierarchical risk parity and its variants weight by cluster to address this.

Frequently asked questions

Is risk parity the same as equal risk contribution?
Risk parity is the broad idea of balancing risk rather than money; it covers inverse volatility weighting, equal risk contribution and leveraged multi-asset funds. Equal risk contribution is its precise form: every holding carries exactly the same share of variance.
Why does a risk-parity portfolio hold so many bonds?
High-quality bonds swing much less than stocks or commodities, so they need more money to carry the same risk. The bond-heavy mix is the direct result of equalizing risk, not a view on bonds.
Does risk parity use leverage?
The weighting itself does not: the weights sum to one. Some institutional risk-parity strategies then borrow to scale the whole portfolio up to a chosen volatility. MarketHeist's equal-risk weights are unlevered.
How is equal risk contribution different from inverse volatility weighting?
Inverse volatility uses only each holding's volatility. Equal risk contribution also uses the correlations, so a holding that moves against the rest can take more money. They coincide for two assets, or when all pairs share one correlation.
Is the equal risk contribution portfolio unique?
For long-only weights and a positive-definite covariance matrix, yes. Maillard, Roncalli and Teiletche showed it exists and is unique, and Spinu's convex formulation gives a problem with a single minimum that numerical solvers find reliably.

References

  1. Maillard, S., Roncalli, T. and Teiletche, J. (2010) The Properties of Equally Weighted Risk Contribution Portfolios. Journal of Portfolio Management 36(4).
  2. Spinu, F. (2013) An Algorithm for Computing Risk Parity Weights. The convex formulation the solver uses.
  3. Griveau-Billion, T., Richard, J.-C. and Roncalli, T. (2013) A Fast Algorithm for Computing High-dimensional Risk Parity Portfolios. Cyclical coordinate descent for risk parity.
  4. Qian, E. (2005) Risk Parity Portfolios: Efficient Portfolios Through True Diversification. PanAgora Asset Management white paper.
  5. Roncalli, T. (2013) Introduction to Risk Parity and Budgeting. Chapman and Hall/CRC.

Try it on your own holdings

Open All Weather and compare weightings with Balance risk →

Or ask an assistant connected to the MarketHeist MCP server (https://marketheist.io/mcp), which computes the same figures:

Using MarketHeist, what are the equal-risk-contribution weights for VTI, TLT, IEF, GLD and DBC, and how does each holding's share of risk compare with equal weights?

Ask an AI assistant

The prompt opens in a new tab. ChatGPT, Claude, Perplexity and Grok take it from the link; Gemini cannot, so its button copies the prompt for you to paste. An assistant without the MarketHeist connector answers from its own knowledge, not from the figures on this page.

Historical simulation, not advice. Computed by the MarketHeist portfolio engine from monthly total returns, data through Sep 2026. Markdown version of this page: equal-risk-contribution.md.