Where fund holdings come from, and what they miss
Every registered fund files its complete portfolio with the SEC on Form NPORT-P. It is free, structured, and filed under penalty. We read it directly rather than licensing the same numbers from a data vendor, which means we can tell you two things a licence usually hides: how old the holdings are, and which ones we could not match.
The lag is real, so we print it
NPORT-P is quarterly and filed in arrears. A fund reports its portfolio as of a period end and files weeks later, so a weight you read today describes a portfolio from the previous quarter. That is a property of the filing, not a defect in our reading of it, and the only dishonest response would be to render the number without the date. Every weight on a ticker page carries its own as-of, and funds do not share one: fiscal quarters differ, so two funds read on the same day can report different period ends.
What the join misses
NPORT identifies a holding by name, CUSIP and ISIN. It carries no ticker, and no free CUSIP-to-ticker map exists, so we join on the issuer name against SEC’s own company list. That does not resolve everything, because two SEC files can disagree about one company’s name: the ticker file says ExxonMobil Holdings Corp while the filing says Exxon Mobil Corp. We keep a small list of verified corrections, each with its reason, and publish the share of weight still unmatched rather than quietly dropping it.
| Fund | Holdings | Matched | Unmatched weight | As of |
|---|---|---|---|---|
| QUAL iShares MSCI USA Quality Factor ETF | 121 | 103 | 13.36% | 2026-04-30 |
| USMV iShares MSCI USA Min Vol Factor ETF | 170 | 151 | 11.19% | 2026-04-30 |
| IWD iShares Russell 1000 Value ETF | 870 | 789 | 8.25% | 2026-06-30 |
| IWB iShares Russell 1000 ETF | 1024 | 935 | 7.4% | 2026-06-30 |
| IWF iShares Russell 1000 Growth ETF | 368 | 343 | 6.49% | 2026-06-30 |
| DGRO iShares Core Dividend Growth ETF | 394 | 371 | 5.1% | 2026-04-30 |
| SDY SPDR S&P Dividend ETF | 155 | 145 | 4.86% | 2026-06-30 |
| IJH iShares Core S&P Mid-Cap ETF | 400 | 376 | 4.79% | 2026-06-30 |
Funds we could not read
We declare a universe of 40 funds and read 39 of them. Naming the difference is the point: a fund that silently vanished from the universe would leave every ticker page quietly short a row, with nothing to indicate it.
- SPLG — not in SEC company_tickers_mf.json and no explicit CIK
What this is not
- Not every fund. We scan 40 large US equity funds. A fund missing from a ticker page means we do not scan it, never that it holds none.
- Not current holdings. A fund can trade the day after its reporting period ends, and nothing in the filing would show it.
- Not a recommendation. That a fund holds something is a fact about the fund, not a view on the stock, and a large weight often just means a large index member.