All Resources
Tax Planning

Tax-Loss Harvesting: A Practical Guide

8 min read

The Core Idea

Tax-loss harvesting is the practice of selling an investment that has declined in value, realizing a capital loss, then immediately reinvesting in something similar. You preserve your market exposure while generating a tax loss that can offset gains or ordinary income.

The IRS doesn't give you a free lunch, but it does give you a tax-timing arbitrage: you can choose when to realize losses. Most investors ignore this tool, leaving thousands of dollars of tax savings unrealized each year.

How It Works: Step by Step

Step 1 — Identify a position with an unrealized loss. In your taxable brokerage account, look at each lot's cost basis (what you paid) vs. its current market value. Any position trading below your cost basis is a candidate.

Step 2 — Sell the losing position. The sale triggers a realized loss. Your cost basis minus the sale proceeds equals your capital loss.

Step 3 — Immediately reinvest the proceeds. You want to stay invested the whole time—market timing isn't the goal. Buy a similar but not "substantially identical" security (more on this shortly).

Step 4 — Apply the loss. The realized loss first offsets any realized capital gains in the same tax year. If losses exceed gains, up to $3,000 can offset ordinary income (wages, interest, self-employment income). Any remaining loss carries forward to future years.

Here's the power: you reset your cost basis lower (since you sold high and bought the replacement low), meaning you'll owe more tax on future gains from the replacement holding. But you get the tax benefit now, and you can continue deferring the future gain indefinitely—potentially until a year when your tax rate is lower, or even until death when your heirs receive the step-up in basis.

Concrete Example

Suppose you bought 200 shares of a total market ETF at $250/share in January, investing $50,000. By October, the market has dropped 15% and your shares are worth $212.50 each—a total value of $42,500 with a $7,500 unrealized loss.

Without TLH: You hold. No tax benefit. Your cost basis stays at $250/share.

With TLH: You sell all 200 shares, realizing a $7,500 short-term capital loss. You immediately buy a different total market ETF (say, holding a different index like the S&P 1500 instead of the CRSP US Total Market Index) with the $42,500 proceeds. Your market exposure is nearly identical—if the market rebounds 10%, both positions rise roughly 10%.

Tax impact assuming you're in the 24% bracket:

  • The $7,500 loss first offsets any capital gains you realized during the year (saving you up to 23.8% on short-term gains or up to 20% plus the 3.8% NIIT on long-term gains).
  • If you have no gains to offset, the $7,500 loss offsets ordinary income up to $3,000, saving you $3,000 × 24% = $720 in federal tax this year. The remaining $4,500 loss carries forward.
  • Next year, you can offset another $3,000 of ordinary income, saving another $720. The remaining $1,500 carries forward to year three, saving $360.
  • Total tax savings: $720 + $720 + $360 = $1,800

You deferred taxes on a $7,500 gain through the basis reset. If you eventually sell the replacement shares at a gain of $7,500, you'll owe capital gains tax on that $7,500. But you may sell during a lower-income year, in retirement, or never—and in the meantime, you've had $1,800 of tax savings to compound elsewhere.

The Wash Sale Rule

This is the tripwire. The IRS prohibits claiming a loss if you buy a substantially identical security within 30 days before or after the sale. The 61-day window spans from 30 days before the sale date through 30 days after.

If you trigger a wash sale, the loss is disallowed and instead gets added to the cost basis of the replacement shares. You don't lose the loss permanently—it's deferred until you eventually sell the replacement shares without triggering another wash sale.

What Counts as "Substantially Identical"?

The IRS has never issued a definitive list, but guidance and practice suggest:

Almost certainly substantially identical:

  • The same stock or ETF (selling VTI and buying VTI)
  • Different share classes of the same fund (selling VTSAX and buying VTI—same underlying index)
  • An option on the same security
  • A convertible bond of the same company

Almost certainly not substantially identical:

  • Different indexes (S&P 500 vs. CRSP US Total Market vs. Russell 3000)
  • Different fund providers tracking different indexes (VTI vs. ITOT vs. SCHB)
  • Stock in Company A vs. stock in Company B in the same sector
  • A mutual fund and an ETF from different providers tracking different indexes

The gray zone: ETFs from different providers tracking the same index (VOO vs. IVV—both track the S&P 500). The conservative view is to treat them as substantially identical. The aggressive view is that different fund structures, expense ratios, and corporate actions make them different securities. Most CPAs recommend avoiding the fight entirely by swapping to a different index.

The 30-Day-Before Trap

You can trigger a wash sale retroactively. If you bought shares 15 days ago, then sell other shares of the same security at a loss today, the sale is a wash because the purchase occurred within the 30-day-before window. This catches dividend reinvestors and automatic investors regularly.

If you automate monthly purchases of VTI in a taxable account, selling VTI for a loss within 30 days of an automatic buy (before or after) creates a partial wash sale.

IRA Interactions

Selling a security at a loss in your taxable account and buying the same security in your IRA within the wash sale window also triggers the wash sale rule, according to IRS Revenue Ruling 2008-5. The loss is permanently disallowed—it doesn't get added to basis because IRAs don't track cost basis. This makes the IRA-crossed wash sale the most dangerous form: the loss is gone forever, not just deferred.

Long-Term vs. Short-Term Losses

Short-term losses (assets held one year or less) are more valuable for tax purposes. They offset short-term gains first (taxed at ordinary income rates up to 37%), then long-term gains (taxed at 0%, 15%, or 20%), then ordinary income up to $3,000.

Long-term losses offset long-term gains first, then short-term gains, then ordinary income. Since short-term gains are taxed more heavily than long-term gains, short-term losses are more useful—you want them offsetting the highest-rate income possible.

In practice, most harvested losses will be short-term, because markets rarely decline in a straight line for more than a year, and disciplined harvesters sell before the one-year mark to capture the loss at its maximum.

The $3,000 Limit and Carryforward

After offsetting all capital gains, you can deduct up to $3,000 of remaining capital losses against ordinary income each year ($1,500 if married filing separately). This limit hasn't changed since 1978 and has never been indexed for inflation. It's modest, but it's real money each year for the rest of your life if you have large accumulated losses.

Losses above $3,000 carry forward indefinitely. They don't expire. A $50,000 loss harvested during a severe bear market could produce $3,000 of ordinary income deductions for the next 17 years. The carryforward retains its character—short-term losses remain short-term, long-term remain long-term—which matters for the ordering rules in future years.

Any unused capital loss carryforward is lost at death. It does not transfer to a spouse or estate.

ETF vs. Direct Indexing for TLH

Traditional TLH uses ETFs and is done manually or by a robo-advisor. Direct indexing takes the concept further: instead of buying an ETF, you buy all (or most of) the individual stocks in an index directly. This creates hundreds or thousands of individual positions, each of which can be harvested independently.

Advantage of direct indexing: You can harvest losses at the individual stock level even when the overall market is up. In any given year, some stocks within the S&P 500 decline even as the index rises. Direct indexing captures losses that an ETF-level strategy would miss. Firms like Wealthfront and Fidelity offer direct indexing for accounts as small as $100 and $5,000 respectively.

Disadvantages: Higher management fees (typically 0.25% to 0.40%), account complexity (you'll have hundreds of tiny positions), tax-lot accounting headaches if you ever leave the provider, and diminishing marginal benefit—most of the harvestable losses occur in the first few years as positions age and accumulate gains.

For most investors, ETF-level TLH through a robo-advisor or manual approach captures 80%+ of the benefit at near-zero added cost.

Robo-Advisor TLH

Betterment and Wealthfront pioneered automated TLH. Their algorithms monitor cost basis daily, identify harvestable losses, execute the trades, manage wash sale windows across multiple securities, and handle tax-lot selection—all without user intervention.

Wealthfront reports that their TLH historically generated an average tax benefit of 0.67% to 1.85% of account value annually (depending on market conditions), net of fees. In a $100,000 account, that's $670 to $1,850 per year in tax savings. Over decades, those savings compound meaningfully.

The tradeoff is the advisory fee (typically 0.25%). If your own tax bracket is low, the fee may consume most or all of the harvesting benefit.

When TLH Isn't Worth Doing

You're in the 0% long-term capital gains bracket. If your taxable income is under $48,350 (single, 2025) or $96,700 (married), you already pay 0% on long-term capital gains. Harvesting losses provides no immediate benefit and actually increases future gains by resetting your cost basis lower. You may even want to do the reverse: tax-gain harvesting—realizing gains at 0% to step up your basis.

Your portfolio is small. On a $10,000 portfolio, the maximum annual tax benefit from TLH is modest. A 10% decline yields a $1,000 loss, saving perhaps $240 in a 24% bracket. That's real money, but the effort of monitoring wash sale windows, tracking replacement shares, and handling the extra tax forms may not justify it.

Your taxable account is less than 30% of your portfolio. The majority of most people's wealth is in 401(k)s, IRAs, and home equity. Losses inside tax-advantaged accounts don't count because those accounts don't generate taxable events. If only a small slice of your net worth is in a taxable brokerage, the absolute dollar benefit of TLH shrinks accordingly.

You expect to be in a much higher bracket in the near future. Since TLH defers gains into the future by lowering your cost basis, harvesting at a low marginal rate and paying the recaptured gain at a higher future rate can be a net negative. This is most relevant for medical residents, law firm associates, and others on steep career income trajectories.

Practical Execution: A Checklist

  1. Turn off automatic dividend reinvestment in your taxable account. Manual reinvestment gives you control over the wash sale window.
  2. Use specific identification (SpecID) for cost-basis tracking, not average cost. This lets you sell the highest-cost lots to maximize losses.
  3. Pre-select a TLH partner for each fund you hold. Your partner ETF should track a different index but maintain similar market exposure. Example pairs: VTI (CRSP US Total Market) / SCHB (Dow Jones US Broad); VXUS (FTSE Global All Cap ex US) / IXUS (MSCI ACWI ex USA); VWO (FTSE Emerging Markets) / IEMG (MSCI Emerging Markets).
  4. Wait until the loss is meaningful. A $50 loss isn't worth the tax-form complexity. Many advisors use a threshold of $500–$1,000 or a 5% decline.
  5. Check the 30-day windows. Confirm no purchases of the security you're selling occurred in the prior 30 days, and commit to not buying it for 30 days after.
  6. Execute the sale and the purchase on the same day to minimize tracking error. Sell the losing position first, then immediately buy the partner ETF.
  7. Consider switching back after 31 days if you prefer your original holding and it hasn't appreciated significantly in the interim.

How TLH Appears on Your Tax Return

Your brokerage will issue Form 1099-B listing all sales with proceeds and cost basis. Short-term and long-term transactions are reported separately. Schedule D of Form 1040 aggregates these into net short-term and long-term gains or losses. The $3,000 limit on offsetting ordinary income is applied on line 7 of Schedule D, and any excess carryforward appears on the Capital Loss Carryover Worksheet.

If you harvested losses that year, your Schedule D will show net losses, and line 7 of your Form 1040 will reflect up to $3,000 of negative adjustment to your total income. The remaining carryforward quietly reduces taxable income in future years until exhausted.

Key Takeaway

Tax-loss harvesting is one of the few genuine free lunches in investing—not because the IRS is generous, but because the tax code's realization-based system gives you control over timing. You don't need a bear market to benefit. You don't need a complicated strategy. You need a taxable account, a willingness to monitor a few positions, and a partner ETF swap list. The tax savings compound, year after year, and the only cost is a few minutes of attention during market dips.

Related Reading