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 Morningstar Total Stock Market ETF
US Total Market·Tracks Morningstar US Total Market Index·ER 0.030%
| Ticker | Name | Overlap | Index | ER | vs. VTI | Score |
|---|---|---|---|---|---|---|
| ITOT | iShares Core S&P Total U.S. Stock Market ETF | 98.1% | Different index | 0.030% | same | 92 |
| IWV | iShares Russell 3000 ETF | 97.9% | Different index | 0.20% | +17.0 bps | 85 |
| SPTM | State Street SPDR Portfolio S&P 1500 Composite Stock Market ETF | 94.9% | Different index | 0.030% | same | 91 |
| IWB | iShares Russell 1000 ETF | 94.8% | Different index | 0.15% | +12.0 bps | 87 |
| SCHB | Schwab U.S. Broad Market ETF | 93.7% | Different index | 0.030% | same | 91 |
| VTHR | Vanguard Russell 3000 Index Fund ETF Shares | 93.4% | Different index | 0.060% | +3.0 bps | 88 |
| SCHK | Schwab 1000 ETF | 91.6% | Different index | 0.030% | same | 88 |
| VONE | Vanguard Russell 1000 Index Fund ETF Shares | 90.8% | Different index | 0.060% | +3.0 bps | 90 |
| DFUS | Dimensional U.S. Equity Market ETF | 89.8% | Benchmark N/A | 0.090% | +6.0 bps | 89 |
| SCHX | Schwab U.S. Large-Cap ETF | 89.7% | Different index | 0.030% | same | 91 |
| VOO | Vanguard S&P 500 ETF | 88.1% | Different index | 0.030% | same | 91 |
| IVV | iShares Core S&P 500 ETF | 88.1% | Different index | 0.030% | same | 91 |
| SPYM | State Street SPDR Portfolio S&P 500 ETF | 88.1% | Different index | 0.020% | -1.0 bps | 91 |
| SPYI | Neos S&P 500(R) High Income ETF | 87.8% | Benchmark N/A | 0.68% | +65.0 bps | 53 |
| VV | Vanguard Morningstar Large-Cap ETF | 87.1% | Different index | 0.030% | same | 91 |
| DFAU | Dimensional US Core Equity Market ETF | 86.5% | Benchmark N/A | 0.12% | +9.0 bps | 88 |
| SPY | State Street SPDR S&P 500 ETF Trust | 84.8% | Different index | 0.094% | +6.4 bps | 88 |
| XYLD | Global X S&P 500 Covered Call ETF | 84.3% | Different index | 0.60% | +57.0 bps | 51 |
| BBUS | JPMorgan BetaBuilders U.S. Equity ETF | 84.0% | Different index | 0.020% | -1.0 bps | 90 |
| GPIX | Goldman Sachs S&P 500 Premium Income ETF | 83.6% | Benchmark N/A | 0.29% | +26.0 bps | 70 |
| ESGV | Vanguard ESG U.S. Stock ETF | 78.8% | Different index | 0.090% | +6.0 bps | 87 |
| AVUS | Avantis US Equity ETF | 74.4% | Benchmark N/A | 0.15% | +12.0 bps | 87 |
| DFAC | Dimensional U.S. Core Equity 2 ETF | 72.9% | Benchmark N/A | 0.17% | +14.0 bps | 87 |
| MGC | Vanguard Morningstar Mega Cap ETF | 72.5% | Different index | 0.050% | +2.0 bps | 88 |
| ESGU | iShares ESG Aware MSCI USA ETF | 71.5% | Different index | 0.15% | +12.0 bps | 86 |
| GSLC | Goldman Sachs ActiveBeta U.S. Large Cap Equity ETF | 71.2% | Different index | 0.090% | +6.0 bps | 88 |
| OEF | iShares S&P 100 ETF | 63.1% | Different index | 0.20% | +17.0 bps | 81 |
| PRF | Invesco RAFI US 1000 ETF | 62.8% | Different index | 0.34% | +31.0 bps | 81 |
| FNDX | Schwab Fundamental U.S. Large Company ETF | 62.7% | Different index | 0.25% | +22.0 bps | 85 |
| IUSG | iShares Core S&P U.S. Growth ETF | 62.5% | Different index | 0.040% | +1.0 bps | 87 |
| FELC | Fidelity Enhanced Large Cap Core ETF | 61.5% | Benchmark N/A | 0.18% | +15.0 bps | 84 |
| LRGF | iShares U.S. Equity Factor ETF | 60.7% | Different index | 0.080% | +5.0 bps | 84 |
| VT | Vanguard Total World Stock Index Fund ETF Shares | 60.3% | Different index | 0.060% | +3.0 bps | 92 |
| SPYG | State Street SPDR Portfolio S&P 500 Growth ETF | 59.6% | Different index | 0.040% | +1.0 bps | 86 |
| IVW | iShares S&P 500 Growth ETF | 59.6% | Different index | 0.18% | +15.0 bps | 81 |
| VOOG | Vanguard S&P 500 Growth Index Fund ETF Shares | 58.9% | Different index | 0.070% | +4.0 bps | 84 |
| IWD | iShares Russell 1000 Value ETF | 56.6% | Different index | 0.18% | +15.0 bps | 87 |
| DYNF | iShares U.S. Equity Factor Rotation Active ETF | 56.3% | Benchmark N/A | 0.26% | +23.0 bps | 80 |
| DTD | WisdomTree U.S. Total Dividend Fund | 56.3% | Different index | 0.28% | +25.0 bps | 73 |
| IUSV | iShares Core S&P U.S. Value ETF | 55.4% | Different index | 0.040% | +1.0 bps | 93 |
| ONEQ | Fidelity Nasdaq Composite Index ETF | 54.6% | Different index | 0.21% | +18.0 bps | 79 |
| DLN | WisdomTree U.S. LargeCap Dividend Fund | 54.6% | Different index | 0.28% | +25.0 bps | 79 |
| IWF | iShares Russell 1000 Growth ETF | 54.5% | Different index | 0.18% | +15.0 bps | 81 |
| VONV | Vanguard Russell 1000 Value Index Fund ETF Shares | 54.5% | Different index | 0.060% | +3.0 bps | 93 |
| VONG | Vanguard Russell 1000 Growth Index Fund ETF Shares | 53.5% | Different index | 0.060% | +3.0 bps | 85 |
| SPYV | State Street SPDR Portfolio S&P 500 Value ETF | 52.6% | Different index | 0.040% | +1.0 bps | 93 |
| IVE | iShares S&P 500 Value ETF | 52.6% | Different index | 0.18% | +15.0 bps | 87 |
| VUG | Vanguard Morningstar Growth ETF | 52.2% | Different index | 0.030% | same | 86 |
| VOOV | Vanguard S&P 500 Value Index Fund ETF Shares | 51.6% | Different index | 0.070% | +4.0 bps | 90 |
| XLG | Invesco S&P 500 Top 50 ETF | 50.7% | Different index | 0.20% | +17.0 bps | 78 |
| OMFL | Invesco Russell 1000 Dynamic Multifactor ETF | 49.9% | Different index | 0.29% | +26.0 bps | 77 |
| IWY | iShares Russell Top 200 Growth ETF | 49.1% | Different index | 0.20% | +17.0 bps | 79 |
| SCHG | Schwab U.S. Large-Cap Growth ETF | 48.7% | Different index | 0.040% | +1.0 bps | 86 |
| QQQ | Invesco QQQ Trust | 48.2% | Different index | 0.18% | +15.0 bps | 83 |
| QQQI | NEOS NASDAQ-100(R) High Income ETF | 48.2% | Benchmark N/A | 0.68% | +65.0 bps | 52 |
| GPIQ | Goldman Sachs Nasdaq-100 Premiu | 48.1% | Benchmark N/A | 0.29% | +26.0 bps | 69 |
| FELG | Fidelity Enhanced Large Cap Growth ETF | 47.9% | Benchmark N/A | 0.18% | +15.0 bps | 79 |
| QQQM | Invesco NASDAQ 100 ETF | 47.7% | Different index | 0.15% | +12.0 bps | 84 |
| QYLD | Global X NASDAQ 100 Covered Call ETF | 47.7% | Different index | 0.60% | +57.0 bps | 56 |
| DSI | iShares ESG MSCI KLD 400 ETF | 47.7% | Different index | 0.25% | +22.0 bps | 77 |
| SUSA | iShares ESG Optimized MSCI USA ETF | 47.6% | Different index | 0.25% | +22.0 bps | 79 |
| DGRW | WisdomTree U.S. Quality Dividend Growth Fund | 46.8% | Different index | 0.28% | +25.0 bps | 79 |
| JEPQ | JPMorgan Nasdaq Equity Premium Income ETF | 45.6% | Benchmark N/A | 0.35% | +32.0 bps | 69 |
| MGK | Vanguard Morningstar Mega Cap Growth ETF | 45.2% | Different index | 0.050% | +2.0 bps | 84 |
| FBCG | Fidelity Blue Chip Growth ETF | 44.1% | Benchmark N/A | 0.57% | +54.0 bps | 63 |
| JGRO | JPMorgan Active Growth ETF | 43.8% | Benchmark N/A | 0.44% | +41.0 bps | 73 |
| SCHV | Schwab U.S. Large-Cap Value ETF | 43.2% | Different index | 0.040% | +1.0 bps | 94 |
| IWX | iShares Russell Top 200 Value ETF | 43.0% | Different index | 0.20% | +17.0 bps | 79 |
| IGM | iShares Expanded Tech Sector ETF | 42.9% | Different index | 0.37% | +34.0 bps | 72 |
| JQUA | JPMorgan U.S. Quality Factor ETF | 41.7% | Different index | 0.12% | +9.0 bps | 90 |
| RSP | Invesco S&P 500 Equal Weight ETF | 41.3% | Different index | 0.20% | +17.0 bps | 89 |
| QUAL | iShares MSCI USA Quality Factor ETF | 41.0% | Different index | 0.15% | +12.0 bps | 85 |
| DGRO | iShares Core Dividend Growth ETF | 40.3% | Different index | 0.080% | +5.0 bps | 89 |
| CGUS | Capital Group Core Equity ETF | 40.2% | Benchmark N/A | 0.33% | +30.0 bps | 77 |
| IYW | iShares U.S. Technology ETF | 39.7% | Different index | 0.37% | +34.0 bps | 71 |
| VTV | Vanguard Morningstar Value ETF | 38.7% | Different index | 0.030% | same | 93 |
| CGGR | Capital Group Growth ETF | 38.5% | Benchmark N/A | 0.39% | +36.0 bps | 75 |
| DUHP | Dimensional US High Profitability ETF | 38.4% | Benchmark N/A | 0.20% | +17.0 bps | 83 |
| TCAF | T. Rowe Price Capital Appreciation Equity ETF | 37.9% | Benchmark N/A | 0.31% | +28.0 bps | 78 |
| VIG | Vanguard Dividend Appreciation Index Fund ETF Shares | 37.8% | Different index | 0.040% | +1.0 bps | 89 |
| VGT | Vanguard Information Technology Index Fund ETF Shares | 35.3% | Different index | 0.090% | +6.0 bps | 83 |
| FTEC | Fidelity MSCI Information Technology Index ETF | 35.2% | Different index | 0.084% | +5.4 bps | 83 |
| DFUV | Dimensional US Marketwide Value ETF | 35.2% | Benchmark N/A | 0.21% | +18.0 bps | 86 |
| FDVV | Fidelity High Dividend ETF | 34.9% | Different index | 0.15% | +12.0 bps | 84 |
| CGDV | Capital Group Dividend Value ETF | 34.5% | Benchmark N/A | 0.33% | +30.0 bps | 76 |
| JGLO | Jpmorgan Global Select Equity ETF | 34.5% | Benchmark N/A | 0.47% | +44.0 bps | 70 |
| JAVA | JPMorgan Active Value ETF | 34.4% | Benchmark N/A | 0.44% | +41.0 bps | 75 |
| MTUM | iShares MSCI USA Momentum Factor ETF | 34.2% | Different index | 0.15% | +12.0 bps | 84 |
| SPMO | Invesco S&P 500 Momentum ETF | 33.5% | Different index | 0.13% | +10.0 bps | 82 |
| IXN | iShares Global Tech ETF | 33.2% | Different index | 0.37% | +34.0 bps | 71 |
| XLK | State Street Technology Select Sector SPDR ETF | 33.2% | Different index | 0.080% | +5.0 bps | 82 |
| VYM | Vanguard High Dividend Yield Index Fund ETF Shares | 32.5% | Different index | 0.040% | +1.0 bps | 90 |
| JEPI | JPMorgan Equity Premium Income ETF | 30.7% | Benchmark N/A | 0.35% | +32.0 bps | 70 |
| USMV | iShares MSCI USA Min Vol Factor ETF | 30.7% | Different index | 0.15% | +12.0 bps | 90 |
| MGV | Vanguard Morningstar Mega Cap Value ETF | 30.5% | Different index | 0.050% | +2.0 bps | 91 |
| DFLV | Dimensional US Large Cap Value ETF | 30.2% | Benchmark N/A | 0.21% | +18.0 bps | 84 |
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. Morningstar 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 ↔ SPYM 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 themethodologyfor 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.