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%
| 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 |
| SCHB | Schwab U.S. Broad Market ETF | 96.6% | Different index | 0.030% | same | 92 |
| VTHR | Vanguard Russell 3000 Index Fund ETF Shares | 96.0% | Different index | 0.060% | +3.0 bps | 88 |
| SPTM | State Street SPDR Portfolio S&P 1500 Composite Stock Market ETF | 95.0% | Different index | 0.030% | same | 91 |
| IWB | iShares Russell 1000 ETF | 94.3% | Different index | 0.15% | +12.0 bps | 87 |
| SCHK | Schwab 1000 ETF | 94.2% | Different index | 0.030% | same | 89 |
| VONE | Vanguard Russell 1000 Index Fund ETF Shares | 93.4% | Different index | 0.060% | +3.0 bps | 90 |
| DFUS | Dimensional U.S. Equity Market ETF | 92.4% | Different index | 0.090% | +6.0 bps | 89 |
| SCHX | Schwab U.S. Large-Cap ETF | 92.1% | Different index | 0.030% | same | 91 |
| DFAU | Dimensional US Core Equity Market ETF | 89.3% | Different index | 0.12% | +9.0 bps | 88 |
| 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 |
| BBUS | JPMorgan BetaBuilders U.S. Equity ETF | 87.1% | Different index | 0.020% | -1.0 bps | 90 |
| VV | Vanguard Large Cap Index Fund | 87.1% | Different index | 0.030% | same | 91 |
| XYLD | Global X S&P 500 Covered Call ETF | 86.9% | Different index | 0.60% | +57.0 bps | 51 |
| ESGV | Vanguard ESG U.S. Stock ETF | 77.6% | Different index | 0.090% | +6.0 bps | 88 |
| AVUS | Avantis US Equity ETF | 74.1% | Different index | 0.15% | +12.0 bps | 88 |
| MGC | Vanguard Mega Cap Index Fund | 72.6% | Different index | 0.050% | +2.0 bps | 88 |
| ESGU | iShares ESG Aware MSCI USA ETF | 69.5% | Different index | 0.15% | +12.0 bps | 86 |
| PRF | Invesco RAFI US 1000 ETF | 64.6% | Different index | 0.34% | +31.0 bps | 81 |
| OEF | iShares S&P 100 ETF | 63.5% | Different index | 0.20% | +17.0 bps | 81 |
| FNDX | Schwab Fundamental U.S. Large Company ETF | 62.1% | Different index | 0.25% | +22.0 bps | 85 |
| LRGF | iShares U.S. Equity Factor ETF | 61.1% | Different index | 0.080% | +5.0 bps | 84 |
| IUSG | iShares Core S&P U.S. Growth ETF | 59.9% | Different index | 0.040% | +1.0 bps | 86 |
| IUSV | iShares Core S&P U.S. Value ETF | 57.9% | Different index | 0.040% | +1.0 bps | 93 |
| SPYG | State Street SPDR Portfolio S&P 500 Growth ETF | 56.8% | Different index | 0.040% | +1.0 bps | 86 |
| IVW | iShares S&P 500 Growth ETF | 56.8% | Different index | 0.18% | +15.0 bps | 80 |
| VOOG | Vanguard S&P 500 Growth Index Fund ETF Shares | 56.5% | Different index | 0.070% | +4.0 bps | 84 |
| DTD | WisdomTree U.S. Total Dividend Fund | 56.4% | Different index | 0.28% | +25.0 bps | 73 |
| SPYV | State Street SPDR Portfolio S&P 500 Value ETF | 55.1% | Different index | 0.040% | +1.0 bps | 93 |
| IVE | iShares S&P 500 Value ETF | 55.1% | Different index | 0.18% | +15.0 bps | 87 |
| VOOV | Vanguard S&P 500 Value Index Fund ETF Shares | 55.0% | Different index | 0.070% | +4.0 bps | 90 |
| VONV | Vanguard Russell 1000 Value Index Fund ETF Shares | 54.2% | Different index | 0.060% | +3.0 bps | 93 |
| IWD | iShares Russell 1000 Value ETF | 54.2% | Different index | 0.18% | +15.0 bps | 88 |
| DLN | WisdomTree U.S. LargeCap Dividend Fund | 54.1% | Different index | 0.28% | +25.0 bps | 79 |
| VONG | Vanguard Russell 1000 Growth Index Fund ETF Shares | 53.7% | Different index | 0.060% | +3.0 bps | 85 |
| IWF | iShares Russell 1000 Growth ETF | 53.5% | Different index | 0.18% | +15.0 bps | 80 |
| XLG | Invesco S&P 500 Top 50 ETF | 52.5% | Different index | 0.20% | +17.0 bps | 78 |
| ONEQ | Fidelity Nasdaq Composite Index ETF | 51.7% | Different index | 0.21% | +18.0 bps | 79 |
| VUG | Vanguard Growth Index Fund ETF Shares | 50.0% | Different index | 0.030% | same | 85 |
| DGRW | WisdomTree U.S. Quality Dividend Growth Fund | 49.2% | Different index | 0.28% | +25.0 bps | 78 |
| SCHG | Schwab U.S. Large-Cap Growth ETF | 48.7% | Different index | 0.040% | +1.0 bps | 86 |
| IWY | iShares Russell Top 200 Growth ETF | 48.7% | Different index | 0.20% | +17.0 bps | 79 |
| SUSA | iShares ESG Optimized MSCI USA ETF | 48.1% | Different index | 0.25% | +22.0 bps | 79 |
| DSI | iShares ESG MSCI KLD 400 ETF | 46.6% | Different index | 0.25% | +22.0 bps | 77 |
| QQQ | Invesco QQQ Trust | 44.9% | Different index | 0.18% | +15.0 bps | 83 |
| QQQM | Invesco NASDAQ 100 ETF | 44.9% | Different index | 0.15% | +12.0 bps | 84 |
| QYLD | Global X NASDAQ 100 Covered Call ETF | 44.9% | Different index | 0.60% | +57.0 bps | 60 |
| SCHV | Schwab U.S. Large-Cap Value ETF | 44.0% | Different index | 0.040% | +1.0 bps | 94 |
| JEPQ | JPMorgan Nasdaq Equity Premium Income ETF | 43.6% | Different index | 0.35% | +32.0 bps | 69 |
| MGK | Vanguard Mega Cap Growth Index Fund | 43.0% | Different index | 0.050% | +2.0 bps | 84 |
| RSP | Invesco S&P 500 Equal Weight ETF | 42.5% | Different index | 0.20% | +17.0 bps | 90 |
| QUAL | iShares MSCI USA Quality Factor ETF | 42.0% | Different index | 0.15% | +12.0 bps | 85 |
| DGRO | iShares Core Dividend Growth ETF | 41.9% | Different index | 0.080% | +5.0 bps | 89 |
| IWX | iShares Russell Top 200 Value ETF | 40.8% | Different index | 0.20% | +17.0 bps | 81 |
| VTV | Vanguard Value Index Fund ETF Shares | 40.3% | Different index | 0.030% | same | 94 |
| VIG | Vanguard Dividend Appreciation Index Fund ETF Shares | 39.0% | Different index | 0.040% | +1.0 bps | 89 |
| FDVV | Fidelity High Dividend ETF | 38.6% | Different index | 0.15% | +12.0 bps | 84 |
| IGM | iShares Expanded Tech Sector ETF | 38.3% | Different index | 0.39% | +36.0 bps | 72 |
| MTUM | iShares MSCI USA Momentum Factor ETF | 35.7% | Different index | 0.15% | +12.0 bps | 85 |
| IYW | iShares U.S. Technology ETF | 35.4% | Different index | 0.38% | +35.0 bps | 70 |
| VYM | Vanguard High Dividend Yield Index Fund ETF Shares | 34.1% | Different index | 0.040% | +1.0 bps | 90 |
| MGV | Vanguard Mega Cap Value Index Fund | 31.0% | Different index | 0.050% | +2.0 bps | 92 |
| JEPI | JPMorgan Equity Premium Income ETF | 31.0% | Different index | 0.35% | +32.0 bps | 70 |
| USMV | iShares MSCI USA Min Vol Factor ETF | 31.0% | Different index | 0.15% | +12.0 bps | 90 |
| VGT | Vanguard Information Technology Index Fund ETF Shares | 30.6% | Different index | 0.090% | +6.0 bps | 83 |
| FTEC | Fidelity MSCI Information Technology Index ETF | 30.5% | Different index | 0.084% | +5.4 bps | 83 |
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.