Methodology
How every score on this site is computed. If you can't replay our number from the raw inputs, that's a bug — please report it.
Version 0.1.0 · last updated 2026-05-17
What the composite means
The composite score (0–100) is a weighted average of sub-scores, each derived from a single piece of fund data with a published formula and published thresholds. A 90 is meaningfully different from a 70, but do not interpret a 92 as "better than" a 90 in any actionable sense — the inputs themselves carry noise.
When a sub-score's input data is unavailable for a particular fund, that sub-score is set to N/A and the composite is computed from the remaining components with weights renormalized. A fund is not penalized for missing data; the absence is disclosed instead.
Sub-scores live today
Cost
Linear scale on the fund's prospectus net expense ratio. 0 basis points → 100. 100 basis points → 0. Clamped outside that range. A 30 bp fund scores 70; a 5 bp fund scores 95.
Source: yfinance netExpenseRatio
field, cross-checked against a curated baseline. Drift above 5 bps
is flagged for editorial review.
Liquidity
Log-scaled net assets. ≥ $10B → 100. ≤ $50M → 0. Log scale because ETF AUM spans five orders of magnitude; linear would collapse the $500M-to-$5B range to noise.
Concentration
Linear scale on top-10 holdings as a percent of net assets. ≤ 10% → 100. ≥ 80% → 0. Sourced from the fund's most recent Form N-PORT-P filing on SEC EDGAR.
| Sub-score | Weight |
|---|---|
| Cost | 0.50 |
| Liquidity | 0.30 |
| Concentration | 0.20 |
Coming next
- Tax efficiency — turnover, qualified-dividend share, and 5-year history of capital-gains distributions.
- Tracking quality — tracking error vs. the benchmark stated on the fund's prospectus, for index funds only.
These appear on each fund's page as Not yet computed until the inputs ship. When they go live, both will be added to the composite weight table above and the methodology version will bump.
Data sources
- SEC EDGAR Form N-PORT-P — official fund holdings, filed monthly or quarterly with a 60-day public-disclosure lag.
- yfinance — daily prices, dividends, expense ratios, AUM, basic fund metadata.
- Curated baseline — issuer, category, and benchmark mapping maintained per fund; preserved as a fallback when scraped fields are missing.
We don't license data from any provider whose business depends on fund issuers paying for placement, ratings, or distribution access.
What this site is not
- This is not personalized investment advice. PlainIndex does not know your goals, taxes, risk tolerance, or time horizon.
- Scores are relative. A high-scoring sector ETF is still a sector ETF; categorization matters as much as the number.
- Past performance is not on this page on purpose. The scoring framework deliberately avoids backward-looking return data.