Skip to Main Content

Risk & Quant

Hierarchical Risk Parity

Hierarchical Risk Parity (HRP) is an allocation method that clusters assets by correlation and splits capital recursively, without inverting the covariance matrix.
Also Called
  • HRP
  • HRP Allocation
  • Hierarchical Clustering Asset Allocation
By InsiderFinance TeamUpdated Sources & Methodology

Follow the HRP Allocation Into Each Asset

The final portfolio has 6.29% volatility. Capital weights and risk shares each sum to 100%.
AssetBranch CapitalFinal WeightRisk Share
AA/B: 8.39%4.95%5.87%
BA/B: 8.39%3.44%4.86%
CC/D: 91.61%32.98%37.59%
DC/D: 91.61%58.63%51.68%
The final portfolio has 6.29% volatility. Capital weights and risk shares each sum to 100%.
On This Page
  1. What is Hierarchical Risk Parity (HRP)?
  2. How HRP clusters and orders assets
  3. Worked example
  4. How HRP splits capital by recursive bisection
  5. HRP example: a four-asset portfolio
  6. HRP vs minimum variance and risk parity
  7. Limitations of Hierarchical Risk Parity
  8. Bottom line
  9. FAQ

Key Takeaways

  • HRP allocates capital through correlation-based clustering and recursive bisection without explicitly inverting the covariance matrix.
  • The algorithm runs in three stages: build a hierarchy from a correlation distance, reorder the covariance matrix so related assets sit adjacent, then split weight recursively down the tree.
  • Marcos Lopez de Prado introduced HRP in the Journal of Portfolio Management in 2016 to fix the instability, concentration and opacity he found in quadratic optimizers.
  • Every weight comes out positive and the book stays fully invested, as long as each asset and each split has a positive variance.
  • HRP uses inverse cluster variance at each split. Calculate final risk contributions separately to compare them with equal risk allocation.
  • HRP uses covariance inputs. Compare the selected universe, linkage and return window through the resulting weights, turnover and portfolio risk.

What is Hierarchical Risk Parity (HRP)?

Hierarchical Risk Parity (HRP) is a portfolio allocation method that groups assets into a hierarchy by correlation, orders them by that tree, and splits capital through recursive bisection of the ordered list. It uses covariance information without explicitly inverting the covariance matrix. Its stages are clustering, reordering and allocation. Marcos López de Prado introduced the approach in his 2016 portfolio-construction research.

How HRP clusters and orders assets

Convert each correlation into distance using √(0.5 × (1 − correlation)). The distance is zero at perfect positive correlation, 0.707 at zero correlation and one at perfect negative correlation.

The original reference implementation applies linkage to the rows of that distance matrix, comparing assets’ distance profiles. The resulting tree supplies an ordered list of assets.

Apply the same order to covariance rows and columns. This permutation preserves every covariance value and places related groups together, while large covariances from volatile assets sit wherever their correlations put them.

Formula

d(i,j) = √(0.5 × (1 − correlation(i,j))); provisional within-cluster weights ∝ 1 / variance; cluster variance V = wᵀΣ w; first-child share = V2 / (V1 + V2)
  • correlation(i,j) is the return correlation between assets i and j, so d runs from 0 at perfect positive correlation to 1 at perfect negative correlation.
  • variance is the variance of a single asset return; inverse-variance weights inside a cluster give more capital to the quieter member.
  • Sigma is the covariance submatrix of the cluster and w is its inverse-variance weight vector, so V is the cluster variance including the cross terms.
  • V1 and V2 are the variances of the two child clusters at a split; first-child share is the fraction of the parent allocation that flows to the first child, so capital is divided in inverse proportion to variance rather than solved for equal risk contributions.
  • The procedure uses distances, linkage, permutation, variance calculations and recursive weight splits. It does not explicitly invert the covariance matrix.

Worked Example

A four-asset book contains A at 20% annual volatility, B at 24%, C at 8% and D at 6%. Correlation is 0.90 for A/B, 0.80 for C/D and exactly 0.10 for each cross-pair. Use the ordered groups [A, B] and [C, D].

  • Distances: d(A,B) = √(0.5 × 0.10) = 0.224, d(C,D) = √(0.5 × 0.20) = 0.316, cross pairs = √(0.5 × 0.90) = 0.671, so clustering pairs A with B and C with D, and the full algorithm’s distance-of-distances step gives the same two pairs.
  • Inverse-variance weights inside cluster 1: 1/0.04 = 25 and 1/0.0576 = 17.36, so A takes 25/42.36 = 59.02% and B takes 40.98% of that cluster.
  • Cluster 1 variance: 0.5902² × 0.04 + 0.4098² × 0.0576 + 2 × 0.5902 × 0.4098 × 0.0432 = 0.04450, a 21.10% volatility.
  • Cluster 2 weights are 36.00% C and 64.00% D, giving variance 0.36² × 0.0064 + 0.64² × 0.0036 + 2 × 0.36 × 0.64 × 0.00384 = 0.004073, a 6.38% volatility.
  • Split: α = 1 − 0.04450 / (0.04450 + 0.004073) = 1 − 0.9161 = 0.0839, so the equity cluster receives 8.39% and the rate cluster receives 91.61%.

The final weights are 4.95% A, 3.44% B, 32.98% C and 58.63% D, summing to 100%. Portfolio volatility is 6.29%, and the A/B branch supplies 10.7% of it while C/D supplies 89.3%, so the low-volatility pair carries most of the risk as well as most of the capital.

How HRP splits capital by recursive bisection

Bisect the ordered list into contiguous halves. For each half, create normalized inverse-variance weights and calculate the associated cluster variance.

Assign the first half V2 / (V1 + V2) of its parent’s capital and the second half V1 / (V1 + V2). Repeat until each branch contains one asset.

The bisections halve the ordered list, so they follow the tree’s order without retracing every branch. Positive asset and split variances make each share positive and keep the final weights fully invested; screen out zero-variance inputs first, since every split divides by variance.

HRP example: a four-asset portfolio

A and B have 20% and 24% volatility with 0.90 correlation. C and D have 8% and 6% volatility with 0.80 correlation. Each cross-pair correlation is 0.10.

For the A/B group, provisional weights are 59.02% and 40.98%, producing variance 0.04450. C/D weights are 36% and 64%, producing variance 0.004073.

The first split assigns 8.39% of capital to A/B and 91.61% to C/D. The final weights are 4.95%, 3.44%, 32.98% and 58.63% for A through D.

Portfolio volatility is 6.29%. The equity branch contributes 10.7% of that risk and the rates branch 89.3%, so in this book HRP concentrates risk as well as capital in the quiet pair.

HRP vs minimum variance and risk parity

Minimum variance solves for the lowest total volatility, equal risk contribution for equal risk shares, and HRP for a stable, diversified split along the correlation tree. Compare their weights, total volatility, component contributions and turnover on one shared universe and return record.

Use the clustering tree to identify related position groups. Review those groups alongside the portfolio’s actual scenario exposure.

Limitations of Hierarchical Risk Parity

  • Test the tree before trusting the weights. The lookback window, the linkage rule and the asset universe all shape it, and a different tree produces different weights.
  • Add return views as a separate tilt. HRP allocates by risk structure alone, so an asset with better return prospects gets no extra weight from the algorithm.
  • Check the risk shares, since the splits are inverse-variance rather than equal risk. In the example, the C/D branch supplies 89.3% of portfolio volatility.
  • Watch for concentration in quiet assets. The example places 91.61% of capital in the low-volatility cluster, so a shock to that pair hits most of the book.
  • Screen out zero-variance inputs first, since every split divides by variance.

Bottom line

Hierarchical Risk Parity builds a fully invested, positive-weight portfolio from the correlation structure without inverting the covariance matrix. Use it as a risk-based allocation that needs no return forecasts, test it across lookback windows and linkage rules, and check the resulting risk contributions rather than assuming they are equal.

Clear answers

Frequently Asked Questions

Sources and Further Reading

  1. Marcos Lopez de Prado: Innovations (Hierarchical Risk Parity)
  2. Marcos Lopez de Prado: HRP reference implementation (HRP.py, HRP_MC.py)
  3. Mantegna: Hierarchical Structure in Financial Markets (arXiv cond-mat/9802256)
  4. Ledoit and Wolf: Honey, I Shrunk the Sample Covariance Matrix

How entries are sourced, calculated and updated: editorial methodology.

Continue learning