How FundScore works
FundScore helps you understand what you actually get for a fund's fee versus its closest passive alternative. This page explains every score and label we show, the data behind it, how fresh that data is, and — just as importantly — where the limits are. Each section here is a permanent link, so any number in the product can point you straight to its explanation.
Methodology last updated 2026-07-16.
We work for you, not the funds
We charge users, not fund companies. No paid placements. No affiliate-incentive ranking. The scores you see are not for sale.
What FundScore is — and is not
FundScore is a transparency and analysis tool. We calculate and compare; we do not recommend. Nothing here is personalized investment advice, and nothing here predicts how a fund will perform. Past evidence and current holdings describe what is true today — they do not guarantee future returns. When data is missing, stale, or unsupported, we say so and suppress the affected claim rather than fill the hole.
What we explain
- Value ScoreHow much genuine active value a fund delivered, net of its fee, versus its passive alternative — a backward-looking, relative read.
- Value OfferingWhether a fund is a reasonable way to get its exposure and manager, read against its passive alternative.
- Fee FairnessHow a fund's fee compares with what similar funds charge for similar work.
- Skill EvidenceThe statistical evidence that a fund's manager has added value through selection.
- Exposure X-RayWhat a fund actually holds — by theme, sector, stock, region and style — versus its passive alternative.
- Return AttributionWhich holdings, sectors and themes drove a fund's return versus its passive alternative.
- Risk & AttributionWhat drives a fund in return space — its active factor and theme bets beyond a cheap index, how much of a theme it holds versus actively bets on, and how those bets played out.
- Fund Family ValueHow a fund's family — its adviser — ranks on after-fee value across its scored funds, and where this fund sits inside it.
- The Neighbourhood (Your Passive Alternative's Full Life)What the fund's passive alternative would have done over its whole available history, next to US stocks, world stocks and US bonds — a hypothetical backcast of today's mix, never a track record.
- Growth & After-Fee Returns (Matched Windows)Growth of $1,000 for the fund and its passive alternative on one matched monthly window, with after-fee period returns raw and at matched market risk.
- Positioning Context (Cohort Percentiles)Where a fund's beta and tracking error sit among funds benchmarked to the same passive alternative.
- 3-Year Risk DetailThe fund's trailing risk profile — volatility, Sharpe, drawdown, and how it behaved versus its stated prospectus benchmark.
- Tracking-Error DecompositionWhere a fund's benchmark-relative risk (tracking error) comes from — split into its factor tilts and its stock selection, ranked bet by bet.
- Manager MovesWhether the trades a fund made between filings have, so far, helped or hurt versus holding still.
- Portfolio ShiftsHow a fund's exposures moved between its filed holdings and its own filings a year earlier.
- Alternatives to InspectOther funds and passive options worth comparing against this one.
- TakeawaysThe handful of plain-language points a profile is trying to make.
- The TakeA one-paragraph summary of the profile, built only when the evidence is complete.
- Data sources & freshnessWhere our data comes from and how we represent its age.
- Limits & no-advice boundaryThe honest gaps and what FundScore is not.
Value Score
How much genuine active value a fund delivered, net of its fee, versus its passive alternative — a backward-looking, relative read.
What it measures
The Value Score answers one question: of the active options here, did this fund genuinely add value after its fee, versus simply buying its passive alternative (a low-cost index ETF that tracks the same style)? It is shown as net value over the passive alternative, per year, and as a 0–100 score anchored so that 50 = breakeven (the fund exactly earned back its fee).
Above breakeven means the fund's beta-adjusted edge more than covered its fee in the past; below means the fee exceeded the edge — for most active funds, the honest default is that the passive alternative wins. It is a relative, diagnostic read, not a prediction.
How we calculate it
We strip out broad market and style exposure (the fund's return minus β times its passive alternative), so generic market beta earns no credit — only the manager's beta-clean excess counts.
That beta-clean edge is deliberately shrunk toward zero because it is mostly noise — specifically it is half of the gross information ratio multiplied by the recent tracking error, so the figure shown is roughly half the fund's raw historical excess. The fund's net expense ratio (at full weight) is then subtracted. What remains is net value over the passive alternative, in basis points per year — the headline number. The 0–100 score is a fixed (not percentile) rescaling anchored at 50 = breakeven.
A fund is only scored when a low-cost passive alternative can fairly stand in for it (sufficient return history and a close enough style match); otherwise it is shown as Too new, Not comparable, or Fee unavailable rather than given a number. Figures are deliberately coarsened because the signal is mostly noise.
Data sources
- Weekly fund and passive-alternative (L2 blend) returns from passive_alt_daily_nav
- Net expense ratio (named share class) and the passive alternative's own fee from expense history
- Replica quality (l2_replica_quality) gating which funds can be scored
What it does not mean
- It is not a forecast or an expected return — historically even the highest-scoring funds tended to trail their passive alternative, net of fees, going forward.
- It is not a buy / sell / hold recommendation, and a high score is not a probability of beating the market.
- It is not a universal quality rating — only about 1 in 5 active funds clears breakeven, and the typical fund scores around 35.
Limitations
- The underlying signal is roughly 98% noise and regime-dependent (it can reverse in down markets), so we lead with the breakeven sign and treat the exact magnitude as soft.
- A single beta adjustment removes broad style but not concentrated theme bets — a growth fund's AI tilt, for example, can still show as positive value.
- Coverage is equity funds only for now, and a fund whose strategy has no fair passive stand-in is shown as Not comparable rather than scored.
Method value_score_v0.3 · Computed as of 2026-07-11, from each fund's weekly returns through that date.
Value Offering
Whether a fund is a reasonable way to get its exposure and manager, read against its passive alternative.
What it measures
Value Offering reads a fund along two questions, not one rating. First: is there evidence the manager's stock selection has added value (judged selection)? Second: what kind of bet are you actually buying — a stock-picker's book, or mostly a sector or theme tilt you could get more cheaply (bet profile)?
It is shown as a small set of plain badges (for example, Stock-picking edge, Mostly a sector or theme bet, Selection unproven, Costs more, Index, Building track record) — always next to the named passive alternative the fund is being read against.
How we calculate it
Axis A (judged selection) uses a hierarchical Bayesian skill posterior — the probability the fund's manager has added value through selection, measured before fees (gross-of-fee, so the signal isn't conflated with cost) and after removing what passive exposures explain.
Axis B (bet profile) uses a risk decomposition that splits the fund's tracking risk versus its passive alternative into idiosyncratic stock-picking risk versus shared sector or theme risk. A fund whose active risk is mostly a sector or theme tilt is labelled as such, even when its returns look strong.
A theme-ride override softens a selection badge to a bet badge when nearly all of a fund's edge is explained by one concentrated theme — so a strong number doesn't read as proven skill when it's really one bet.
Data sources
- Hierarchical skill posteriors (returns-based, net and gross of fees)
- Risk decomposition panel (risk_decomp_v0.1) — active risk split from holdings
- SEC N-PORT holdings and the matched passive ETF blend
What it does not mean
- It is not an expected return or a forecast of how the fund will do.
- It is not a probability of beating the market, and not a buy / sell / hold recommendation.
- It is not a universal quality rating — a fund can be a reasonable way to make a bet that turns out poorly.
Limitations
- Judged selection requires enough return history; funds with too short a track record are labelled Building track record rather than scored.
- The skill posterior is returns-based — it can detect selection that shows up in performance, but cannot see a manager's reasoning or intent.
- Bet profile depends on holdings, which carry the usual SEC filing lag (see Exposure X-Ray limitations).
Method vo_reframe_v0.4 · Evaluated as of 2025-10-31 holdings; skill evidence as of 2026-07-05.
Fee Fairness
How a fund's fee compares with what similar funds charge for similar work.
What it measures
Fee Fairness places a fund's expense ratio in the distribution of fees charged by comparable funds, so you can see whether you are paying near the middle, the cheap end, or the expensive end for the kind of fund it is.
How we calculate it
We compare the fund's filed net expense ratio against peers in the same category, and against the fee of its closest passive alternative, to produce a fairness band.
The active fee — what you pay above the passive alternative — is computed from the fund's fee minus the blended fee of the matched passive ETFs.
Data sources
- SEC-filed net expense ratios (MFRR / prospectus filings)
- Matched passive ETF blend and ETF expense ratios
What it does not mean
- A fair fee is not a low fee, and an unfair fee is not a prediction the fund will underperform.
- We never say a fee is "worth it" or "overpriced" — only how it compares.
Limitations
- Fee comparisons depend on a usable peer category and a passive match; where neither is available we suppress the comparison rather than guess.
- Only filed expense ratios are used — funds with no recent filed fee show no fairness band.
Method fee_rd_v0.1 · Fee data as of the most recent filed expense ratios (filings through 2026Q1; computed 2026-05-08).
Skill Evidence
The statistical evidence that a fund's manager has added value through selection.
What it measures
Skill Evidence is the probability — read from the fund's own track record — that the manager has added value beyond what its passive exposures explain, net of what it can be attributed to chance.
How we calculate it
A hierarchical Bayesian model pools each fund toward its peer group, so a short or noisy record is shrunk toward the typical fund in its category rather than over-read.
We report it as bands and a probability of positive (and of negative) skill, measured on gross-of-fee selection so the signal isn't conflated with fee economics.
Data sources
- Fund and passive-alternative return series
- Peer-group structure from the fund taxonomy
What it does not mean
- Evidence of past selection is not a guarantee of future returns.
- A low probability is not proof of no skill — it can simply mean not enough evidence yet.
Limitations
- Funds with insufficient return history get no skill read (surfaced as a missing-evidence state, never a fabricated number).
- The model sees returns, not holdings reasoning — it measures whether selection showed up, not why.
Method skill_hier_v1 · Returns through the most recent month; skill panel as of 2026-07-05.
Exposure X-Ray
What a fund actually holds — by theme, sector, stock, region and style — versus its passive alternative.
What it measures
Exposure X-Ray breaks a fund's portfolio into theme, sector, stock, country / region, style, concentration and asset-class rows, and shows the fund's exposure, the passive alternative's exposure, and the difference side by side.
Style labels translate factor names into plain language; the raw factor names are kept for the methodology and professional views.
How we calculate it
We start from SEC N-PORT holdings, look through fund-of-funds to the underlying securities, and classify each position into the exposure rows using a curated theme library and reference classifications.
Passive-relative rows subtract the matched passive blend's exposure from the fund's, so you see the active difference, not just the absolute weight.
Data sources
- SEC N-PORT holdings (with fund-of-funds look-through)
- Curated v0 theme library (stock-basket themes)
- Reference sector / region / style classifications and the matched passive blend
What it does not mean
- Exposure differences describe what the fund holds today, not what it will return.
- A larger difference is not automatically "better" — it is simply a more distinctive bet.
Limitations
- Holdings-derived rows are considered stale after 180 days; past that threshold the affected claims are suppressed.
- SEC holdings are filed with a lag, so the most recent portfolio may differ from the filed snapshot.
- Where classification coverage of a portfolio is partial, we show the covered weight and suppress claims about the uncovered part rather than fill it in.
- Foreign-listed positions are classified where reference data exists; a foreign sector vendor gap means some non-US sector rows are not yet available.
Method exposure_xray_v0.4 · Holdings as of the displayed source date; passive-blend holdings as of each ETF's own displayed source date (up to 2026-04-30).
Return Attribution
Which holdings, sectors and themes drove a fund's return versus its passive alternative.
What it measures
Return Attribution decomposes a fund's excess return over its passive alternative into contributions from individual stocks, sectors and themes, over 1-, 3- and 5-year windows.
How we calculate it
We use a Brinson-style allocation that holds the period-start portfolio and attributes the return difference to where the fund was positioned differently from its passive baseline.
Per-member contributions are exact; the unattributed remainder reflects trading within the period (positions changed between filings), which quarterly holdings cannot resolve.
Data sources
- SEC N-PORT period-start holdings
- Sharadar SEP daily stock prices
- The matched passive blend
What it does not mean
- Attribution explains the past period only; it is not a forecast of which holdings will drive future returns.
Limitations
- Because holdings are quarterly, contributions do not sum exactly to the total excess return — the gap is real trading the snapshots can't see, reported as a residual, not clamped or imputed.
- Coverage gate (Gate A): the pre-2025 holdings store is keyed to US stock tickers and drops foreign holdings, so funds whose portfolios were heavily international or emerging-market cannot be attributed with US-only prices — those fund-periods are suppressed rather than shown with distorted numbers.
- A small foreign-ADR residual can survive on otherwise-US funds; these are real, unclamped values reflecting the same documented foreign-attribution gap.
Method return_attr_v0.2 · Return windows end 2026-04-30; built from the filed holdings snapshots inside each window (period-start holdings as early as the prior filing).
Risk & Attribution
What drives a fund in return space — its active factor and theme bets beyond a cheap index, how much of a theme it holds versus actively bets on, and how those bets played out.
What it measures
The factor lens regresses a fund's returns on the market, the Fama-French style factors, and a library of curated theme baskets to estimate its exposures. The active β is the bet beyond the fund's passive baseline — its closest passive alternative (the L2 index blend) when one exists, otherwise the broad market. A near-zero active β on a theme means the fund holds it only as much as that baseline does.
The divergence headline juxtaposes two different measurements of the same exposure: how much of a theme the fund holds (% of assets) and how much of an active bet it runs on that theme (active β). These are never added together.
The bias / timing / idiosyncratic decomposition splits a fund's realised active return over the holdings path into the persistent tilt (bias), the part from carrying more of a factor in the quarters it paid (timing), and the residual left after the factor bets (idiosyncratic).
How we calculate it
Exposures come from trailing return regressions under several control models — raw, passive-alternative-stripped (vs the fund's L2 index blend), market-stripped, and incremental-to-FF6. The headline active β for any active claim is stripped of the fund's passive alternative when one exists, and falls back to the market otherwise — the page names which baseline applies. The regression needs only returns, not the filing-lagged portfolio, so it usually runs to a fresher date than the holdings — at this build the newest holdings quarters post-date the last factor eval while a refresh is pending; both as-of dates are shown.
The realised attribution multiplies each factor's average active tilt by the cumulative factor return over the path (bias) and adds the covariance of tilt and return (timing). Only the idiosyncratic residual is read as stock-selection evidence — and even then it is cross-referenced with the fund's skill evidence, never asserted alone.
Data sources
- Fund and factor daily returns (Fama-French factors, market, curated theme baskets)
- SEC N-PORT holdings (for the divergence headline's holdings side)
- The matched passive blend
What it does not mean
- Bias and timing are the realised contribution of the fund's exposure path, NOT a claim that the manager can time factors — three research probes found no evidence of timing skill. Only the idiosyncratic residual reads as selection skill.
- This returns-based factor attribution is a separate family from the holdings-based Return Attribution; the two answer the same question two ways and are never summed.
- How much of a theme a fund holds is not the same as how much it actively bets on it — a large holding can be pure market exposure.
- Exposures and realised attribution describe the past, not the future; we do not forecast factor or theme returns.
Limitations
- Estimated for about 4,700 funds — those with enough usable return history and a matched passive blend; the rest are shown as unavailable rather than estimated.
- Where a factor or theme β isn't statistically distinguishable from zero (|t| < 2), we say so rather than present it as a real bet.
- The divergence holdings side inherits the 180-day holdings staleness and filing-lag limits; where the passive blend has no theme look-through we lean on the absolute weight and active β rather than a misleading self-overweight.
- The attribution waterfall lists the top factor rows; the remaining small factors are collected into an explicit “smaller factor bets” line (exact by the decomposition's own identity) so the chain always sums — nothing is silently dropped.
- The realised attribution (v0.2) runs on the standardized factor model — the same bet universe as Current Positioning and the tracking-error table — over the holdings era only; earlier history is covered by the returns-based Growth section.
Method factor_exp_v0.1 · exposure_divergence_v0.1 · exposure_path_v0.2 · Return-based exposures through 2026-04-24; the realised attribution covers the holdings era (2020-06-30 to 2026-05-31, up to 23 quarters per fund); holdings side as of the displayed filing date. For the newest holdings quarters the β eval date currently predates the holdings while a factor refresh is pending — both dates are always shown.
Fund Family Value
How a fund's family — its adviser — ranks on after-fee value across its scored funds, and where this fund sits inside it.
What it measures
The family is the fund's ADVISER (from N-CEN filings) — the firm actually running the money — not the SEC trust name, which splits one brand across dozens of registrants. For each family we show the average and the AUM-weighted net value per year across its scored funds (each fund read against its OWN passive alternative), and a rank among families with at least five scored funds.
Showing both averages is deliberate: the AUM-weighted figure counts every invested dollar equally, the simple average counts every fund equally — the gap between them says whether the family's biggest funds do better or worse than its typical fund.
How we calculate it
Scored funds are grouped by cleaned adviser name (a small alias map merges spelling variants; sub-advised funds group under the adviser). Each fund's net value is its Value Score read — after fees, versus its own closest passive alternative — so the family aggregate is an average of per-fund comparisons, never a single-benchmark claim.
The family rank uses the AUM-weighted since-inception figure (the payload names the rank basis); families with fewer than five scored funds are shown but never ranked. The member table lists the family's largest scored funds by AUM, always including the fund you are viewing.
The 3-year column is a different, realized basis: each fund's beta-adjusted after-fee excess over its passive alternative across the last three years of the matched monthly window — commensurately beta-adjusted like the Value Score, but a raw realized read, not a shrunk score. Funds without a 3-year matched window are excluded from the 3-year aggregates, never imputed.
Data sources
- Value Score panel (per-fund net value vs its own passive alternative)
- Fund metadata (N-CEN adviser name, monthly average net assets)
- The matched-window period table behind the Growth & After-Fee Returns section (the 3-year column)
What it does not mean
- A family's rank describes its scored funds' past after-fee value — it is not a prediction for any fund, and not a claim about funds we don't score.
- The since-inception and 3-year columns are different statistics on different bases (shrunk score vs realized excess) — they are shown side by side, never added or averaged together.
Limitations
- Coverage is scored funds only (about 2,100 member funds across 412 families; 115 families reach the 5-fund ranking bar) — the page says 'scored funds', never 'all funds'.
- Member AUM stamps come from filings and span a date range rather than one day; the page discloses the range.
- Adviser-name grouping can fragment a family whose filings spell the adviser differently; known variants are merged and the top families were eyeballed, but a residual split is possible.
Method fund_family_panel_v0.1 · Value as of 2026-05-09; member AUM stamps come from filings and span 2023-12-31 to 2025-10-31 across families (each page discloses its own family's range).
The Neighbourhood (Your Passive Alternative's Full Life)
What the fund's passive alternative would have done over its whole available history, next to US stocks, world stocks and US bonds — a hypothetical backcast of today's mix, never a track record.
What it measures
Growth of $10,000 in the fund's passive alternative — the twin — over the longest window where the twin and all three comparators are genuinely priced, shown against IVV (US stocks, the S&P 500), VT (world stocks) and BND (US investment-grade bonds). All four legs come from adjusted closes, so each is already net of its own ETF fee.
Alongside the chart: up- and down-capture against world stocks, the twin's three deepest drawdowns, and calendar-year bars. This section describes the NEIGHBOURHOOD the fund lives in — how its passive alternative behaves — not the fund's own record, which is the Growth & After-Fee Returns section.
How we calculate it
The twin leg holds TODAY'S matched weights fixed and backcasts them across the window. That is hypothetical by construction — the mix was fit at the refit date shown on the chip and did not exist historically — so every payload carries the hypothetical flag and its mix-as-of date, and the page labels it.
The window starts at the LATEST first-price date across the twin's own holdings plus IVV, VT and BND (world stocks, first priced 2008-06-26, bind most twins; a younger holding binds later and the page names what bound it), and ends at the earliest last-price date across those legs. No proxy is ever spliced in to reach further back and nothing is backfilled — a twin holding a young ETF honestly gets a shorter window.
Capture is computed on monthly returns with world stocks as the reference: down-capture is the twin's average return across the months world stocks fell, divided by their average return in those same months (up-capture is the mirror). Drawdowns are measured on the twin's DAILY closes — peak is the last day at the running high, recovery is the first day that high is regained, depth is never clamped — and an unrecovered episode is marked ongoing rather than closed early.
On the handful of days where a leg has no price, that day is skipped for every leg rather than filled: compounding across the gap yields the true multi-day return. The effect is bounded — at most 2 skipped days on any twin, 51 of 6,202 twins affected — and the build fails outright above 5. (The per-twin count is measured in the panel but is not currently carried into the served payload, so the page cannot disclose it per-fund; tracked upstream.)
Data sources
- Canonical daily adjusted closes (fund_daily_adj_close) for every leg
- The L2 passive-blend weights — the same twin shown in the Passive Alternative section
- The L2 candidate-fit panel (the refit date behind the mix-as-of chip)
What it does not mean
- The twin line is NOT a track record and nobody earned it: it applies today's mix to the past. It shows what that combination of index funds would have done, which is a different claim.
- This is not the fund's own history. Nothing here says whether the manager beat the alternative — that comparison lives in the Value Score and the Growth & After-Fee Returns section.
- “US bonds” means exactly that: BND is Vanguard Total Bond Market, a US investment-grade fund, not a global bond fund. The honest global vehicle only begins in 2018 and reaching 2008 with it would require splicing, which this panel forbids.
Limitations
- Coverage is 3,094 of 5,819 served funds (53.2%). The denominator that matters is funds that actually display a twin mix you could act on — 3,101 of them — and of those this serves 3,094, or 99.8%. (Against the wider 3,689 carrying any passive-alternative record it reads 83.9%, but 588 of those display no twin at all because the match fell below our fit floor, so that denominator understates it.) There is no recoverable gap.
- The funds without a neighbourhood are honestly without one: 2,130 have no twin to speak of (1,705 of them ARE passive vehicles, where a twin is meaningless), 588 have a twin below our fit floor — we will not present a match we don't trust as “the neighbourhood” — and 7 fail closed for want of a fit row. Those three add to exactly the 2,725 funds that serve nothing.
- The history belongs to the twin, not the fund. Two funds matched to the same alternative see the same neighbourhood, and a twin can be far older than the fund holding it.
Method neighbourhood_v1_2026-08-09 · Monthly growth from each twin's own window start through 2026-07 (the final calendar year is marked partial). The window is per-twin, not shared: it starts where every leg is genuinely priced.
Positioning Context (Cohort Percentiles)
Where a fund's beta and tracking error sit among funds benchmarked to the same passive alternative.
What it measures
A beta of 0.90 or a tracking error of 4.8%/yr means little on its own. This context places each next to funds sharing the same passive alternative: the percentile says what fraction of that named cohort sits strictly below the fund on that measure.
The cohort is always named with its size — a percentile is never shown against an unnamed population. When the same-passive-alternative cohort is too small, the fund's peer group stands in (and the copy says so).
How we calculate it
Percentile = the share of cohort members strictly below the fund's value (the fund itself counts in the denominator; ties share the same percentile, never ranked above one another). This is the one percentile convention used page-wide — the fee ruler's peer percentile uses the same rule.
Cohorts need at least 20 members to produce a percentile; smaller cohorts show nothing rather than a percentile over a handful of funds. Funds whose passive alternative is a blend of ETFs get a blend-weighted percentile: the fund is read within each constituent ETF's cohort and the percentiles combine by the blend weights, renormalized over the constituents whose cohorts qualify.
Beta and tracking error are consumed exactly as the Value Score computed them (weekly returns, beta-adjusted, trailing three years, versus the fund's own passive alternative) — no recomputation, no mixing of bases.
Data sources
- Value Score panel (beta, current tracking error, passive-alternative label)
- L2 passive-blend membership (which ETFs, and their weights, form each fund's alternative)
- Fund taxonomy peer groups (the small-cohort fallback)
What it does not mean
- A percentile is position, not quality — a low beta is not better or worse, it is just less market sensitivity than most of the cohort.
- A high tracking-error percentile does not mean more (or less) skill — it means the fund takes more benchmark-relative risk than most funds read against the same alternative.
- These are descriptions of current positioning, not forecasts.
Limitations
- Only scored funds get percentiles (about 2,000 funds); funds whose cohort stays under 20 members even after the peer-group fallback show no percentile at all.
- At the minimum cohort size percentiles quantise to roughly 5-point steps — displayed values are rounded so the precision isn't over-read.
- For blend-baseline funds whose constituent cohorts don't all qualify, the percentile reads against the qualifying part of the blend (the copy names the constituents and weights actually used).
Method positioning_context_v0.1 · Computed as of 2026-07-11, from the same beta and tracking-error reads as the Value Score; blend membership as of 2026-06-30.
3-Year Risk Detail
The fund's trailing risk profile — volatility, Sharpe, drawdown, and how it behaved versus its stated prospectus benchmark.
What it measures
The risk detail shows how bumpy the ride has been: the fund's own trailing 3-year volatility (standard deviation), risk-adjusted return (Sharpe and Sortino), and its worst peak-to-trough loss (maximum drawdown, dated, over the fund's full priced history).
Where the fund's stated prospectus benchmark has a matching index ETF, it also shows benchmark-relative behavior over the same 3 years: beta, alpha, R², tracking error, information ratio, and upside / downside capture — how much of the benchmark's up and down months the fund participated in.
How we calculate it
All figures come from the fund's daily adjusted NAV (dividends and splits reinvested), downsampled to month-ends. The 3-year window is the trailing 36 months (at least 30 required, or the figure is not shown). Volatility is the annualized standard deviation of monthly returns; Sharpe and Sortino use monthly returns in excess of a short-Treasury ETF (SHY) as the risk-free proxy.
Maximum drawdown is measured on the full daily price history — the largest fall from any prior peak — and is shown with its date.
Benchmark-relative rows regress the fund's monthly excess returns on those of an index ETF tracking the fund's stated prospectus benchmark (a monthly OLS over the same 3-year window, at least 12 shared months). This is the fund's own filed benchmark — a deliberately different reference from the passive alternative the rest of the page compares against, and the page labels which benchmark applies.
Data sources
- Tiingo daily adjusted closes (fund NAV and benchmark ETF prices)
- The fund's stated prospectus benchmark (SEC filings), mapped to a tracking ETF
- SHY (short-Treasury ETF) as the risk-free proxy
What it does not mean
- Past volatility and drawdown describe the historical ride, not a forecast of future risk.
- The tracking error here (monthly, vs the stated benchmark) is NOT the page's headline tracking error (weekly, beta-adjusted, vs the fund's closest passive alternative) — they answer different questions against different references.
- Upside / downside capture describe past co-movement with the stated benchmark, not manager skill.
Limitations
- Benchmark-relative rows exist only where the stated benchmark's ETF proxy has priced history in our store (about 2,500 of 5,450 funds with a risk read). The dominant gap today is missing proxy prices — notably the S&P 500's (SPY) — not unmappable benchmarks; those funds honestly omit the group rather than substitute a different index, and the proxy ingest is tracked as a fix.
- The served risk fields come from the 2026-06-29 metadata build; the price feed has since refreshed (through 2026-07-10) and a metadata rebuild on the fresh prices is pending. The section stamps each fund's date and flags staleness rather than hiding it.
- Three years of monthly returns is a short, noisy window — treat the levels as descriptive, not precise; the maximum drawdown spans the fund's full priced history, which can include a different manager or mandate era.
Method unversioned — fund_metadata risk fields · Computed from daily adjusted NAV through each fund's latest priced date at the 2026-06-29 metadata build; the page stamps each fund's own date and flags it stale while a pricing refresh is pending.
Tracking-Error Decomposition
Where a fund's benchmark-relative risk (tracking error) comes from — split into its factor tilts and its stock selection, ranked bet by bet.
What it measures
Tracking error is how much a fund's returns swing away from its passive alternative. This decomposition answers where that risk comes from: how much is the fund's factor and sector/theme tilts, and how much is its stock selection — the part no factor explains.
It leads with a grouped rollup (for example, about half of a fund's tracking error is stock-specific and its biggest factor source is a sector tilt), then lists the individual bets ranked by how much each contributes to tracking error. A bet with a negative contribution is diversifying: it moves against the rest of the book and reduces tracking error.
How we calculate it
We measure tracking error on the same series as the fund's headline tracking error: its beta-adjusted weekly return versus its own closest passive blend, over a trailing three-year window, with Fama-French style controls — so the page shows a single tracking-error number.
That variance is split into a factor sleeve and a stock-selection sleeve. The factor sleeve is allocated across the fund's active factor bets by each bet's share of factor variance; the stock-selection sleeve is the residual left after the factor bets. The two sleeves combine in quadrature back to the total, and the per-bet allocations sum to the factor sleeve.
Each bet's beta is a single-factor read that carries a confidence state from its t-statistic. Only the variance shares scaled into the sleeve split are meaningful — the raw beta levels double-count on overlapping bets, so we never present them as standalone risk contributions.
Data sources
- Beta-adjusted weekly fund and passive-blend active returns (the tracking-error basis)
- The standardized factor-exposure model (sector, theme and macro factors, cluster-representative selection)
- The fund's matched passive ETF blend (its passive alternative)
What it does not mean
- A bet's tracking-error contribution is a risk reading, not a return — it does not say the bet made or lost money.
- The per-bet betas are single-factor reads on a collinear factor set; only the sleeve-scaled variance shares are meaningful, so we lead with the grouped rollup rather than the individual beta levels.
- There is no per-stock tracking-error number — individual stock bets are listed by their active weight, not given a fabricated risk contribution.
Limitations
- Estimated for about 2,000 funds with enough aligned weekly return history; funds with too short a shared window are shown as unavailable rather than estimated.
- On collinear factor sets the individual per-bet betas are not individually robust — the method honors this by serving only the sleeve-scaled shares and flagging each bet's confidence rather than presenting fragile beta levels.
- Negative (diversifying) contributions are real and served as-is, never clamped to zero; the sleeves always anchor to the fund's headline tracking error.
Method te_decomp_v0.1 · Computed as of 2026-05-09, from each fund's trailing three-year weekly returns.
Manager Moves
Whether the trades a fund made between filings have, so far, helped or hurt versus holding still.
What it measures
Manager Moves looks at the changes a fund made to its portfolio between filings and estimates whether those specific trades have added or subtracted value relative to having left the portfolio unchanged.
How we calculate it
We diff consecutive holdings snapshots to recover what was bought and sold, then mark those changes against subsequent prices to estimate the trade-impact contribution.
Data sources
- SEC N-PORT consecutive holdings snapshots
- Sharadar SEP daily stock prices
What it does not mean
- A positive trade impact so far is not a prediction that future trades will help.
Limitations
- We can only price changes whose securities are in our pricing universe; when coverage of the changed names is too low the row is suppressed, and in a degraded band the numeric impact is kept but the label is suppressed.
- Stale vendor security references (for example a ticker rename) can briefly misattribute a small, bounded set of names; known cases are documented and tracked.
Method manager_moves_v1 · Evaluated at the 2026-04-30 holdings frontier.
Portfolio Shifts
How a fund's exposures moved between its filed holdings and its own filings a year earlier.
What it measures
Portfolio Shifts compares a fund against its own recent history — how its sector, theme, concentration, cash and top-position exposures changed between two of its own filings a year apart — so you can see where a manager is leaning in or out.
How we calculate it
We reconstruct both filing endpoints from the fund's own filed holdings and difference them across five exposure families, surfacing the largest moves. When a fund holds an ETF or another fund, we report the trade in that holding itself rather than looking inside it — buying a semiconductor ETF is described as buying the ETF, not as buying each chipmaker in it.
Changes are ranked by their ESTIMATED effect on the fund's tracking error — roughly the size of the weight change multiplied by how volatile the thing being changed is — rather than by the size of the change alone. The two orderings disagree for most funds: a small move in something volatile can matter more than a large move in something that barely moves. This is an estimate, and it is never presented with the authority of a measured tracking error.
Data sources
- SEC N-PORT holdings at two filing endpoints
- Sector and theme classifications applied to the fund's own filed holdings
What it does not mean
- A shift describes what changed, not whether it will pay off.
- Because we do not look inside a held fund or ETF, a shift in this section is not a statement about the individual companies underneath it.
Limitations
- A fund needs a qualifying prior filing within the lookback window; without one, no shift is shown.
- Concentration and cash moves carry no tracking-error estimate — there is no defensible way to put them on the same risk scale as a weight change, and we would rather leave them unranked than invent one. A fund whose only changes are of those kinds gets no ranked headline move.
- Where classified-weight coverage is too low to anchor a diff, the affected family is suppressed.
- A fund that expresses a bet through a held ETF shows that ETF trade rather than an underlying sector or theme shift, so some exposure moves are not surfaced here.
- Where a holding's identifiers disagree about which security it is, the row is withheld rather than shown under a name we cannot stand behind.
Method positioning_changes_v0.3_no_expansion · Year over year: a fund's most recent qualifying filing against its own filing about a year earlier (365 days apart for 97.5% of rows). Panel evaluated 2026-04-30. Across served funds the later filing dates run 2026-01-30 to 2026-04-30 and the earlier ones 2025-01-31 to 2025-05-31, and every row on the page carries its own two dates.
Alternatives to Inspect
Other funds and passive options worth comparing against this one.
What it measures
Alternatives to Inspect surfaces the fund's closest passive alternative plus a short list of comparable funds, so you can see what else covers similar ground before deciding anything yourself.
How we calculate it
Candidates are drawn from the fund's category and exposure neighborhood, with the matched passive blend as the anchor alternative, and ranked by how comparable they are.
Data sources
- Fund taxonomy and exposure neighborhood
- The matched passive ETF blend
What it does not mean
- Alternatives are options to inspect, not "the fund you should use" — we never name a single correct alternative.
Limitations
- Alternatives are only as complete as the covered universe; a fund in a thin category may have few comparable candidates.
Method alternatives_v0.2 · Evaluated at the 2026-04-30 holdings frontier.
Takeaways
The handful of plain-language points a profile is trying to make.
What it measures
Takeaways turn the profile's underlying facts — fee, exposure difference, selection evidence, recent shifts — into a short, plain-language list of what stands out about the fund.
How we calculate it
Each takeaway is generated deterministically from the fund's own data points using a fixed template library; nothing is written free-hand and no point appears without a factual basis behind it.
Data sources
- The fund's own Value Offering, Fee Fairness, Exposure X-Ray and shift data
What it does not mean
- Takeaways describe and explain; they do not advise or predict.
Limitations
- A takeaway is only generated when its supporting data point exists; missing inputs simply drop the corresponding point rather than guess.
Method takeaways_v0.1 · Evaluated at the 2025-10-31 holdings frontier.
The Take
A one-paragraph summary of the profile, built only when the evidence is complete.
What it measures
The Take is a single short paragraph that pulls the profile's most important points together into a readable summary.
How we calculate it
It is assembled deterministically (selector deterministic_v0) from the same vetted takeaways and facts — a chosen, ordered arrangement of true statements, not a free-form generated opinion.
Data sources
- The fund's Takeaways and underlying profile facts
What it does not mean
- The Take is a summary of evidence, not a recommendation or a forecast.
Limitations
- The Take is suppressed for funds that lack the full evidence set, so a partial profile never gets a confident-sounding summary it hasn't earned.
Method the_take_v0.1 · Evaluated at the 2025-10-31 holdings frontier.
Data sources & freshness
Every claim in the product carries a source stamp — where it came from, its as-of date, and (for anything we compute) a method version. Our data comes from three families:
- SEC filings
- N-PORT (holdings), N-CEN, and MFRR / prospectus filings (fees, benchmarks). Public, point-in-time, filed with a lag.
- Vendor pricing & ETF reference
- Daily stock prices (Sharadar SEP), ETF prices and expense ratios, and reference security classifications.
- FundScore derived panels
- Everything we compute — skill posteriors, risk decomposition, exposures, attribution — each stamped with a method version and as-of date.
Holdings-derived numbers are evaluated against per-product filing frontiers — currently up to 2026-04-30, with each section stating its own as-of — and any holdings-based claim is treated as stale after 180 days. SEC filings arrive with a lag, so the most recent filed portfolio can differ from what a fund holds today — we always show the date the data is good as of, and never imply data is complete when its coverage is partial.
Limits & no-advice boundary
Not advice. FundScore is a transparency and analysis tool and does not provide personalized investment advice. We do not know your situation, and nothing here is tailored to it.
No prediction. Historical evidence and current exposures do not guarantee future returns. We do not forecast fund performance, theme returns, or market direction.
Coverage is bounded. Our returns-based selection signal can be computed for about 3,928 funds — about 64–66% of the active retail equity universe. The ceiling is structural: it reflects how many funds have enough usable return and exposure history, not a stale build. Funds outside it show what we can support and suppress the rest.
Holdings have a frontier. Holdings-derived products are each pinned to their own filing frontier (currently up to 2026-04-30; every section states its as-of). When a fund's holdings are older than our 180-day threshold, the affected claims are suppressed rather than shown as current.
Foreign-heavy funds are partly limited. Some return-attribution windows rely on a US-priced holdings store that drops foreign positions; funds whose portfolios were heavily international or emerging-market are suppressed there rather than attributed with incomplete prices.
Missing data is never invented. We do not fill, impute, or interpolate missing values. A gap is shown as a gap.
A "What we got wrong" log will be published here as we correct mistakes. If you spot a number that looks wrong, please tell us — fixing data at the source is part of how this product works.
FundScore is a transparency and analysis tool, not investment advice. We calculate and compare; we do not recommend or predict.