Comment vérifier le chevauchement de deux ETF Et ce que 1 431 paires disent du « trop »
Sur 1 431 paires de 54 ETF en octobre 2026, la paire médiane partage 4,3 % de son argent et 12,0 % en partagent la moitié ou plus ; pourtant 94,9 % de SCHD est dans des sociétés de VOO, pour 7,6 % de chevauchement. Vérifiez toutes les lignes, en poids, dans les deux sens, à date égale.
· 9 min

Réponse courte : vérifiez le chevauchement sur toutes les lignes, pas les 10 premières, en poids, sur des fichiers de même date, et lisez-le dans les deux sens (l’argent que les deux fonds partagent) et dans un sens (la part de l’un dans les sociétés de l’autre). Sur 1 431 paires de 54 ETF en octobre 2026, la médiane partage 4,3 % ; 172 en partagent la moitié ou plus.
La règle habituelle dit de garder deux fonds sous 50 %. Elle rate l’autre sens. Le Vanguard S&P 500 ETF (VOO) et le Schwab U.S. Dividend Equity ETF (SCHD) ne partagent que 7,6 % de leur argent, et pourtant 94,9 % de SCHD est dans des sociétés que VOO détient déjà. 374 paires sont dans ce cas : sous 50 % dans les deux sens, avec un fonds inclus à 75 % ou plus dans l’autre.
| Vérification | Si on la saute… | Sur les 1 431 paires |
|---|---|---|
| Toutes les lignes, pas les 10 premières | la plupart des paires semblent sans lien | 908 sans rien en commun sur les 10 premières lignes, 448 sur les fichiers complets |
| En poids, pas en nombre | des noms communs passent pour de l’argent commun | VTI et VGT partagent 313 sociétés mais 37,0 % de leur argent |
| Dans les deux sens | un fonds inclus dans un autre semble anodin | 633 ont un fonds inclus à 50 % ou plus dans l’autre ; 172 sont à 50 % ou plus dans les deux sens |
| Des fichiers de même date | deux copies d’un même indice s’écartent | fonds sur le même indice : 99,7 % sur des fichiers du même jour, 96,6 % à 16 jours d’écart |
Chaque chiffre vient des fichiers complets des émetteurs qui alimentent notre outil de chevauchement d’ETF, qui a une page pour chacune des 1 431 paires.
Vérifier deux ETF en quatre étapes
Prenons VOO et le Vanguard Information Technology ETF (VGT), tous deux sur les fichiers Vanguard du 30 septembre 2026.
- Récupérez le fichier complet des positions chez l’émetteur, pas la fiche commerciale. La fiche montre les 10 premières lignes ; le fichier de VOO en compte 505 et celui de VGT 318. Vanguard publie des fichiers de fin de mois ; iShares, State Street (SPDR), Invesco et Schwab des fichiers quotidiens.
- Rapprochez les sociétés par leur ISIN (le code de 12 caractères de chaque titre), puis gardez, pour chaque société que les deux fonds détiennent, le plus petit des deux poids, et additionnez. Cette somme est le chevauchement dans les deux sens : la part de chaque fonds que vous détiendriez deux fois. Le rapprochement par ISIN sépare les deux catégories d’actions d’Alphabet, GOOGL et GOOG, comme les fonds les détiennent.
- Lisez aussi dans un sens. Additionnez le poids de chaque fonds dans les sociétés que l’autre détient, quel que soit leur poids. 88,8 % de l’argent de VGT est dans des sociétés que VOO détient ; 39,8 % de celui de VOO est dans des sociétés que VGT détient. Le chiffre de VOO égale le chevauchement parce que VOO détient Nvidia, Apple, Microsoft et toutes les autres sociétés communes au plus petit poids.
- Vérifiez les deux dates. Les deux fichiers sont ici datés du 30 septembre 2026. Quand deux fichiers ont des semaines d’écart, deux copies du même indice paraissent déjà à quelques points l’une de l’autre.
L’étape 2 sur VOO et VGT, ligne par ligne :
| Société | Poids dans VOO | Poids dans VGT | Retenu (le plus petit) |
|---|---|---|---|
| Nvidia | 8,4 % | 17,6 % | 8,4 % |
| Apple | 7,4 % | 15,9 % | 7,4 % |
| Microsoft | 5,8 % | 11,2 % | 5,8 % |
| 71 autres sociétés communes | 18,2 % | ||
| VOO et VGT, dans les deux sens | 39,8 % |
À partir de combien le chevauchement est-il trop fort ?
Aucun régulateur ni fournisseur d’indice ne fixe de seuil. Ceux qui circulent sont des chiffres ronds : Passiv conseille de rester sous 50 %, le tutoriel d’etfray qualifie 80 % à 100 % de « quasi identique », et MarketXLS parle de « forte redondance » au-delà de 70 %, sur un chiffre qu’il lit fonds par fonds. Voici combien des 1 431 paires chaque seuil signale, dans les deux sens et dans un sens :

Dans les deux sens, 80 % ou plus, c’est un seul portefeuille sous deux tickers. Cela fait 34 paires : 14 suivent le même indice (les cinq fonds S&P 500, les trois fonds Nasdaq-100, VOOG et SPYG), et les 20 autres associent deux fonds sur des indices différents qui détiennent surtout les mêmes sociétés, comme VOO et le Vanguard Total Stock Market ETF (VTI) à 89,0 %.
Le seuil qui compte dépend de la question que vous posez. Ce sont des repères de lecture, pas des règles :
| Votre question | À lire | Seuil | Paires au seuil ou au-dessus |
|---|---|---|---|
| Ai-je deux fois le même portefeuille ? | dans les deux sens | 80 % | 34 |
| La moitié de mon argent est-elle dans les mêmes positions ? | dans les deux sens | 50 % | 172 |
| Le second fonds ajoute-t-il des sociétés que je n’ai pas ? | dans un sens | 90 % | 406 |
Un fort chiffre dans un sens n’est pas une erreur en soi. À côté de VOO, SCHD n’ajoute aucune nouvelle société pour 94,9 % de son argent ; ce qu’il change, c’est la part de chacune. Si cette inclinaison est la raison pour laquelle vous le détenez, le chevauchement est voulu. Si vous l’avez acheté pour détenir des sociétés que VOO n’a pas, il n’en apporte presque pas (le face-à-face est sur SCHD contre VOO).
Le sens que la plupart des outils oublient
Le chevauchement dans les deux sens est symétrique : VOO et VGT partagent 39,8 % de leur argent quel que soit le fonds de départ. Le chiffre dans un sens ne l’est pas, et il répond à une autre question : quelle part du pari le plus étroit est déjà dans le plus large.
| Paire | Sociétés communes | Deux sens | Un sens | L’autre sens |
|---|---|---|---|---|
| VOO et SCHD | 45 | 7,6 % | 94,9 % de SCHD | 7,6 % de VOO |
| VOO et VGT | 74 | 39,8 % | 88,8 % de VGT | 39,8 % de VOO |
| VOO et QQQ | 86 | 55,6 % | 92,9 % de QQQ | 55,9 % de VOO |
| VOO et IVV | 501 | 96,6 % | 99,8 % de VOO | 99,6 % de IVV |
Sur les 1 431 paires, un fonds a la moitié de son argent ou plus dans les sociétés de l’autre dans 633 cas (44,2 %), 80 % ou plus dans 498 et 90 % ou plus dans 406. Dans 174 paires, le chevauchement dans les deux sens est sous 25 % alors qu’un fonds est inclus à 90 % ou plus dans l’autre. L’écart le plus large : le Utilities Select Sector SPDR Fund (XLU) a 99,8 % de son argent dans des sociétés que le Vanguard Total World Stock ETF (VT) détient, et ces sociétés font 1,0 % de VT.
C’est aussi la question que les gens posent : sur les 5 519 affichages de nos pages de paires dans Google du 27 juillet au 24 octobre 2026, 73,5 % concernaient des paires où un fonds est inclus à 75 % ou plus dans l’autre, VGT et SMH (80,4 % de SMH dans VGT) et VTI et QQQM (96,3 % de QQQM dans VTI) en tête.
Pourquoi deux calculateurs donnent des chiffres différents
Combien de lignes il lit. Le guide d’InvestSMART, par exemple, conseille de regarder les 20 premières lignes. Sur les 10 premières, 908 des 1 431 paires n’ont rien en commun, contre 448 sur les fichiers complets. 616 paires bougent de 5 points ou plus, et seules 8 atteignent encore 50 %. L’iShares MSCI EAFE ETF (EFA) et l’iShares Core MSCI EAFE ETF (IEFA) passent de 85,1 % à 12,2 %. Même en écartant les lignes sous 0,1 %, 163 paires bougent de 5 points ou plus : VT et le Vanguard FTSE All-World UCITS ETF (VWCE) passent de 89,1 % à 51,8 %.

La date de chaque fichier. Ici, les fichiers de Vanguard sont datés du 30 septembre et la plupart des autres du 16 octobre. Des fonds sur le même indice se recoupent à 99,7 % en médiane sur des fichiers du même jour et à 96,6 % à 16 jours d’écart : SPY et l’iShares Core S&P 500 ETF (IVV), tous deux datés du 16 octobre, partagent 99,7 % de leur argent ; VOO, daté du 30 septembre, et IVV 96,6 %. Sur les 1 431 paires, 665 (46,5 %) comparent des fichiers à plus de 7 jours d’écart, jusqu’à 23 jours. Un bon outil affiche les deux dates.
Vérifier vos propres fonds
Ajoutez les fonds que vous détenez, même approximativement : l’outil mesure chaque paire sur les mêmes fichiers complets, dans les deux sens.
vos deux fonds les plus proches
??,? %Deux fonds peuvent détenir les mêmes entreprises, presque aux mêmes poids.
trois fonds que beaucoup de lecteurs détiennent
Pour une paire, l’outil de chevauchement d’ETF a une page pour chacune des 1 431, avec chaque société commune et les deux dates de fichier. À partir de trois fonds, la radiographie du portefeuille additionne chaque société sur tous, et vous pouvez importer vos positions depuis une capture d’écran ou un CSV de votre courtier pour la voir sur vos vrais poids. À lire aussi : quels ETF sont le même fonds, notre première mesure sur 30 fonds ; à quel point des paires d’ETF semblables ont évolué ensemble, car le chevauchement dit ce que vous détenez deux fois, pas comment deux fonds bougent ; et mon portefeuille est-il diversifié ?
Notre méthode
Données. Les fichiers complets des positions de 54 ETF, 46 cotés aux États-Unis et 8 fonds UCITS cotés en Europe, tels que chaque émetteur les a publiés : datés du 25 septembre 2026 (ARKK) au 18 octobre 2026 (QQQ, QQQM et RSP), récupérés le 19 octobre 2026. Cela fait 1 431 paires. La demande de recherche vient de notre propre Google Search Console, page par page, du 27 juillet au 24 octobre 2026.
Méthode. Le chevauchement dans les deux sens est la somme, sur les sociétés que les deux fonds détiennent, du plus petit poids ; les poids sont des parts de l’actif net de chaque fonds. Le chiffre dans un sens est la somme des poids d’un fonds dans les sociétés que l’autre détient. Les sociétés sont rapprochées par leur ISIN, ou par un ISIN déduit du CUSIP. Les seuils comparent des valeurs non arrondies.
Limites.
- Liquidités, contrats à terme, options et swaps sont hors des lignes d’actions, donc aucune paire ne peut se recouper plus que le poids en actions de l’un des deux fonds. Cela compte pour deux fonds : le JPMorgan Equity Premium Income ETF (JEPI) a 15,5 % de ses actifs hors de ces lignes et le JPMorgan Nasdaq Equity Premium Income ETF (JEPQ) 17,6 % ; le fonds médian, 0,2 %.
- Un fonds UCITS à réplication synthétique peut publier un panier de substitution au lieu de l’indice. Chacun de nos 8 fichiers UCITS recoupe le fonds coté aux États-Unis le plus proche de 85,1 % (SMEA face à VGK) à 99,8 % (CSPX face à SPY) : ils détiennent bien l’indice.
- 10 fonds ont des lignes sans ISIN ni CUSIP, rapprochées par le nom ; la plus grande part est celle d’ARKK, 3 lignes et 3,0 % du fonds.
- La Search Console compte combien de fois Google a montré nos pages, pas des personnes, et une partie de ces recherches vient d’agents automatisés.
Ce qui changerait le résultat : des fichiers plus récents, et un autre ensemble de fonds. Les fonds que nos outils lisent dans les déclarations Form N-PORT à la SEC n’ont pas de page de paire et ne font pas partie des 1 431.
Reproduire le calcul
reproduce.py télécharge les 54 fichiers tels que le site les sert (chacun avec la source de l’émetteur et sa date en première ligne), mesure chaque paire, puis relit VOO et VGT directement chez Vanguard. Nous l’avons lancé le 27 octobre 2026 : chaque chiffre concordait, et le fichier de Vanguard donne à VOO et VGT 39,7 % et 89,0 %, à 0,2 point de notre copie, parce que le script divise par les seules lignes d’actions quand nos poids comptent tout l’actif net.
Show the code
# Reproduces https://portfolio-terminal.com/blog/how-to-check-etf-overlap
# pip install requests
# Reads the 54 funds' holdings as the site serves them (each a dated copy of the issuer's full file,
# source on line 1), measures every pair, then rereads VOO and VGT from Vanguard to check the copy.
import csv, statistics, requests
UA = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 Chrome/128.0.0.0 Safari/537.36"}
# In the site's order, so a pair reads as its page does (voo-vs-schd).
FUNDS = ("VOO SPY QQQ VTI IVV SCHD QQQM VIG JEPI VUG VGT VYM VTV DIA IWM XLK SMH SOXX ARKK VEA VWO EFA EEM VNQ "
"XLF XLE XLV XLI XLY XLP VXUS VT JEPQ RSP VOOG MGK VB VO IJH IJR ITOT IEFA IWF SPYG XLC XLU IWDA VWCE "
"CSPX VUAA EIMI SSAC CNDX SMEA").split()
def site(symbol):
lines = requests.get("https://portfolio-terminal.com/etf/%s/holdings.csv" % symbol.lower(), headers=UA, timeout=60).text.splitlines()
rows = list(csv.DictReader(lines[2:]))
return lines[0].split(" as of ")[1][:10], {r["isin_or_id"]: float(r["weight_pct"]) / 100 for r in rows}
def measure(a, b):
both = a.keys() & b.keys()
return sum(min(a[i], b[i]) for i in both), sum(a[i] for i in both), sum(b[i] for i in both), len(both)
def top(w, n):
return dict(sorted(w.items(), key=lambda kv: -kv[1])[:n])
files = {s: site(s) for s in FUNDS}
W = {s: w for s, (_, w) in files.items()}
dates = sorted(d for d, _ in files.values())
print("%d funds, files dated %s to %s" % (len(FUNDS), dates[0], dates[-1]))
pairs = {}
for i, a in enumerate(FUNDS):
for b in FUNDS[i + 1:]:
o, a_in_b, b_in_a, n = measure(W[a], W[b])
t10 = measure(top(W[a], 10), top(W[b], 10))
pairs[(a, b)] = (o, max(a_in_b, b_in_a), n, t10[3])
P = list(pairs.values())
pct = lambda v: "%.1f%%" % (100 * v)
print("pairs: {:,}".format(len(P)))
print("median overlap both ways: %s" % pct(statistics.median(p[0] for p in P)))
print("pairs with no company in common: %d" % sum(p[2] == 0 for p in P))
print("pairs 50%% or more the same money: %d, 80%% or more: %d" % (sum(p[0] >= 0.5 for p in P), sum(p[0] >= 0.8 for p in P)))
print("pairs with one fund 50%%+ inside the other: %d, 80%%+: %d" % (sum(p[1] >= 0.5 for p in P), sum(p[1] >= 0.8 for p in P)))
print("under 50%% both ways, one fund 75%%+ inside: %d" % sum(p[0] < 0.5 and p[1] >= 0.75 for p in P))
print("top-10 lines only: pairs with nothing in common: %d" % sum(p[3] == 0 for p in P))
for a, b in [("VOO", "SCHD"), ("VOO", "VGT"), ("VOO", "QQQ")]:
o, cover, n, _ = pairs[(a, b)]
print("%s-%s: %d companies, %s both ways, %s one way" % (a, b, n, pct(o), pct(cover)))
def vanguard(symbol):
url = "https://investor.vanguard.com/irr/funds/profile/%s-AdditionalFundData" % symbol
hd = requests.get(url, headers=UA, timeout=60).json()["holdingDetails"]
rows = [(r.get("isin"), float(str(r["marketValueBaseCurrency"]).replace("$", "").replace(",", ""))) for r in hd["equityHoldings"]]
total = sum(mv for _, mv in rows)
return hd["asOfDate"], {isin: mv / total for isin, mv in rows if isin}
(d1, voo), (d2, vgt) = vanguard("VOO"), vanguard("VGT")
o, voo_in, vgt_in, n = measure(voo, vgt)
print("from Vanguard (files %s, %s): VOO-VGT %d companies, %s both ways, %s of VGT inside VOO" % (d1, d2, n, pct(o), pct(vgt_in)))54 funds, files dated 2026-09-25 to 2026-10-18
pairs: 1,431
median overlap both ways: 4.3%
pairs with no company in common: 448
pairs 50% or more the same money: 172, 80% or more: 34
pairs with one fund 50%+ inside the other: 633, 80%+: 498
under 50% both ways, one fund 75%+ inside: 374
top-10 lines only: pairs with nothing in common: 908
VOO-SCHD: 45 companies, 7.6% both ways, 94.9% one way
VOO-VGT: 74 companies, 39.8% both ways, 88.8% one way
VOO-QQQ: 86 companies, 55.6% both ways, 92.9% one way
from Vanguard (files 09/30/2026, 09/30/2026): VOO-VGT 74 companies, 39.7% both ways, 89.0% of VGT inside VOOSources : Vanguard, VOO holdings · Vanguard, VGT holdings · iShares, IVV holdings · State Street, SPY holdings · Schwab, SCHD holdings · Invesco, QQQ holdings
#études#etf#diversification
À lire ensuite
cite: Julien Esnault, “Comment vérifier le chevauchement de deux ETF (et ce que 1 431 paires disent du « trop »)”, Portfolio Terminal, 2026-10-27. version texte (en anglais) pour les outils d’IA
Essayez sur votre propre portefeuille
avant le 31 décembre
Avant le 31 décembre : l’impôt que vos moins-values peuvent encore effacer.
La démo s’ouvre sur l’onglet Plus-values, avec le portefeuille d’un investisseur français chez des courtiers étrangers : ce que ses moins-values latentes peuvent encore effacer cette année, calculé au prix moyen pondéré (PMP).
Wall Street en 60 secondes, chaque matin (en anglais). Ce qu’il contient
One short email before the open. Unsubscribe anytime.