Reference · CC BY 4.0
Data dictionary and changelog
What each field means, how each dataset is built, and when a definition changed. If you are putting these files into a pipeline, this is the page to read first; if a number here ever changes meaning, it will be dated below before it changes.
Conventions
- Percentages are percent of the fund's net assets unless a field says otherwise (weights in overlap and calculator files are renormalised, see the dataset notes).
- Dates are ISO (YYYY-MM-DD). asOf is the filing's reporting period end; filedDate is when it reached EDGAR. A figure is valid as of asOf, not as of today.
- Money is US dollars as filed. Fund identifiers are exchange tickers; securities are keyed by CUSIP, then ISIN, then name.
- null means the value is not published for that record, and the reason is in notComparableReason or qualifiers; it is never a silent zero.
- Every record links to the SEC filing it was computed from (source). Recompute it; if you get a different number, write to us.
Definition changes
16| Date | Change |
|---|---|
| 2026-10-07 | CORRECTION, leverage.json counterparties. Swap counterparties were keyed on the name as filed, so one bank spelled several ways counted as several banks: "GOLDMAN SACHS INTERNATIONAL" and "Goldman Sachs International", "BANK OF AMERICA, N.A." and "Bank of America NA", "BNP Paribas SA" and "BNP Paribas". Every figure derived from the counterparty list therefore understated each bank. Names are now resolved on <counterpartyLei>, which these filings populate without exception, the same rule build_lending.py already used for securities-lending borrowers. Effect: 117 apparent counterparties resolve to 66; Bank of America goes from 43 funds and $11.6bn to 77 funds and $40.1bn. XML entities in filed names are also unescaped now ("Goldman Sachs & Co. LLC" was published with the entity intact). No fund's exposure figures change -- only who the exposure is attributed to. |
| 2026-09-19 | Comparability: funds whose swap plus futures notional is 50% or more of net assets are marked not comparable (derivativeNotionalPct, netAssetsUSD added). 51 funds affected, all leveraged or inverse; their as-filed derivative value had passed the 20% test. Definition tag is now ex-collateral-v2. |
| 2026-09-18 | Point-in-time positions dataset published: per-fund gzipped CSV of every position for every N-PORT period held (files up to 1 MB hosted at /pit/, larger ones built and listed pending a bulk host). |
| 2026-09-18 | Headline definition changed to ex-collateral for every weight statistic, in concentration, history (all periods back to 2019), overlap and the calculator. As-filed figures kept under asFiled. 308 funds' headline effective holdings moved by more than 5% (IWM 33.2 to 840.2); 73 funds previously marked not comparable for collateral returned to comparable. Figures before and after this date are not directly comparable; use asFiled to compare with earlier publications. |
| 2026-09-18 | Ownership rebuilt across 1,039 funds (was 694); per-security concentration fields added (largestDollarHolder, heaviestWeightHolder, top3SharePct, effectiveHolders). Published slugs pinned so no URL moved. |
| 2026-09-17 | Quarterly history added for 345 funds published on 2026-09-14 (1,007 funds with history). |
| 2026-09-15 | leverage.json published (555 funds with derivatives). 13F dataset for 24 registrants published at /managers/ and /data/13f/. |
| 2026-09-14 | Securities-lending cash collateral identified as inflating concentration figures. Interim rule: collateral producing 25% or more of the HHI marked the fund not comparable, with the ex-collateral figure beside it (fields cashCollateralPct, collateralHhiShare, effectiveHoldingsExCollateral). Superseded 2026-09-18. 341 funds (assets over $500M) added; 10 single-stock leveraged funds publish no figure because filed weights cover about a third of net assets. |
| 2026-09-11 | Fund pages published for every fund with holdings on file (72 to 716). Compare pairs pinned to twenty funds; 89 thin pairs set to noindex. Upper bound on weightSum removed from verification (476 funds legitimately file over 100% because of collateral). |
| 2026-09-07 | Zero-overlap pair pages corrected: a combined figure below the more diversified fund alone is explained by weight, not by overlap, when the pair shares nothing. |
| 2026-09-02 | overlap.json first published (190 pairs). history.json first published. |
| 2026-08-31 | Site moved from Blogger to a static build; concentration.json first published. |
| 2026-09-19 | Country tables published: per-fund, per-country and pooled-by-quarter shares of investments by filed invCountry, collateral excluded (ex-collateral-v2). Pages at /world/ and /world/{cc}/; series hub at /series/world-through-etfs/. |
| 2026-09-22 | Filing-to-filing changes published per fund (/data/changes/{TICKER}.json, RSS at /funds/{ticker}/changes.xml, index at /filings/). Fund pages gained the largest positions, country split, asset mix and option book from the filing. Portfolio calculator returns look-through positions with carriers, country split, derivative notional and per-fund caveats. MCP tools get_country and get_changes. |
| 2026-09-23 | Monthly total returns published as the funds filed them (Form N-PORT Item B.5): 1,067 funds, up to 84 months since 2019, per fund at /data/returns-filed/{TICKER}.json and on each fund page. Cross-checked against a price-derived series; 15 funds where the two disagree are named and their summary figures withheld. |
| 2026-09-23 | Securities lending borrowers published (Form N-PORT Item B.4.a): 742 lending funds, 116 borrowers named with their legal entity identifiers, $176bn on loan at the latest filings, per fund and quarter at /data/lending/{TICKER}.json with a reverse index by borrower, and a section on each lending fund's page. The cash collateral reported against each loan is published as a floor on collateralisation, not as the whole of it, because collateral the fund does not hold as a position is not in the filing. Every borrower figure is re-read with an XML parser before each deploy. MCP tool get_lending answers in both directions: a fund's borrowers, or the funds a named firm borrows from. |
concentration.json
23 fieldsOne row per fund, latest N-PORT filing · Cadence weekly check, republished when any fund files a new period (typically monthly) · Source SEC Form N-PORT (NPORT-P), Part C, item C.1 through C.12 of every reported position
| Field | Definition |
|---|---|
| ticker | Exchange ticker of the fund. |
| seriesName | Fund name as filed. |
| cik / series / source | Registrant CIK, SEC series id, and the URL of the filing every figure below was computed from. |
| asOf / filedDate | Reporting period end / date filed. |
| definition | "ex-collateral" since 2026-09-18: weight statistics are computed on the fund's own investments, with securities-lending cash collateral set aside and the remaining weights renormalised to their own total. |
| netAssetsUSD / derivativeNotionalPct | Net assets as filed, and swap plus futures notional as a share of it (absolute values summed). At 50% or more the fund is not comparable. |
| holdings | Number of positions counted under the definition (as-filed count is asFiled.holdings). |
| weightSum | Sum of all filed long-position weights, % of net assets, before any exclusion. Above 100 usually means securities-lending collateral or derivative marks are in the filing. |
| effectiveHoldings | 1 / sum of squared weights: the number of equal-sized positions with the same concentration. The site's headline measure. |
| concentrationMultiple | holdings / effectiveHoldings: how many times the reported count overstates the effective one. |
| top10Pct / largestPct | Weight of the ten largest / the single largest position under the definition. |
| hhi | Sum of squared weights (Herfindahl); effectiveHoldings = 1 / hhi. |
| cashCollateralPct | Securities-lending cash collateral as filed, % of net assets, read from the filing's isCashCollateral flag. |
| collateralHhiShare | Share of the as-filed HHI produced by collateral lines alone; the size of the distortion the definition removes. |
| asFiled | {holdings, effectiveHoldings, concentrationMultiple, top10Pct, largestPct, hhi} computed with every filed position counted, collateral included — what the site published before 2026-09-18, kept so earlier numbers remain reproducible. |
| effectiveHoldingsExCollateral | Equal to effectiveHoldings since 2026-09-18; retained for clients that read the field name introduced 2026-09-14. |
| byCountry / countries / largestCountryPct | Weight by issuer country (ISO code), number of countries above 0.01%, and the largest country's weight. |
| byAssetCat | Weight by N-PORT asset category (EC equity, DBT debt, STIV short-term investment vehicle, DE derivative, ...). |
| byFairValLevel / level1Pct / level3Pct | Weight by fair-value level as filed; Level 1 is a quoted price in an active market, Level 3 an unobservable estimate. |
| restrictedPct | Weight of positions the fund flags as restricted securities. |
| totalAssetsUSD | Total assets as filed. |
| comparable / notComparableReason | Whether the figure may be set beside other funds. False when filed long positions cover under 95% of net assets, derivative exposure is 20% or more, one holding exceeds 100% of net assets, or the arithmetic exceeds the position count; the reason is stated. The record is published either way. |
| qualifiers | Notes a reader needs before the number: cash-like fund, unclassified positions, collateral share and the as-filed reading. |
pit/{TICKER}.csv.gz
7 fieldsOne row per position, per fund, per N-PORT period (2019 onward) · Cadence rebuilt from the raw archive when new filings arrive (monthly) · Source the fund's own NPORT-P filings, Part C, every reported position with pctVal > 0
| Field | Definition |
|---|---|
| asOf / filedDate | Period end / date filed. |
| cusip / isin / name | Security identifiers and name as filed (name truncated to 120 chars). |
| assetCat / issuerCat / country / fairValLevel | N-PORT classifications as filed. |
| valueUSD | Position value as filed. |
| pctOfNetAssets | pctVal as filed: percent of net assets, collateral rows included. |
| isCashCollateral | Y when the row is securities-lending cash collateral; the site's headline figures exclude such rows. |
| isLoanByFund | Y when the security is on loan. |
One row per quarter and country (pooled); fund and period (per fund); fund, period and country (per country) · Cadence with every update of the site · Source the point-in-time positions, pooled by filed issuer country
| Field | Definition |
|---|---|
| byCountry{CC} | Share of a fund's own investments (cash collateral removed, remainder renormalised: definition ex-collateral-v2) whose issuer the filing reports under that invCountry, percent, two decimals. Shares under 0.01 and beyond the 60th country are summed under OTHER; a blank or N/A invCountry is XX. |
| invCountry | The issuer's country as the filer reports it, ISO 3166-1 alpha-2. It follows incorporation, not listing venue or revenue: Accenture files as IE, many China-based companies as KY. Never reassigned by this site. |
| collateralPct | Securities-lending cash collateral as filed, percent of net assets, removed before byCountry is computed. |
| quarters{YYYYQn} | Pooled map: comparable funds only, one filing per fund per calendar quarter (the first period seen wins), each fund weighted by netAssetsUSD on its period date. funds = number pooled; byCountryUSD = dollars implied. The fund count grows over time as the archive fills, so early quarters describe a smaller set. |
| netAssetsUSD | Net assets of the filing series, which for some sponsors includes mutual-fund share classes; the pooled total is therefore larger than ETF assets alone. |
| generatedAt | UTC time the tables were built. Every period also carries asOf (filing period end) and filedDate (SEC receipt); the analysis date is the third date shown on pages. |
history.json
4 fieldsOne row per fund, then one point per quarterly N-PORT filing back to 2019 · Cadence rebuilt with concentration.json · Source every NPORT-P the fund has filed; originals archived so definitions can be re-applied
| Field | Definition |
|---|---|
| funds[].ticker / periods / from / to | Fund, number of quarterly points, first and last period end. |
| funds[].effFrom / effTo / effRatio | effectiveHoldings at the first and last comparable point and their ratio (below 1 = more concentrated over time). |
| funds[].top10From / top10To | Top-ten weight at first and last point. |
| funds[].series[] | {period, holdings, effectiveHoldings, concentrationMultiple, top10Pct, largestPct, level1Pct, weightSum, comparable} per filing, all under the current definition. |
overlap.json / overlap.csv
6 fieldsOne row per fund pair · Cadence rebuilt with concentration.json · Source both funds' latest position-level filings, matched on CUSIP, then ISIN, then name
| Field | Definition |
|---|---|
| a / b / aAsOf / bAsOf | The two tickers and each filing's period end; when they differ the pair page says so. |
| overlapPct | Sum over shared securities of the lesser of the two weights: the share of a dollar that sits in the same companies either way. Weights are each fund's own-investment weights (collateral excluded, renormalised to weightSum minus collateral). |
| sharedCount / aCount / bCount | Shared securities and each fund's position count. |
| combinedEffective | effectiveHoldings of the two portfolios merged at 50/50 — what holding both in equal size behaves like. |
| topShared[] | Ten largest shared positions with {name, id, pct (lesser), aPct, bPct}. |
| onlyA[] / onlyB[] / onlyAPct / onlyBPct | Largest positions held by one fund and not the other, and the total weight each fund holds in securities the other does not. |
leverage.json
8 fieldsOne row per fund that files any derivative · Cadence rebuilt from the archived filings with concentration.json · Source N-PORT Part C derivative sub-items (swapDeriv, futrDeriv, optionSwaptionWarrantDeriv, fwdDeriv)
| Field | Definition |
|---|---|
| directEquityPct / cashLikePct | Weight of directly held equity / short-term investment vehicles, % of net assets. |
| swapCount / swapNotionalPct / swapNotionalUSD | Number of swaps and their signed notional (inverse funds file negative) as % of net assets and in dollars. |
| futuresCount / futuresNotionalPct | Futures and their signed notional (Long +, Short -). |
| optionsCount / optionsWritten / forwardsCount | Option lines, how many are written, forward lines. |
| notionalExposurePct | directEquityPct + swapNotionalPct + futuresNotionalPct. A sum of filed notionals: for a 3x equity fund about 300; the notional of a rate or currency swap is not equity exposure. |
| counterparties[] | {name, notionalUSD, notionalPct} per swap counterparty. |
| financing.pays / receives | The floating leg the fund pays on long swaps / receives on short swaps: rate index and notional-weighted spread, as filed. Issuers fill the spread field differently; compare within an issuer only. |
| swaps[] / futures[] / options[] | Per-instrument detail: reference index, counterparty or clearing house, notional, unrealised value, termination or expiry, legs. |
One row per security (equity positions only), across all tracked funds · Cadence rebuilt with concentration.json · Source every tracked fund's position-level filing; assetCat EC lines only
| Field | Definition |
|---|---|
| id / name | CUSIP (or ISIN, or name) and the name as filed by the largest holder. |
| fundCount / combinedValUSD | Number of tracked funds holding it and the sum of their reported position values. |
| topFunds[] | Largest holders by dollars: {ticker, pct (weight in that fund), valUSD}. |
| largestDollarHolder / heaviestWeightHolder | The fund with the largest dollar stake (and its share of combined value) / the fund with the highest weight in its own portfolio. |
| top3SharePct / effectiveHolders | Share of combined value in the three largest holders / 1 over the sum of squared dollar shares across holders. |
13f/{cik}.json and managers.json
6 fieldsOne row per registrant (13F filer), latest two 13F-HR filings · Cadence quarterly, within days of the 45-day filing deadline · Source SEC Form 13F-HR information tables
| Field | Definition |
|---|---|
| registrant / cik / period / filed / accession | Filer as named by EDGAR, its CIK, period end, filing date, accession number. Named for the registrant, never for a person. |
| totalValueUSD / positions | Sum of reported values and number of distinct (CUSIP, put/call) lines. |
| effectiveHoldings / top10Pct / largestPct | Same arithmetic as for funds, on reported values. |
| holdings[] | {issuer, class, cusip, valueUSD, shares, sharesType, putCall, weightPct}. |
| changes | {new[], closed[], changed[]} versus the previous filing, by CUSIP; changed lists share-count moves of 1% or more with sharesChangePct. |
| valueUnitSuspect / stale | True when values look filed in thousands (dollar totals withheld, weights kept) / when the latest filing is more than two quarters old. |
verification.json
2 fieldsOne row per audit day and verifier run · Cadence daily, and with every update of the site · Source daily re-derivation of published figures from EDGAR and the pre-publication checks
| Field | Definition |
|---|---|
| audits[] | {date, checked, mismatched, unreachable, funds[], findings[]}: ten published funds re-derived from EDGAR and compared with the site. |
| verifierRuns[] | {at, kind, ok, checked, problems, note}: pre-publication checks; a failed run means nothing was published. |
changes/{TICKER}.json
4 fieldsOne row per consecutive filing pair per fund · Cadence with every update of the site · Source the point-in-time positions of each fund, consecutive periods compared
| Field | Definition |
|---|---|
| from, to, filedDate | The two filing periods compared and the SEC receipt date of the later one. |
| added[], dropped[] | Positions present in only one of the two filings (name, weight% at the filing where present). Matched on ISIN, then a real CUSIP, then name; an identifier change shows as one drop and one add. |
| increased[], decreased[] | The six largest weight changes among positions in both filings (from, to, % of own investments). |
| turnoverPct | Half the sum of absolute weight changes including adds and drops; 100 means every position was replaced. |
returns-filed/{TICKER}.json
5 fieldsOne row per fund and month · Cadence with every update of the site, from the archived filings · Source SEC Form N-PORT Item B.5, the share class the SEC's ticker table names for the ticker
| Field | Definition |
|---|---|
| series{YYYY-MM} | Monthly total return in percent, net of expenses, as the fund reported it. Not computed here. |
| sourcePeriods{YYYY-MM} | The filing period and SEC receipt date the month was read from. |
| crossCheck | Comparison with a monthly series computed separately from prices: months compared, median absolute difference, share of months more than 3 points apart, and whether the two agree (median <= 1.5 pp and <= 25% of months beyond 3 pp). |
| cumulativePct, last12Pct | Compounded from the series; null when the series has a gap or the two readings disagree. |
| gaps | Months where the series is not continuous; a compounded figure across a gap is not a return. |
lending/{TICKER}.json
7 fieldsOne row per fund, quarter and borrower · Cadence with every update of the site, from the archived filings · Source SEC Form N-PORT Item B.4.a (securities lending: borrower name, LEI, aggregate value on loan) and the isLoanByFund flag on each position
| Field | Definition |
|---|---|
| borrowers[] | Every firm the fund reported lending to in that quarter: name, legal entity identifier, and the aggregate value on loan to it in US dollars. Names are normalised by LEI, keeping the first spelling seen, so one firm filed under several spellings counts once. |
| onLoanToBorrowersUSD | The sum of those values: what the fund had out on loan at the reporting date. Loans open and close daily; this is a quarter-end balance, not an average. |
| positionsWithLoansUSD | The value of positions whose isLoanByFund flag is set. The flag marks a holding SOME part of which is lent and does not say how much, so this is much larger than the loan and is not it. |
| cashCollateralPct | Collateral the fund holds as a position, as a percent of net assets (the same figure used to exclude collateral from the concentration measures). |
| cashCollateralCoverPct | That collateral over the amount lent, in percent. A floor on collateralisation, not the whole of it: collateral the fund does not hold as a position does not appear in N-PORT, and in some leveraged funds the flagged cash is posted against swaps rather than against a loan. Published unadjusted; a value under 100 is not evidence of under-collateralisation. |
| largestBorrowerSharePct | The largest single borrower's share of everything the fund lent that quarter. |
| filedDate, asOf | SEC receipt date of the filing, and the reporting period it covers. Every figure here is re-measured when the next filing arrives. |
Machine access
All files are static JSON or CSV at the URLs above, no key required. Index of everything: /.well-known/api-catalog (RFC 9727). Tool interface: /mcp (MCP, read-only). Checks that ran before this build: /verification/.