Skip to main content
skill CX Codex

diversification — Claude Code skill: portfolio risk and correlations

A skill that works through portfolio diversification: correlation effects, the efficient frontier, minimum variance and risk contributions.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add JoelLewis/finance_skills --skill diversification -a claude-code
Open on GitHub

What diversification does

The skill hands your agent the math behind portfolio construction. Two-asset and n-asset variance, the efficient frontier, the minimum variance portfolio, the diversification ratio, the maximum diversification portfolio, factor diversification and a risk-contribution breakdown by holding.

It ships a formula table with use cases and two worked examples: volatility of a stock-and-bond mix at 0.2 correlation, and the diversification ratio for four assets. Your agent follows those steps instead of making numbers up.

A pitfalls section covers the part people miss. Correlations are unstable and climb during crises, so diversification weakens exactly when you need it. The skill suggests stress-testing against crisis-period correlation matrices. Holding many names that share one factor buys you little: ten uncorrelated assets beat fifty correlated ones.

What it helps with

  • compute two-asset portfolio volatility from weights and correlation
  • build the efficient frontier and locate the minimum variance portfolio
  • measure the diversification ratio of current holdings
  • attribute portfolio risk to individual assets
  • check whether a portfolio survives a correlation spike in a crash

Example prompts for the agent

  • compute portfolio volatility: stock sigma 20% weight 60%, bond sigma 5% weight 40%, correlation 0.2
  • find the minimum variance portfolio from my covariance matrix
  • calculate the diversification ratio for four equally weighted assets

How to install diversification

1Skills CLI (Vercel)

npx skills add JoelLewis/finance_skills --skill diversification -a claude-code

2Manually: put the files in place

~/.claude/skills/diversification/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/diversification/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about diversification

How do I install diversification in Claude?

Run npx skills add JoelLewis/finance_skills --skill diversification -a claude-code. The skill lands at ~/.claude/skills/diversification/SKILL.md.

What does the diversification skill do?

It handles portfolio risk and diversification math: two-asset and n-asset variance, the efficient frontier, minimum variance weights, the diversification ratio and risk contributions.

Why does diversification fail during market crashes?

Correlations between risky assets rise sharply, so the diversification benefit shrinks. The skill recommends stress-testing with crisis-period correlation matrices.

Source text

SKILL.md · MIT
---
name: diversification
description: "Build diversified portfolios using correlation analysis, efficient frontier construction, and factor-based diversification. Use when the user asks about portfolio variance, correlation effects, the efficient frontier, minimum variance portfolios, diversification ratios, or factor diversification. Also trigger when users mention 'don't put all eggs in one basket', 'how many stocks do I need', 'correlation breakdown in a crisis', 'are my holdings really diversified', 'risk contributions', or ask why diversification fails during market crashes."
---

# Diversification

## Core Concepts

### Portfolio Variance (2 Assets)
For a portfolio of two assets with weights w_1 and w_2, volatilities sigma_1 and sigma_2, and correlation rho_12:

sigma^2_p = w_1^2 * sigma_1^2 + w_2^2 * sigma_2^2 + 2 * w_1 * w_2 * sigma_1 * sigma_2 * rho_12

Diversification benefit arises whenever rho_12 < 1, because the portfolio volatility will be less than the weighted average of individual volatilities.

### Portfolio Variance (n Assets)
In matrix notation for n assets with weight vector w and covariance matrix Sigma:

sigma^2_p = w' * Sigma * w

This generalizes to any number of assets and captures all pairwise correlations.

### Diversification Benefit
Portfolio volatility is strictly less than the weighted average of individual volatilities whenever any pairwise correlation is below 1:

sigma_p < Sigma(w_i * sigma_i)  when rho_ij < 1 for some i,j

The lower the average correlation, the greater the diversification benefit.

### Efficient Frontier
The efficient frontier is the set of portfolios that offer the highest expected return for each level of risk (or equivalently, the lowest risk for each level of return). Portfolios below the frontier are suboptimal — they can be improved by reallocating weights.

### Minimum Variance Portfolio
The portfolio with the lowest possible volatility, regardless of expected returns:

w_mv = Sigma^(-1) * 1 / (1' * Sigma^(-1) * 1)

where 1 is a vector of ones. This portfolio depends only on the covariance matrix, not on expected returns, making it more robust to estimation error.

### Correlation Regimes
Correlations are not constant. In market crises, correlations between risky assets tend to increase sharply ("correlation breakdown" or "correlation tightening"), reducing the diversification benefit precisely when it is needed most. Key implications:
- Stress-test portfolios using crisis-period correlation matrices
- Diversification across asset classes (stocks, bonds, commodities, real assets) is more robust than within-asset-class diversification

### Diversification Ratio
A measure of how much diversification a portfolio achieves:

DR = (Sigma(w_i * sigma_i)) / sigma_p

A portfolio of perfectly correlated assets has DR = 1. Higher DR indicates more effective diversification. A fully diversified equal-volatility portfolio with zero correlations has DR = sqrt(n).

### Maximum Diversification Portfolio
The portfolio that maximizes the diversification ratio. This is an alternative to mean-variance optimization that does not require expected return inputs — it relies only on volatilities and correlations.

### Factor Diversification
True diversification means exposure to multiple independent risk factors, not merely holding many assets. Assets that share the same factor exposures (e.g., multiple tech stocks all driven by growth factor) provide less diversification than their number suggests. Key factors:
- Market, size, value, momentum, quality, low volatility
- Interest rate, credit, inflation
- Geographic, sector, currency

### Risk Contribution
The risk contribution of asset i to portfolio volatility:

RC_i = w_i * (Sigma * w)_i / sigma_p

where (Sigma * w)_i is the i-th element of the vector Sigma * w. The sum of all risk contributions equals the portfolio volatility. This decomposition reveals which assets truly drive portfolio risk.

### Marginal Risk Contribution
The rate of change of portfolio volatility with respect to the weight of asset i:

MRC_i = (Sigma * w)_i / sigma_p

Risk contribution = weight * marginal risk contribution: RC_i = w_i * MRC_i

### Diminishing Marginal Diversification
The diversification benefit of adding assets decreases rapidly. Empirically:
- 15-20 uncorrelated assets capture most of the diversification benefit
- Beyond 30 assets, incremental risk reduction is minimal
- The asymptotic portfolio variance equals the average covariance (systematic risk cannot be diversified away)

## Key Formulas

| Formula | Expression | Use Case |
|---------|-----------|----------|
| 2-Asset Portfolio Variance | sigma^2_p = w_1^2*sigma_1^2 + w_2^2*sigma_2^2 + 2*w_1*w_2*sigma_1*sigma_2*rho_12 | Two-asset risk calculation |
| n-Asset Portfolio Variance | sigma^2_p = w' * Sigma * w | General portfolio risk |
| Minimum Variance Weights | w_mv = Sigma^(-1)*1 / (1'*Sigma^(-1)*1) | Lowest-risk portfolio |
| Diversification Ratio | DR = Sigma(w_i*sigma_i) / sigma_p | Measure of diversification |
| Risk Contribution | RC_i = w_i * (Sigma*w)_i / sigma_p | Asset-level risk attribution |
| Marginal Risk Contribution | MRC_i = (Sigma*w)_i / sigma_p | Sensitivity of risk to weight |
| Asymptotic Variance | sigma^2_p → avg(cov_ij) as n → infinity | Diversification limit |

## Worked Examples

### Example 1: Two-Asset Portfolio Volatility
**Given:**
- Stock: sigma = 20%, weight = 60%
- Bond: sigma = 5%, weight = 40%
- Correlation: rho = 0.2

**Calculate:** Portfolio volatility

**Solution:**

sigma^2_p = (0.60)^2 * (0.20)^2 + (0.40)^2 * (0.05)^2 + 2 * (0.60) * (0.40) * (0.20) * (0.05) * (0.20)

sigma^2_p = 0.36 * 0.04 + 0.16 * 0.0025 + 2 * 0.60 * 0.40 * 0.20 * 0.05 * 0.20

sigma^2_p = 0.0144 + 0.0004 + 0.00096

sigma^2_p = 0.01576

sigma_p = sqrt(0.01576) = 0.1255 = **12.55%**

Weighted average volatility = 0.60 * 20% + 0.40 * 5% = 14.0%

Diversification benefit = 14.0% - 12.55% = **1.45 percentage points** of risk reduction.

### Example 2: Diversification Ratio for a 4-Asset Portfolio
**Given:**
- Assets: A (sigma=15%, w=25%), B (sigma=20%, w=25%), C (sigma=10%, w=25%), D (sigma=18%, w=25%)
- Portfolio volatility (computed from full covariance matrix): sigma_p = 10.5%

**Calculate:** Diversification ratio

**Solution:**

Weighted average volatility = 0.25*15% + 0.25*20% + 0.25*10% + 0.25*18%
= 3.75% + 5.0% + 2.5% + 4.5% = 15.75%

Diversification Ratio = 15.75% / 10.5% = **1.50**

Interpretation: The portfolio achieves significant diversification — the weighted average volatility is 50% higher than the actual portfolio volatility. A DR of 1.50 indicates meaningful correlation benefits. For comparison, a portfolio of perfectly correlated assets would have DR = 1.0.

## Common Pitfalls
- Diversification is not just about holding more assets — correlation structure is what matters; 50 highly correlated stocks provide less diversification than 10 uncorrelated ones
- Correlations are unstable and tend to increase during market stress, reducing the diversification benefit precisely when it is most needed
- Over-diversification (diworsification): holding too many positions dilutes high-conviction ideas and guarantees mediocre returns after costs
- Home country bias: investors systematically under-allocate to international assets, missing a major source of diversification
- Confusing asset diversification with factor diversification: a portfolio of 20 growth stocks is not diversified despite holding many names
- Using historical correlations without testing sensitivity to regime changes

## Cross-References
- **historical-risk** (wealth-management plugin): volatility, correlation, and systematic vs. idiosyncratic risk foundations
- **asset-allocation** (wealth-management plugin): diversification principles feed directly into portfolio construction and optimization
- **rebalancing** (wealth-management plugin): maintaining diversification targets over time through rebalancing
- **bet-sizing** (wealth-management plugin): position sizing interacts with diversification — concentrated vs. diversified approaches
- **equity-compensation** (wealth-management plugin): concentrated employer stock from RSUs, options, and ESPPs is a common source of single-stock concentration requiring staged diversification
- **factor-investing** (wealth-management plugin): diversifying across factor premia (value, momentum, quality) as a layer distinct from asset-class diversification
## Running the Script

```bash
uv run scripts/diversification.py            # run the demo (uses PEP 723 inline deps)
uv run scripts/diversification.py --verify   # check demo outputs against the worked examples (exit 1 on mismatch)
python3 scripts/diversification.py            # alternative (requires: pip install numpy)
```

The demo prints the calculations covered above; its values match the worked examples in this skill. Run `--help` for a list of the classes and functions. For programmatic use, import the module rather than running it — the demo only executes under `python diversification.py`.

© JoelLewis · MIT · JoelLewis/finance_skills

Similar skills

Everything for Finance and business →

From the same set59

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor