# How to check how much two ETFs overlap, and what a portfolio holds

Overlap by weight or by count, two funds or a whole portfolio, on holdings that may be a day or a quarter old. The tools, the arithmetic and what it misses.

*https://stockmarketstack.com/how-to/check-etf-overlap · next to ETF Research & Screeners*

**Answer:** For two equity ETFs, ETF Research Center gives overlap by weight free with a login: the smaller of the two weights for every shared stock, summed. For a whole US portfolio, ETF Insider rolls every fund down to its stocks on quarterly SEC holdings; Parqet's X-Ray does it for European portfolios on a paid plan. What breaks is the holdings date, two share classes of one company, and funds that hold other funds.

## The tools that do this

*In the order this page recommends trying them. Paid placement does not affect this order.*

1. [ETF Research Center](https://stockmarketstack.com/tools/etf-research-center.md) — Two equity ETFs at a time, by weight and by count from both sides, over US, Canadian and UCITS funds. Full results with a free login; no date on the holdings.
2. [ETF Insider](https://stockmarketstack.com/tools/etf-insider.md) — A portfolio of US-listed ETFs, mutual funds and stocks, as an overlap matrix and a roll-up to single names. Four portfolios free; holdings are quarterly.
3. [Parqet](https://stockmarketstack.com/tools/parqet.md) — X-Ray adds up every stock across a tracked portfolio's ETFs, funds and shares. Plus plan, EUR 11.99 a month; built for German brokers.
4. [justETF](https://stockmarketstack.com/tools/justetf.md) — UCITS only. Each fund's top ten holdings, countries and sectors, updated monthly, and a country, sector and security breakdown of a portfolio in its app.
5. [Trackinsight](https://stockmarketstack.com/tools/trackinsight.md) — The reverse lookup, free, across 15,875 funds — which ETFs hold a given stock. Holding overlap itself sits with the Enterprise product.

## The short way

There are two questions here, and the tools split along them.

- **Do these two funds hold the same things?** That is pairwise overlap. Use
  [ETF Research Center](https://stockmarketstack.com/tools/etf-research-center)'s Fund Overlap with a free Basic login, which
  lifts the five-row limit anonymous visitors get.
- **What does my whole portfolio hold underneath?** That is a look-through: every fund broken into
  its holdings, scaled by how much of your money is in that fund, and added up. Use
  [ETF Insider](https://stockmarketstack.com/tools/etf-insider) for US-listed funds and [Parqet](https://stockmarketstack.com/tools/parqet)'s X-Ray for a
  European portfolio already tracked there.

Before reading either number, find the date of the holdings it was computed from.

## What the options are

**Pairwise.** ETF Research Center prints overlap by weight, the count of shared holdings, the share
of each fund found in the other, the sector drift and the largest over- and underweights, for any
two equity ETFs in its US, Canadian and UCITS universes. Bond ETFs are out of its scope. The
[comparison of ETF Research Center and ETF Insider](https://stockmarketstack.com/compare/etf-research-center-vs-etf-insider)
works through which of the two answers which question.

**A whole portfolio, US.** ETF Insider takes ETFs, mutual funds and stocks by symbol, or a CSV of
symbol and quantity, and draws an overlap matrix for every pair together with the roll-up to single
names, sectors and countries. Its help page says overlap is the percentage of assets shared between
the funds, without saying whether that is by weight or by count.

**A whole portfolio, Europe.** Parqet's X-Ray adds up every stock across all the ETFs, funds and
directly held shares in a portfolio, on the Plus and Investor plans only. [justETF](https://stockmarketstack.com/tools/justetf)
covers UCITS funds and has no overlap tool; what it has is each fund's Exposure tab, with the top
ten holdings, countries and sectors updated once a month, and an app that its page says shows a
portfolio's split by country, sector and individual security. [Trackinsight](https://stockmarketstack.com/tools/trackinsight)
runs the other way round: its free Stock Exposure Finder lists which ETFs hold a given stock, and
its portfolio analytics, holding overlap included, come in full only with the Enterprise product.

Morningstar's X-Ray used to be the free answer outside the US. It was retired there in June 2025,
and [what to use instead of Morningstar Portfolio Manager and X-Ray](https://stockmarketstack.com/alternatives/morningstar-portfolio-manager)
covers what each replacement does and does not reproduce.

## The arithmetic, if you have the files

With two holdings files from the issuers — [getting ETF holdings as data](https://stockmarketstack.com/how-to/get-etf-holdings-as-data)
covers where they come from — both numbers are a few lines:

```python
# Weights in percent of each fund, keyed by one identifier per company.
# Top lines only, for illustration; a real file has every holding.
fund_a = {"AAPL": 7.0, "MSFT": 6.0, "NVDA": 6.5, "AMZN": 4.0, "XOM": 1.0, "JPM": 1.5}
fund_b = {"AAPL": 12.0, "MSFT": 11.0, "NVDA": 12.5, "AMZN": 7.0}

shared = fund_a.keys() & fund_b.keys()

# By weight: the smaller of the two weights for each shared holding, summed.
# The same number from either side.
by_weight = sum(min(fund_a[s], fund_b[s]) for s in shared)

# By count: shared names as a share of each fund's names. Two numbers.
a_in_b = len(shared) / len(fund_a)
b_in_a = len(shared) / len(fund_b)

print(f"overlap by weight: {by_weight:.1f}%")
print(f"count: {a_in_b:.0%} of A's names are in B, {b_in_a:.0%} of B's are in A")

# Look-through: what the whole portfolio holds in each company.
portfolio = {"A": 0.6, "B": 0.4}          # your money in each fund
funds = {"A": fund_a, "B": fund_b}
exposure = {}
for f, w in portfolio.items():
    for s, h in funds[f].items():
        exposure[s] = exposure.get(s, 0) + w * h
for s, e in sorted(exposure.items(), key=lambda x: -x[1]):
    print(f"{s}: {e:.2f}% of the portfolio")
```

The weight figure is symmetric; the count figures are not, which is why a small fund inside a large
one reads as almost wholly duplicated from its own side and barely present from the other. On
7 October 2026 ETF Research Center's table for SPY against QQQ showed the method row by row, the
overlap column equal to the smaller weight in every line, for 54% in total. And pairwise figures
do not add up to a portfolio: the overlap of A with B says nothing about C, which is what the
look-through loop is for.

## Where this breaks

**Stale holdings.** Each tool reads a different file at a different date, and
[why an ETF's price, NAV and holdings differ](https://stockmarketstack.com/guides/etf-price-nav-and-holdings-disclosure)
explains the clocks. A US ETF operating under Rule 6c-11 publishes its full holdings every
business day; the SEC's copy from Form N-PORT is quarterly and up to 60 days late. ETF Insider's
FAQ says its holdings update with those quarterly filings. Trackinsight's and justETF's are month
ends, a month or more behind. ETF Research Center's public overlap page printed no date at all.
For a broad index fund the difference rarely matters; for an active or thematic fund the list may
have turned over since.

**Two share classes, two lines.** S&P Dow Jones Indices has included each listed share class as a
separate line since 2015, and the SPY holdings file dated 7 October 2026 lists Alphabet's class A
at 3.06% and class C at 2.46%, with different tickers and CUSIPs. A tool or a script that matches
on the security rather than the company counts a fund holding only one class and a fund holding
only the other as sharing nothing. The same happens between a company's home listing in a global
fund and its American depositary receipt in a US one: one company, two identifiers.
[CUSIP, ISIN and FIGI](https://stockmarketstack.com/guides/cusip-isin-figi-identifiers) covers what each identifier names.
Match on the issuer before summing, and check whether a tool's top lines show both classes.

**Lines that are not stocks.** Index funds equitise cash with futures, and a swap-based fund holds
a basket that is not its index. Parqet says that since February 2025 its X-Ray shows a swap-based
ETF with the holdings of a physically replicating ETF on the same index. That is a sensible
stand-in for exposure and not what the fund owns.

**Funds that hold funds.** An allocation ETF or a fund-of-funds lists other funds as its holdings.
A tool that does not open those lines again sees one holding called a fund and finds no overlap
with anything, however much the underlying stocks repeat. None of the cards here documents whether
the tool recurses. Test it on a fund you know is a wrapper before trusting the result, and in a
script, replace each fund line with that fund's own holdings scaled by its weight.

**Funds outside the daily rule.** UCITS ETFs are not under Rule 6c-11. ESMA's guidelines require a
UCITS ETF to state its portfolio transparency policy and where the information can be found, not
a frequency. The Central Bank of Ireland's UCITS Q&A of April 2025 lets an Irish ETF disclose its
holdings either daily or periodically, the periodic route requiring quarter-end holdings to be
public within 30 business days, with daily information going to authorised participants and
market makers. An overlap figure for a European fund may therefore rest on a quarter-end list
however recent the tool's own date stamp looks. A US mutual fund is not under Rule 6c-11 either,
and in ETF Insider, whose holdings come mostly from the quarterly SEC filings, a mutual fund line
in a look-through is a quarter-end view.

## If you outgrow this

**When the question is the whole portfolio, tracked over time**, a look-through needs your actual
positions, and that is a tracker's job — Parqet's X-Ray is the one in this catalogue, and the
[portfolio trackers](https://stockmarketstack.com/categories/portfolio-trackers) page has the rest.

**When you need the holdings themselves, dated and archived**, the script above is only as good as
its inputs; [getting ETF holdings as data](https://stockmarketstack.com/how-to/get-etf-holdings-as-data) covers the daily
issuer files, the quarterly SEC data sets and the paid feeds. The rest of the ETF tools are on the
[ETF research](https://stockmarketstack.com/categories/etf-research) page.

## FAQ

### What does "54% overlap" between two ETFs mean?

On ETF Research Center it is overlap by weight. For every stock both funds hold, take the smaller of its two weights, and add those up. On 7 October 2026 SPY against QQQ came to 54%, while 84% of QQQ's holdings appeared in SPY and only 17% of SPY's in QQQ. The weight figure is the same from either side; the count figures are not.

### Can I check the overlap of UCITS ETFs?

Pairwise, yes. ETF Research Center's overlap tool takes UCITS funds, London listings included. justETF has no overlap tool, only each fund's top ten holdings, countries and sectors, and Parqet's X-Ray does the portfolio look-through on its Plus plan. ETF Insider takes US listings only.

### Why does the overlap tool show a different holdings list from the issuer's website?

Usually because of the date. A US ETF under Rule 6c-11 publishes holdings every business day, while ETF Insider works from quarterly SEC filings and Trackinsight and justETF from month-end data. Cash, futures and the price used to compute each weight also differ between files.

### Is the overlap the same as how correlated two funds are?

No. Overlap counts shared holdings; correlation measures how the two funds' returns moved together. Two funds with no stock in common can move closely together, and two funds sharing most of their names can diverge if the weights differ. ETF Insider shows both, as separate matrices.

## Sources

1. [ETF Overlap](https://www.etfrc.com/funds/overlap.php) — ETF Research Center (AltaVista Research), read 2026-10-09
2. [Help](https://etfinsider.co/help/) — ETF Insider, read 2026-10-09
3. [Parqet X-Ray](https://parqet.com/en/x-ray) — Parqet, read 2026-10-09
4. [Parqet X-Ray — blog](https://parqet.com/en/blog/x-ray) — Parqet, read 2026-10-09
5. [The justETF app](https://www.justetf.com/en/etf-app.html) — justETF, read 2026-10-09
6. [ETF constituents — tutorial](https://www.justetf.com/en/tutorial/etf-search/etf-constituents.html) — justETF, read 2026-10-09
7. [ETF Portfolio Insights](https://www.trackinsight.com/en/etf-portfolio-insights) — Trackinsight, read 2026-10-09
8. [SPDR S&P 500 ETF Trust daily holdings file](https://www.ssga.com/us/en/intermediary/library-content/products/fund-data/etfs/us/holdings-daily-us-en-spy.xlsx) — State Street Global Advisors, 2026-10-07
9. [S&P U.S. Indices Methodology Update](https://press.spglobal.com/2015-01-21-S-P-U-S-Indices-Methodology-Update) — S&P Dow Jones Indices, 2015-01-21. The separate-line treatment it announced is the one the SPY holdings file of 7 October 2026 shows, with Alphabet's class A and class C on two lines.
10. [UCITS Q&A, 42nd Edition](https://www.centralbank.ie/docs/default-source/regulation/industry-market-sectors/funds/ucits/guidance/42nd-edition-ucits-qa.pdf) — Central Bank of Ireland, 2025-04-17
11. [Guidelines on ETFs and other UCITS issues (ESMA/2014/937)](https://www.esma.europa.eu/sites/default/files/library/2015/11/esma-2014-0011-01-00_en_0.pdf) — European Securities and Markets Authority, read 2026-10-09

*Last updated 2026-10-09. A reference page, corrected in place — not a dated post.*
