How the numbers are produced
Every figure here is computed from three kinds of source, and each page prints the date of the data it used. Nothing is estimated, and no number is carried forward from a previous run, except the size of a fund when a night's market data leaves it out: the last size read is kept for 30 days at most, and the fund's API file gives the day it was read.
Where the data comes from
Holdings come from the funds' own published files: the daily or monthly holdings each issuer posts for its ETFs. An iShares or a Vanguard file gives each weight to two decimals at most, so for those two issuers each line's weight is its market value over the total of the file's lines, checked against the weight the iShares file prints; every other issuer's weights are used as published. When two issuers write a company's ticker differently, one spelling is chosen when the files are stored, so a shared holding is not missed because one file writes BRK.B and another BRKB. Two spellings that would otherwise meet are kept apart when the issuers' own names for them disagree, which is how BA for Boeing in New York and BA. for BAE Systems in London stay two securities. A line listed outside the United States is keyed by its local code and its market, so one code on two exchanges is two securities: 7203.JP is Toyota in Tokyo and 7203.SA Elm in Riyadh. A preferred share that a file writes under its issuer's common ticker is keyed apart, as the ticker and PFD (JPM.PFD for JPMorgan's preferred shares), so a preferred stock fund is never counted among the holders of the common stock.
Prices are end-of-day, adjusted for dividends and splits, which is why the returns shown are total returns rather than price changes. The last close printed on fund and stock pages is the raw closing price as traded, with its date and the move from the previous close; it is not adjusted, so it matches a broker's quote rather than the return series.
The three overlap measures
Published overlap figures for the same pair of funds often disagree, because sites quote different measures without naming them. This site publishes all three.
Overlap by weight is the sum, across every company both funds hold, of the smaller of its two weights. If a company is 6% of one fund and 4% of the other, it contributes 4. This measure is symmetric: it is the same number whichever fund you name first, and it is the one quoted as the headline figure.
Share of fund A held in common is the part of A's own weight that sits in companies B also holds, as a percentage of A. It is not symmetric, and the asymmetry is usually the interesting part: a small fund can be almost entirely contained in a large one while representing a fraction of it.
Companies in both is a plain count, useful for seeing when a high weight overlap rests on very few names.
Reading the comparison pages
A badge on a fund card marks the better of the two on that measure alone: cheaper, higher, shallower or calmer. It is never a judgement on the fund as a whole, and the badges routinely land on both cards at once because a cheaper fund can also be the more volatile one.
On a comparison page the two bars of a measure share one scale, so their lengths can be compared directly. The figure set in bold is the better of the two on that measure alone, which is not the same as the better fund: a lower cost, a higher return, a shallower fall and a lower volatility each count as better in isolation, and they routinely point in opposite directions.
Returns, volatility and drawdown
Returns are cumulative total returns over the window named on the page, not annualised, computed from adjusted end-of-day prices. Volatility is the annualised standard deviation of weekly returns over three years. The worst fall is the largest peak to trough decline over the same three years, measured on weekly closes. Beta is measured against the S&P 500 on three years of weekly returns.
Correlation
Correlations are Pearson correlations of weekly total returns over the window stated next to each figure. Weekly rather than daily returns are used because daily figures for funds trading in different sessions overstate how independent they are.
When the data refreshes
Prices refresh after the US close on trading days. Holdings refresh when the issuer publishes a new file, which is daily for some funds and monthly for others, so a page can carry a price date more recent than its holdings date. Both dates are printed on the page rather than merged into one.
What is not here
No forecasts, no ratings, no model portfolios sold as recommendations. The site describes what funds hold and how they have behaved. What to do with that is not something a page can decide.
Reading the data yourself
Every figure here is also served as JSON through the free API, and as a set of tools an assistant can call from the assistant page.
Corrections
If a figure looks wrong, it may well be. Write to the address on the support page with the page, the number and the issuer file it disagrees with, and it will be checked against the source file and corrected or explained.
Why the covariance is printed
Beside each correlation the pages print the annualised covariance of weekly returns, in percent squared. Divide the covariance by the two volatilities and you get the correlation back. A reader who wants to verify a figure needs nothing from us beyond the weekly returns the API already serves. The same holds for returns: compound the 156 published weekly returns of any fund or stock and you land exactly on its printed three year figure, because both are computed on the same weekly grid.
What the bands mean
Correlations and overlaps are printed as numbers, with a plain word beside them so a figure can be read without a reference table. The words are fixed thresholds, not judgements.
For correlation of weekly returns: below 0.40 is barely linked, 0.40 to 0.70 loosely linked, 0.70 to 0.85 often in step, 0.85 to 0.95 usually in step, and above 0.95 almost always in step. A negative correlation is written as moves the opposite way.
For overlap by weight: below 20% is barely overlapping, 20 to 45% some of the same names, 45 to 70% about half the same weight, 70 to 90% mostly the same names, and above 90% nearly the same fund.
Broad funds on stock pages
A stock page counts the funds holding it twice: once across every covered fund, and once across the broad funds alone, meaning the covered funds whose latest issuer file or SEC filing lists 500 positions or more. The second count answers whether a company sits in the index funds rather than only in a sector or theme fund. The number of broad funds is recomputed at each build from the files themselves, so it moves when an issuer's file grows past or falls under that line. A company's line listed abroad under the same code has a key of its own since September 2026 (ASML.NL beside ASML), so a stock page lists its holders apart and never counts them among the holders of the US line.
Funds listed apart on stock pages
A stock page lists apart the derivative-based, multi-asset, fixed income and sponsor-file funds that hold the stock outright. Each weight is what the fund's own file lists as held outright, apart from its swaps, futures and options, which the page shows as notional exposure, never as shares held. Each ticker opens the fund's file, and each date the filing on EDGAR or the sponsor's file it comes from.
Bond funds: issuers, coupon, maturity and duration
A bond fund's page reads its latest SEC Form N-PORT. Each line of the filing is classed by its asset category and the kind of its issuer: Treasury bills, notes and bonds, agency debt, agency and other mortgage-backed securities, asset-backed and collateralized debt, corporate, municipal and foreign government debt, loans, money market funds and repurchase agreements. Every figure is a percent of the fund's net assets on the period the filing describes, so a fund with liabilities can show kinds that add up to more than 100. Issuers are matched by name: the Treasury and each mortgage agency are one issuer however a filing spells them, and no CUSIP, ISIN or other identifier is published. Mortgage pools are summed by issuer, coupon to the half point and year of maturity, and the pools column counts the pools a line stands for.
The average coupon and the average maturity are weighted by each line's share of the fund's debt, and a mortgage pool counts at its final maturity, which runs longer than the average life an issuer quotes. Duration is computed from the filing's own interest rate risk figures: the change in value for a one basis point move, summed over currencies and divided by net assets. Two bond funds are compared twice. By issuer: over the issuers both filings list, the smaller weight of each, summed, counted over the largest issuers of a filing as the data keeps them, and the page names how many and the share of net assets they cover when a fund has more. By time to maturity: the same over the maturity ranges. The same issuer at another maturity is another bond, so two Treasury funds can share one issuer and no bond; the table ranks the funds by the lower of the two figures and prints each fund's average maturity beside them. Form N-PORT gives no credit rating, and the pages print none.
Derivative-based funds: notional exposure
A leveraged, inverse, option income or buffer fund holds swaps, futures and options beside what it holds outright. Its page reads them from its latest SEC Form N-PORT and gives each contract's notional, the size of the contract as the filing states it, in percent of the fund's net assets, with the fund's side of it: long or short for a swap or a future, written or purchased for an option, whose notional is its strike times the shares it covers. Notional exposure is not shares held. Such a fund holds no shares of what its contracts reference unless its filing lists them outright, and it is never counted among a stock's holders. The daily target is the multiple the fund's name states, ProShares' Ultra and UltraPro being 2x and 3x. When the exposure the filing states is far from that multiple, or the holdings add up to more than a fund without borrowing would have, the page says the filing's figures are not a complete measure of its exposure.
Trusts and commodity pools
A trust that holds bitcoin, ether, gold or another single asset, and a pool that invests in futures, files no Form N-PORT. Its page reads its newest periodic report, a Form 10-Q or 10-K, and states what a sentence of that filing says the trust holds, with the period and the filing date. A trust of one asset lists it at 100%; a pool lists its futures as futures exposure with no notional, because its filings give no single figure. The funds that hold a trust's shares are read from their own holdings files and filings, and the derivative-based funds that reference it from their Form N-PORT.
Sectors, mega-cap tech and countries
Each fund file and fund page gives the fund's weight in eleven sectors, in mega-cap tech, in the ten largest US companies and in each country, summed over the holdings of its file. A company's sector is the sector of the single-sector funds that hold it: a stock that the technology funds of the Select Sector SPDRs, Vanguard, Fidelity or Invesco hold is a technology stock. Each of the 115 sector funds read votes for its sector, and the most votes win. A company no sector fund holds takes the sector of its SEC industry code (SIC), which every company that files with the SEC states and the SEC publishes in its Financial Statement Data Sets; a line listed abroad takes the code of the SEC filer of the same name and country, when there is one. Preferred shares count in their issuer's sector. A holding with neither counts as no sector found. Another fund held counts apart as other funds, except a fund whose own holdings are covered here, which is read through. A page states sector weights only when a sector is found for at least 50% of the fund's stock weight, and otherwise gives that share alone; the file gives the weights found in any case, with that share as sector_coverage_pct and sectors_stated false.
Mega-cap tech is a fixed list of companies, every listed class of each: Apple, Microsoft, Nvidia, Alphabet, Amazon, Meta Platforms, Broadcom and Tesla. The ten largest US companies are those of ownership.json, the largest by market value among the US companies the covered funds hold, every class of one company together; on the latest data, Nvidia (NVDA), Apple (AAPL), Alphabet (GOOGL), Microsoft (MSFT), Amazon (AMZN), Space Exploration Technologies (SPCX), Meta Platforms (META), Broadcom (AVGO), Tesla (TSLA) and Berkshire Hathaway (BRK.B). Preferred shares count in neither.
A line that a single-country index fund holds counts under that fund's country, as its index provider places it: Southern Copper, held by the Peru fund, counts under Peru, and Tencent, listed in Hong Kong and held by the China funds, under China. Any other line listed abroad counts under the country of its market, the one its key names (7203.JP is Toyota in Tokyo, Japan). Any other line listed in the US counts under the United States, unless its company is foreign by its SEC filings: a company that files as a foreign issuer (a 20-F, 40-F or 6-K) counts under the country of its business address, so a depositary receipt counts with its company (TSM under Taiwan), and a company incorporated in Canada, or whose SEC filings name Canada as its only country, counts under Canada whatever it files and wherever its address is, since a fund's Toronto line of it is keyed under its New York ticker (RY, ENB). The countries come from the SEC's Financial Statement Data Sets, and from EDGAR's record of the filer when those leave them out. A company incorporated abroad that files 10-K reports, as US companies do, counts under the United States (Accenture, Medtronic). Another fund held counts under the United States. A depositary receipt or a foreign company's shares traded over the counter, whose company files nothing with the SEC (a five-letter ticker ending in Y or F, as NSRGY for Nestle), counts under no country, and the file gives that share as no_country_pct. A fund's category reads the same sector and the same country of each company.
Every weight is in percent of the fund, to one decimal, and moves with the prices of what the fund holds. A fund page is dated as changed when a sector or country weight has moved by two points or more since its date, or when a sector or country of that size appears or goes.
Quarterly holdings since 2019
A US ETF that files Form N-PORT reports its holdings to the SEC every month, and the SEC makes public the report for the last month of each of the fund's fiscal quarters, filed within 60 days; it republishes the public reports once a quarter as data sets, from the last quarter of 2019. TickerInside reads each data set once, with the rules of the latest holdings of the funds read from SEC filings: a stock fund only (at least half of its net assets in stock), a leveraged fund left out, a preferred share under its issuer's preferred key, and no CUSIP or ISIN published. The funds read are the US ETFs listed today, so a fund that closed before today has no history here.
A holding is keyed as its company is known today: a row whose ISIN is still held takes the ticker filers write for it today, so Facebook's rows of 2019 read META, and a company acquired or delisted since keeps the ticker its filers wrote then. A report filed again in a later data set takes the place of the first. The funds are listed in /api/v1/quarterly.json, a fund's reports are at /api/v1/quarterly/voo.json for VOO, and every position of a report at /api/v1/history/voo/2020-03-31.json, under CC BY 4.0.
A stock page counts, for each calendar quarter, today's US stock ETFs whose report for a period ended in that quarter holds the stock, each fund once, so the count of a quarter and the count of holders at the top of the page are of the same funds. A quarter is counted once the data set of the quarter after it is out, since every report of its three months is filed by then. Unit investment trusts such as SPY and DIA file their Form N-PORT without a series, which this history does not read yet: they are counted from their issuers' files at the top of the page.
Daily ETF flows
A flow on the ETF flows page is an ETF's net creations or redemptions of its own shares on a market close, in dollars. An ETF that creates shares receives or buys its basket, and one that redeems gives it back or sells it, so the flow shows in its holdings. Each US ETF read every weekday night from its issuer's own file is compared with its previous file, and the flow is measured twice: as the value of what it bought less what it sold, each line's change in shares at the file's own prices, and as its own growth across the two files, the median change of its share counts (or of its shares outstanding when both files state them and agree), applied to its net assets. A rebalance sells about what it buys and leaves the first measure near zero; a reconstitution moves most share counts for another reason than the fund's size and leaves the second off. So a flow is published only when the two agree within 10%, as their mean, and an ETF whose two measures disagree on a close is listed as not measured on it.
Each flow is dated at the market close of the file whose holdings changed, with each issuer's files placed at the close they reflect, as for the stocks the ETFs bought and sold. Read from the holdings, a flow is unaffected by a split of the ETF's own shares or by a distribution. A Vanguard ETF that is a share class of a mutual fund (VOO, VTI) is not counted, since its file holds the whole fund and its counts move with every class. The flows are in /api/v1/etf-flows.json, one row per ETF in /api/v1/etf-flows.csv and every ETF on each of the last 20 closes in /api/v1/etf-flows/series.json, under the history terms.
Reference data
Three figures on fund pages are read rather than computed: expense ratio, distribution yield and assets under management. The expense ratio comes from the fund's own SEC filings: the fee table of its prospectus, which each fund tags by share class, read from the SEC's quarterly risk/return summary data sets and, for the filings made since the latest of them, from each filing directly. The newest filing wins, so a supplement that cuts a fee replaces the prospectus before it. A filing counts once it is matched to the fund by its series, the trust that filed it or the fund's name in it, since the SEC's list of fund tickers still gives a few tickers to another fund. Where the fee table gives the total before a fee waiver and the figure after it, the page shows the figure after the waiver, and the fund's API file gives both, with the date and address of the filing. The total counts the fees of any funds the fund holds, as the fee table does. A fund with no such filing, a trust or a commodity pool among them, keeps the market-data figure, and so does a fund whose newest filing read is more than a year old and gives another figure, since a fund updates its prospectus every year and the newer one may not be read yet. Yield and assets come from public market-data summaries (currently Yahoo Finance), are refreshed when holdings are refreshed, and are shown as context beside the computed figures. Market capitalisation, P/E and dividend yield on stock lookups come from the same kind of source. For Vanguard ETFs the assets figure is that of the whole fund across its share classes, as the source reports it, so it runs above the ETF share class alone; the pages say so beside the figure. When one of them is unavailable the page says n/a rather than estimating.
Categories are TickerInside's own, set every night from each fund's latest file and never read from a data vendor: where its companies are, their size and style, the sector or theme they share, the kind and duration of its debt, its leverage and its option strategy. Each fund's API file gives its category with the rule that placed it and the figures it measured. ETF categories defines every one and how it is set.
Does it diversify me?
Each answer of Does it diversify me? measures ETFs against the ETFs you hold with these figures, and dates each one by its holdings files and its last week of returns: the ETFs you choose, or, with the ETFs you hold alone, the 30 large US ETFs of its list of 2026-10-10, ranked by weekly correlation, one per group first.
- Overlap: The sum, over the companies both hold, of the smaller of two weights: the company's weight in the candidate, and its weight in the portfolio, which is its weight in each of the portfolio's ETFs times that ETF's weight. An ETF that holds no shares adds nothing to the portfolio's side. For an ETF read from its SEC filings, a holding the filing lists on a market abroad matches only the same holding abroad.
- Share in companies held: The part of the candidate's weight in companies the portfolio also holds, each counted at the candidate's own weight. It is never below the overlap, which counts the smaller of the two weights.
- Weekly correlation: Pearson's correlation between the candidate's weekly returns and the portfolio's, on the weeks both have: at most the 156 the files carry, at least 52. The portfolio's weekly return is the return of its ETFs at their weights, counting every ETF with at least 52 weekly returns here, whatever it holds. A weekly return is a weekly total return, from the last close of one week to the last close of the next, with dividends reinvested, as in the fund files. The weeks end on Fridays, or on the Thursday when the exchange is shut that Friday, and the last one ends on the files' last close.
- On down weeks: The same correlation on the weeks the portfolio's return was below zero, when there are at least 20.
- Mega-cap tech: A fixed list, the one every fund file's breakdown and every ETF page count: Apple, Microsoft, Nvidia, Alphabet, Amazon, Meta Platforms, Broadcom and Tesla, every listed class of each.
- Sectors: Each ETF's breakdown, as its fund file and ETF page give it. A company's sector is the one most of the single-sector index funds that hold it belong to, each fund one vote, or else the sector of its SEC industry code. When a sector is found for under 50% of an ETF's stock weight, no sector weight is given. A portfolio's breakdown is its ETFs' at their weights.
- Countries: Each ETF's breakdown, as its fund file gives it. A line listed abroad counts under the country of its market. A US-listed line counts under the United States, unless its company files with the SEC as a foreign issuer or is Canadian: it then counts under the country of the company's business address. A fund held by a fund counts under the United States.
- Order: By overlap, lowest first, then by weekly correlation, lowest first, each as printed (one and two decimals). An ETF with a figure not measured comes after those measured, then in the order asked.
- Volatility: The standard deviation of the weekly returns over the weeks counted, times the square root of 52, in percent, as each ETF page gives it over 156 weeks.
- With 10% in each: The same volatility for the portfolio with 10% in one ETF of the list and 90% in the ETFs held with a price history here, at their weights among them, rebalanced to those weights every week, over the weeks the two have in common. The 10% is the same for every ETF and every portfolio.
- Order of the lowest correlation with yours: From the ETFs of the list, leaving out any ETF the portfolio holds: in each group, the ETF whose weekly returns had the lowest correlation with the portfolio's over the weeks both have, up to 156, compared before rounding; the answer opens on the 3 groups whose lowest is lowest, and an exact tie keeps the order of the list.