Methodology

Last updated September 2026

The Diversification Score is one number, and it is worth exactly as much as the assumptions behind it. This is what it counts, what it ignores, how your funds are taken apart, and where the underlying data comes from, including the places where that data is thin.


01What the score measures

A number from 0 to 100 describing how evenly your capital sits across individual companies and across sectors, after looking through the funds you hold.

It is a description, not a verdict. A portfolio concentrated on purpose scores low, and that is the correct answer. The score does not know your intent and is not trying to guess it. Its use is for the other case: you believed you were spread across the market, and the number shows you where you actually stand.

Two components, weighted:

  • Position component, 60%. How evenly capital sits across individual companies, after look-through.
  • Sector component, 40%. How evenly that same capital sits across sectors.

The bands are labels for the number, not grades:

ScoreLabel
0–25Highly concentrated
26–50Concentrated
51–75Moderately spread
76–100Broadly spread

02What it does not measure

The score measures spread, and spread is all it measures. It is silent on:

  • Quality and valuation. Five hundred poor businesses, evenly weighted, score 100.
  • Expected return. Concentration can be deliberate and rational.
  • Correlation. Two sectors that look unrelated can fall together. A concentration measure cannot see that.
  • Volatility and drawdown. No beta, no historical volatility, no stress test.
  • Fees. Expense ratios are not modelled.
  • Currency. A portfolio earning in one currency and a portfolio earning in five score identically.
  • Suitability. Prism does not know your age, income, tax position or plans, so it cannot know what is right for you.

Nothing here is advice, and the score is not a grade.

03Looking through your funds

When you hold a fund you do not own the fund; you own a slice of everything inside it. Hold NDQ and hold NVDA directly, and your real NVDA exposure is larger than your allocation chart shows.

Each holding is handled one of four ways:

HoldingTreatment
A companyIts full weight goes to that company.
A fund we hold constituents forDecomposed. Each constituent receives fund weight × weight within fund, and contributions reaching the same company from several funds are added together.
A fund we recognise but cannot decomposeKept as one opaque position, and named in the report as unresolved.
Anything elseTreated as a company.

That last row matters. A fund we do not recognise at all is scored as though it were a single company, which understates your real spread rather than overstating it. Twenty funds are decomposed today; twenty-eight more are recognised as funds but carry no constituent data, fund-of-funds like VDHG and DHHF among them. We do not unwrap a fund-of-funds into its underlying funds.

Worked example

A portfolio holds NDQ at 40% and NVDA directly at 10%. NVDA is about 9% of NDQ.

True NVDA exposure = (40% × 9%) + 10% = 3.6% + 10% = 13.6%

Higher than the 10% the allocation chart shows. Prism raises a gap like this once it reaches 3 percentage points. This is an illustration of the arithmetic. It is not a comment on either holding, and not a suggestion to buy or sell anything.

The part of a fund we cannot see

Our file holds each fund's largest 25 holdings by weight. That is most of a concentrated fund and very little of a broad one: the top 25 are 90.0% of SMH and 7.9% of IWM.

The weight we cannot see is modelled rather than discarded. It is spread evenly across the number of holdings the fund reports but we do not list. For IWM that is 92.1% of the fund across 1,975 positions.

This model is not optional: without it a total-market fund would behave like a 25-stock portfolio and the score would be badly wrong. But it is still a model, and it cuts both ways. A portfolio holding nothing but IWM scores 100 on the position component, and that 100 rests entirely on the assumption that 1,975 holdings we cannot see are equally weighted. They are not.

Modelled positions carry no ticker, no sector and no country. They count toward the position component and are excluded from the sector one.

04How the score is calculated

Concentration

The underlying measure is the Herfindahl–Hirschman Index, the standard measure of concentration in competition economics. It is the same one a competition regulator uses to judge whether a market has too few players. For weights summing to 1:

HHI = Σ(wᵢ²)

It runs from 1/n, meaning n positions held evenly, to 1, meaning everything in one. Its inverse is the easier number to read, the effective number of positions:

effective N = 1 / HHI

A portfolio with 40% in one company and 6% in ten others holds eleven positions and has an effective N of 5.1. That gap between 11 and 5.1 is the whole point of the measure.

Position component

Effective N is mapped onto 0–100 on a logarithmic curve, with 50 effective positions as the reference for broadly spread:

positionScore = clamp(100 × ln(effN) / ln(50), 0, 100)

effN = 1 →   0
effN = 5 →  41
effN = 10 →  59
effN = 25 →  82
effN ≥ 50 → 100

Logarithmic because the step from 3 effective positions to 6 changes your portfolio and the step from 40 to 50 does not.

Sector component

The same calculation over look-through weights aggregated by sector, with 8 effective sectors as the reference:

sectorScore = clamp(100 × ln(effSectors) / ln(8), 0, 100)

Holdings with no sector on file are left out and the remaining weights renormalised. No "Unknown" bucket is created: that would penalise an ASX-heavy portfolio for a gap in the data rather than for anything true about the portfolio. If under 5% of your weight carries a sector, the component is dropped entirely.

The final number

score = round(0.6 × positionScore + 0.4 × sectorScore)

With no usable sector data: score = round(positionScore).

05Where the numbers come from

InputSourceRefreshed
PricesFinnhubLive, on request
Sector labelsFinnhub company profileCached per company after the first lookup
Fund constituentsMaintained by hand from issuer factsheetsSnapshot dated 1 June 2025

Each of those rows has a limit worth stating plainly.

Fund weights are a snapshot, not a feed

They were taken on 1 June 2025 and have drifted since. A fund's real weights today are not the ones the score uses, and the gap widens the further from that date you are.

"Sector" is the data provider's industry label, not GICS

Finnhub returns one industry string per company. We normalise sixteen common spellings onto GICS sector names and pass everything else through unchanged, so in practice the buckets are finer than the eleven GICS sectors. Of twenty-five large companies we probed, twenty-four came back classified, across eighteen distinct labels: Semiconductors, Banking, Pharmaceuticals and Machinery among them.

Finer buckets read as more diversification than a true sector split would. On a technology-heavy test portfolio the sector component came out 27 points higher than the same holdings mapped to GICS sectors, which is about 11 points on the final score. The score is therefore generous about sector spread, most of all for a portfolio concentrated inside a single GICS sector.

Many non-US listings carry no sector at all

Finnhub does not classify most ASX companies; Commonwealth Bank, to take one, returns nothing. Those holdings drop out of the sector component and the rest are renormalised, so an ASX-heavy portfolio is scored on a smaller sample than a US one.

Everything above describes the score inside Prism. The free demo on the home page runs the same look-through and shows your effective holdings, your largest true exposure and the sector split, though not the 0–100 score.

Prism is independent. It is not a broker, a fund or an adviser, it holds no connection to your brokerage account, and it cannot place a trade. It earns nothing from what you choose to hold.