Tool · TLH

Tax-loss-harvesting partner finder

Find a near-substitute for any catalog fund — same exposure, different index — so a loss can be realized without tripping the wash-sale rule. Candidates are ranked by holdings overlap and labelled with their tracking index so wash-sale-risky swaps are visually obvious.

VTI · Vanguard Total Stock Market Index Fund ETF Shares

US Total Market·Tracks CRSP US Total Market Index·ER 0.030%

TickerNameOverlapIndexERvs. VTIScore
ITOTiShares Core S&P Total U.S. Stock Market ETF98.1%Different index0.030%same92
IWViShares Russell 3000 ETF97.8%Different index0.20%+17.0 bps85
SCHBSchwab U.S. Broad Market ETF96.6%Different index0.030%same92
VTHRVanguard Russell 3000 Index Fund ETF Shares96.0%Different index0.060%+3.0 bps88
SPTMState Street SPDR Portfolio S&P 1500 Composite Stock Market ETF95.0%Different index0.030%same91
IWBiShares Russell 1000 ETF94.3%Different index0.15%+12.0 bps87
SCHKSchwab 1000 ETF94.2%Different index0.030%same89
VONEVanguard Russell 1000 Index Fund ETF Shares93.4%Different index0.060%+3.0 bps90
SCHXSchwab U.S. Large-Cap ETF92.1%Different index0.030%same91
DFUSDimensional U.S. Equity Market ETF92.0%Benchmark N/A0.090%+6.0 bps89
DFAUDimensional US Core Equity Market ETF88.6%Benchmark N/A0.12%+9.0 bps88
VOOVanguard S&P 500 ETF88.1%Different index0.030%same91
SPLGSPDR Portfolio S&P 500 ETF88.1%Different index0.020%-1.0 bps90
IVViShares Core S&P 500 ETF88.1%Different index0.030%same91
SPYINeos S&P 500(R) High Income ETF88.0%Benchmark N/A0.68%+65.0 bps53
XYLDGlobal X S&P 500 Covered Call ETF87.5%Different index0.60%+57.0 bps51
BBUSJPMorgan BetaBuilders U.S. Equity ETF87.2%Different index0.020%-1.0 bps90
VVVanguard Large Cap Index Fund87.1%Different index0.030%same91
SPYState Street SPDR S&P 500 ETF Trust84.2%Different index0.094%+6.4 bps88
GPIXGoldman Sachs S&P 500 Premium Income ETF84.0%Benchmark N/A0.29%+26.0 bps69
ESGVVanguard ESG U.S. Stock ETF77.6%Different index0.090%+6.0 bps88
DFACDimensional U.S. Core Equity 2 ETF74.4%Benchmark N/A0.17%+14.0 bps87
AVUSAvantis US Equity ETF74.1%Benchmark N/A0.15%+12.0 bps88
GSLCGoldman Sachs ActiveBeta U.S. Large Cap Equity ETF72.8%Different index0.090%+6.0 bps89
MGCVanguard Mega Cap Index Fund72.6%Different index0.050%+2.0 bps88
ESGUiShares ESG Aware MSCI USA ETF69.5%Different index0.15%+12.0 bps86
PRFInvesco RAFI US 1000 ETF64.8%Different index0.34%+31.0 bps80
OMFLInvesco Russell 1000 Dynamic Multifactor ETF64.5%Different index0.29%+26.0 bps78
OEFiShares S&P 100 ETF63.5%Different index0.20%+17.0 bps81
LRGFiShares U.S. Equity Factor ETF62.5%Different index0.080%+5.0 bps84
FNDXSchwab Fundamental U.S. Large Company ETF62.1%Different index0.25%+22.0 bps85
VTVanguard Total World Stock Index Fund ETF Shares60.5%Different index0.060%+3.0 bps92
FELCFidelity Enhanced Large Cap Core ETF59.9%Benchmark N/A0.18%+15.0 bps83
IUSGiShares Core S&P U.S. Growth ETF59.9%Different index0.040%+1.0 bps86
IUSViShares Core S&P U.S. Value ETF57.9%Different index0.040%+1.0 bps93
SPYGState Street SPDR Portfolio S&P 500 Growth ETF56.8%Different index0.040%+1.0 bps86
IVWiShares S&P 500 Growth ETF56.8%Different index0.18%+15.0 bps80
DYNFiShares U.S. Equity Factor Rotation Active ETF56.5%Benchmark N/A0.26%+23.0 bps80
VOOGVanguard S&P 500 Growth Index Fund ETF Shares56.5%Different index0.070%+4.0 bps84
DTDWisdomTree U.S. Total Dividend Fund56.4%Different index0.28%+25.0 bps73
SPYVState Street SPDR Portfolio S&P 500 Value ETF55.1%Different index0.040%+1.0 bps93
IVEiShares S&P 500 Value ETF55.1%Different index0.18%+15.0 bps87
VOOVVanguard S&P 500 Value Index Fund ETF Shares55.0%Different index0.070%+4.0 bps90
VONVVanguard Russell 1000 Value Index Fund ETF Shares54.2%Different index0.060%+3.0 bps93
IWDiShares Russell 1000 Value ETF54.2%Different index0.18%+15.0 bps88
DLNWisdomTree U.S. LargeCap Dividend Fund54.1%Different index0.28%+25.0 bps79
VONGVanguard Russell 1000 Growth Index Fund ETF Shares53.7%Different index0.060%+3.0 bps85
IWFiShares Russell 1000 Growth ETF53.5%Different index0.18%+15.0 bps80
XLGInvesco S&P 500 Top 50 ETF52.5%Different index0.20%+17.0 bps78
ONEQFidelity Nasdaq Composite Index ETF51.7%Different index0.21%+18.0 bps79
VUGVanguard Growth Index Fund ETF Shares50.0%Different index0.030%same85
DGRWWisdomTree U.S. Quality Dividend Growth Fund49.2%Different index0.28%+25.0 bps78
SCHGSchwab U.S. Large-Cap Growth ETF48.7%Different index0.040%+1.0 bps86
IWYiShares Russell Top 200 Growth ETF48.7%Different index0.20%+17.0 bps79
JGROJPMorgan Active Growth ETF48.0%Benchmark N/A0.44%+41.0 bps72
DSIiShares ESG MSCI KLD 400 ETF46.9%Different index0.25%+22.0 bps77
SUSAiShares ESG Optimized MSCI USA ETF46.2%Different index0.25%+22.0 bps78
QYLDGlobal X NASDAQ 100 Covered Call ETF45.0%Different index0.60%+57.0 bps56
FELGFidelity Enhanced Large Cap Growth ETF45.0%Benchmark N/A0.18%+15.0 bps77
GPIQGoldman Sachs Nasdaq-100 Premium Income ETF44.9%Benchmark N/A0.29%+26.0 bps69
QQQInvesco QQQ Trust44.9%Different index0.18%+15.0 bps83
QQQINEOS NASDAQ-100(R) High Income ETF44.9%Benchmark N/A0.68%+65.0 bps52
QQQMInvesco NASDAQ 100 ETF44.9%Different index0.15%+12.0 bps84
SCHVSchwab U.S. Large-Cap Value ETF44.0%Different index0.040%+1.0 bps94
FBCGFidelity Blue Chip Growth ETF43.8%Benchmark N/A0.57%+54.0 bps63
JEPQJPMorgan Nasdaq Equity Premium Income ETF43.6%Benchmark N/A0.35%+32.0 bps69
MGKVanguard Mega Cap Growth Index Fund43.0%Different index0.050%+2.0 bps84
DGROiShares Core Dividend Growth ETF43.0%Different index0.080%+5.0 bps89
RSPInvesco S&P 500 Equal Weight ETF42.9%Different index0.20%+17.0 bps89
QUALiShares MSCI USA Quality Factor ETF42.5%Different index0.15%+12.0 bps85
CGUSCapital Group Core Equity ETF42.2%Benchmark N/A0.33%+30.0 bps78
IWXiShares Russell Top 200 Value ETF40.8%Different index0.20%+17.0 bps81
JQUAJPMorgan U.S. Quality Factor ETF40.3%Different index0.12%+9.0 bps89
VTVVanguard Value Index Fund ETF Shares40.3%Different index0.030%same94
VIGVanguard Dividend Appreciation Index Fund ETF Shares39.5%Different index0.040%+1.0 bps89
DUHPDimensional US High Profitability ETF39.4%Benchmark N/A0.20%+17.0 bps83
IGMiShares Expanded Tech Sector ETF38.3%Different index0.39%+36.0 bps72
TCAFT. Rowe Price Capital Appreciation Equity ETF37.9%Benchmark N/A0.31%+28.0 bps77
CGGRCapital Group Growth ETF36.7%Benchmark N/A0.39%+36.0 bps76
FDVVFidelity High Dividend ETF36.4%Different index0.15%+12.0 bps84
JGLOJpmorgan Global Select Equity ETF35.9%Benchmark N/A0.47%+44.0 bps71
VYMVanguard High Dividend Yield Index Fund ETF Shares35.6%Different index0.040%+1.0 bps90
DFUVDimensional US Marketwide Value ETF35.2%Benchmark N/A0.21%+18.0 bps86
IYWiShares U.S. Technology ETF35.0%Different index0.38%+35.0 bps70
USMViShares MSCI USA Min Vol Factor ETF33.1%Different index0.15%+12.0 bps90
DFLVDimensional US Large Cap Value ETF31.4%Benchmark N/A0.21%+18.0 bps84
MGVVanguard Mega Cap Value Index Fund31.0%Different index0.050%+2.0 bps92
JEPIJPMorgan Equity Premium Income ETF31.0%Benchmark N/A0.35%+32.0 bps70
MTUMiShares MSCI USA Momentum Factor ETF30.6%Different index0.15%+12.0 bps84
VGTVanguard Information Technology Index Fund ETF Shares30.6%Different index0.090%+6.0 bps83
FTECFidelity MSCI Information Technology Index ETF30.5%Different index0.084%+5.4 bps83
How to read this

Tax-loss harvesting sells a position at a loss to realize the tax deduction, then immediately re-establishes the same exposure via a different security so the portfolio's allocation barely moves. The IRS wash-sale rule (§1091) disallows the loss if you buy a "substantially identical" security within 30 days before or after the sale.

"Substantially identical" is not statutorily defined for funds. The IRS has not formally ruled on ETF-to-ETF swaps. The convention this site uses — and that the Bogleheads wiki has used for ~20 years without a documented audit failure — is:

  • Different index (e.g. CRSP US Total Market ↔ S&P Total Market) is the conventional Bogleheads-wiki swap — not an IRS-issued safe harbor. No letter ruling or court case has tested this convention for ETFs.
  • Same index (IVV ↔ VOO ↔ SPLG all track S&P 500) is conventionally treated as wash-sale risk — same securities, same weights, just different wrappers.

Overlap % is the sum of min(weight_a, weight_b) across every security held in both funds — "what fraction of your dollar exposure stays the same after the swap." High overlap means the swap holds your allocation steady; very low overlap means the replacement fund is a different bet, not a TLH partner.

Bps difference shows how much more (or less) the replacement charges. Even "permanent" TLH partners come with a small cost difference; factor that into the savings if you don't plan to swap back.

This tool flags wash-sale risk on benchmark match. It does not constitute tax advice — confirm any harvest with your own CPA, especially across multiple accounts (the wash-sale rule applies portfolio-wide, including spouse + IRA).

Wash-sale classification uses benchmark-index match as a heuristic; the IRS has not formally ruled on ETF-to-ETF swaps. Holdings overlap is computed off the latest SEC N-PORT filings (typical 30–60 day lag). See the methodology for how overlap is calculated.

PlainIndex publishes data and editorial commentary — nothing here is tax or investment advice. The wash-sale rule applies portfolio- wide (including IRA and spouse accounts); confirm any actual harvest with a tax professional.