Why $250K–$1M Changes the Equation

Below $250K, tax-loss harvesting is mostly a feel-good exercise: a $1,500 loss at $200 average cost is nice, but the trade friction and tracking overhead produce diminishing returns. Above $1M, you're almost certainly running direct indexing or paying an advisor to harvest for you — the strategy is settled, the human is in the loop.

The $250K–$1M band is where TLH math gets genuinely meaningful and where the decisions start to compound:

  • Your realized gains are real money. At the upper end of this range, annual realized long-term gains regularly hit $20K–$60K. A $20K loss harvest at the 20% LTCG federal bracket wipes $4,000 off your tax bill — a number a small-business owner would notice.
  • You're likely above the 0% LTCG bracket but not yet in the 37% federal bracket. Your marginal federal LTCG is usually 15% or 20%, and your ordinary income bracket is 24%, 32%, or 35%. That shapes which losses to prioritize (short-term losses that hit higher ordinary rates tend to be more valuable per dollar).
  • Direct indexing becomes reachable. Several providers now offer direct-indexed TLH products at $250K minimums, sometimes lower. At $500K+, the math frequently justifies the 0.20–0.40% AUM fee.
  • Wash sale risks scale. At $500K in three brokerage accounts, two IRAs, and a spouse's separate taxable account, accidentally buying "substantially identical" inside one of those accounts inside 30 days becomes a non-trivial probability.

If you're new to the mechanics of TLH — what a wash sale even is, what counts as "substantially identical," how carryforwards work — read our beginner's guide explained in plain English first. This article assumes those mechanics are familiar and focuses on the strategic layer.

The TLH Mechanics — Quickly

For readers running long on context and short on time, here is the operational summary before we walk through the $500K example:

  1. Scan every position in your taxable accounts for unrealized losses above your harvest threshold (typically $500–$2,500 at this portfolio scale — small harvests aren't worth the wash sale calendar).
  2. Sell the loser and realize the loss on paper. The trade settles T+1; the loss is now a Schedule D entry.
  3. Immediately buy a correlated but distinct replacement. VOO → IVV. QQQ → QQQM. VTI → ITOT. The substitution must not be "substantially identical" — ETFs from different issuers tracking the same index qualify under current practitioner consensus.
  4. Sit on the original ticker for 31 days. Avoid DRIP across every account you control. Coordinate with your spouse.
  5. Report on Schedule D. The loss first offsets same-character gains (short-term → short-term, long-term → long-term), then cross-character gains, then up to $3,000 per year of ordinary income, then carries forward indefinitely.

Each harvest event costs roughly five minutes. The hard part — and what separates amateurs from people who actually capture this alpha — is scanning continuously and acting while the position is still down.

Worked Example: $500K Portfolio, $25,700 in Losses

Let's put concrete numbers on it. Suppose you hold a $500,000 taxable brokerage portfolio, and an October correction puts two positions below your cost basis. Your realized positions for the year so far: a $20,000 long-term capital gain from selling NVDA in May.

Worked Example: $500K Portfolio

Portfolio value: $500,000 (taxable).

Long-term capital gain realized earlier in the year: $20,000 (from selling NVDA).

Federal marginal ordinary bracket: 32%.

Federal long-term capital gains rate: 20% (top of the 15%→20% boundary).

Two losing positions harvested in October:

— VOO: cost basis $130,000 → sold at $115,800 → $14,200 long-term loss

— QQQ: cost basis $80,000 → sold at $68,500 → $11,500 long-term loss

Total harvestable losses recognized: $25,700.

Here's how that $25,700 flows through your return, netting rules and all:

The Tax Benefit, Step by Step

Step 1 — Net the $25,700 loss against the $20,000 long-term gain.

Long-term losses cancel long-term gains first (IRS netting order).

$25,700 harvested loss − $20,000 LTCG = $5,700 net long-term loss remaining.

Tax on the original $20,000 gain at 20% would have been $4,000. After offsetting it's $0.

New LTCG tax saved: $4,000.

Step 2 — Apply $3,000 against ordinary income.

After netting both gain buckets, up to $3,000 of any remaining capital loss can offset ordinary income per year.

$3,000 × 32% marginal ordinary bracket = $960 in additional tax savings.

Step 3 — Carry $2,700 forward.

$5,700 remaining loss − $3,000 ordinary deduction = $2,700 carryforward.

That $2,700 rolls into next year's return (no expiry, indefinite carry).

Step 4 — Replacement buys keep you invested while substituting ETF issuers.

VOO replacement: IVV. QQQ replacement: QQQM. Same index exposure, not "substantially identical."

Net tax savings this year: $4,000 + $960 = $4,960. Plus $2,700 in carryforward.

The dollar figure in a year like this — a typical mid-correction scenario for a $500K portfolio — is roughly $4,000–$8,000 in federal tax savings, depending on how wide the loss harvest is and which bracket you're in. State tax can stack another 5–13% on top if you live in a state that taxes capital gains.

And the kicker: you did not leave the market. On the very same trading day you sold VOO, you bought IVV at the same price. Your portfolio is still 100% invested in the S&P 500 and the Nasdaq-100. The compounding curve is unchanged. The only thing that changed is the tax label on April 15.

Run this math on your own portfolio in 60 seconds

Connect your brokerage and WealthPilotOS scans every position in real time. No spreadsheet, no quarterly check, no missed dips.

Scan Your Portfolio Free →

ETF-Swap vs. Direct Indexing at This Size

At the $250K–$1M range, you have a real choice between two strategies. Each produces substantially different annual TLH alpha.

ETF-swap harvesting

You hold broad-index ETFs and swap between issuers when the position drops below your threshold. The pairings that work cleanly under current practitioner consensus:

Sell Buy Tracks
VOO IVV or SPLG S&P 500
QQQ QQQM or ONEQ Nasdaq-100
VTI ITOT or SCHB Total US Market
VEA IEFA or SCHF International Developed
BND AGG or SCHZ Total US Bond

Pros: Zero advisory fee. Two trades per harvest event. Works at any portfolio size. Easy to execute yourself.

Cons: You only harvest at the ETF level. If VOO contains 500 stocks and only 80 are down, you capture only the VOO-level loss — not the 80 individual stock-level losses inside it. In a year where VOO is up 9% but 200 of its 500 holdings are down, you have nothing to harvest.

Direct indexing

Instead of buying one S&P 500 ETF, you buy all 500 stocks individually (typically via a separately managed account or a robo-style product). You can then sell individual positions at a loss even when the index itself is up — and replace each with a "highly correlated substitute" the issuer has pre-cleared.

Direct Indexing Edge

The S&P 500 is up 8% on the year. Your VOO position is up. There are no ETF-level losses to harvest.

In a direct-indexed portfolio, you own all 500 names individually. ~180 of them are below cost basis.

You sell those 180 losers, buy slightly correlated substitutes, realize losses on each — and harvest several thousand dollars of TLH alpha inside a year the index is positive.

This is the structural alpha that historically made direct indexing worth $250K+ minimums and 0.30–0.40% AUM advisory fees.

The fee math at this portfolio scale is genuinely close. A 0.35% fee on a $500K portfolio is $1,750 per year. A typical direct-indexed TLH benefit at $500K is roughly $3,000–$6,000 per year. After fees, you're net positive — but only if you don't leave harvestable losses unharvested, which most self-managed DIY portfolios do. Tools like WealthPilotOS bring continuous ETF-swap scanning to the DIY side, which compresses the gap.

Wash Sale Pitfalls That Bite at $500K+

Below $100K, wash sale violations are mostly a paper-tracking error — annoying, fixable, rarely fatal at audit scale. At $500K+ with multiple accounts, wash sales start to come from places you wouldn't expect.

Wash Sale Traps at This Scale

❌ Selling VOO at a loss in your taxable account while dividend reinvestment (DRIP) in your IRA buys more VOO inside the 30-day window.

❌ Your spouse buying IVV 12 days after you sold VOO — IVV and VOO are not substantially identical, but your broker's reporting may still flag it; review carefully.

❌ A 401(k) holding an S&P 500 index fund auto-contributing to your employer plan inside the wash sale window. Most investors forget their 401(k) holds any index fund at all.

❌ Selling an individual stock at a loss while a "screening" service in your broker drills a replacement buy of a "highly similar" name inside 30 days.

❌ Tax-lot ordering issues: selling one lot at a gain and another at a loss inside the same wash sale window can have surprising wash sale interactions.

An operational checklist that works at this scale:

  • Turn off DRIP in every account you (or your spouse) control — taxable brokerage, IRA, Roth IRA, 401(k) — at least 31 days before any harvest.
  • List every account you and your spouse can trade in. Every single one.
  • Pre-pick your swap pairs so they're settled decisions, not improvisation during a dip.
  • Calendar the 31-day window per symbol in a tracker — a spreadsheet or a dedicated tool.
  • Review 1099-B in February. Brokers do report wash sales on 1099-B, but not always accurately. Cross-check.

The IRS has never formally defined "substantially identical" for ETFs. The practitioner consensus treats VOO↔IVV, QQQ↔QQQM, VTI↔ITOT swaps as safe. Run your swap pair past your CPA once, especially on individual-name replacements — that's where the consensus is thinnest.

When TLH Doesn't Help at $500K+

It's tempting to assume TLH is a default strategy at this portfolio size. It's not. Skip it when:

  • You're in the 0% LTCG bracket. If your taxable income is under ~$47,150 single or ~$94,300 married in 2026, federal long-term capital gains are already zero. TLH adds no federal benefit. (State benefit may still apply depending on where you live — California, New York, and a handful of others don't peg to federal.)
  • The losses are inside a tax-advantaged account. TLH only works in taxable brokerage accounts. Losses in your 401(k), traditional IRA, or Roth IRA generate zero current-year benefit.
  • The position is too small relative to the wash sale risk. At $500K, harvesting a $400 loss on a tiny position isn't worth the 31-day tracking. Most practitioners set the floor at $500–$1,500 at this size, sometimes higher once you coordinate across multiple accounts.
  • You'll accidentally trigger a wash sale through DRIP or a spouse's account and lose the entire benefit. The tracking cost is real.
  • You don't have a replacement security in mind. Selling the loser without immediately buying the substitute leaves you unhedged between executions. Have the swap pair ready.
  • You're concentrated in low-volatility assets. A 60/40 portfolio with a heavy BND allocation has fewer harvesting opportunities than a 90/10 portfolio — bond funds drift slowly, and the dip thresholds rarely trip.

A final, often-overlooked case: don't harvest a loss in the same year you're planning to do a Roth conversion. The losses offset your ordinary income from the conversion, but the conversion itself may push you into a higher bracket after the loss applies. Run the conversion/loss math together, not separately.

Common Mistakes for $250K–$1M Investors

1. Harvesting inside a 401(k) or IRA

Same rule as at any size, but at $500K+ the consequences scale: a $15,000 loss in your IRA is just lost alpha. There is no tax benefit because there is no realized gain inside the wrapper.

2. Ignoring carryforwards across multiple years

At $500K+ you'll frequently accumulate $5,000–$20,000 of carryforward loss per year in heavy correction years. Schedule D line 16 of your return shows your cumulative carryforward every April. Most investors glance at it once and forget. Track it over a 5-year horizon — a multi-year correction can stack up to a serious deduction.

3. Waiting for December

The single biggest dollar-value mistake in TLH is treating it as a year-end chore. A position might dip 14% in March and recover to a 2% loss by November. The professional approach is continuous scanning — alerts when a holding crosses your threshold, executed when the dip is fresh.

4. Forgetting state tax

Federal TLH math alone can frame the strategy. State tax layers on top: California adds 9.3–13.3%, New York up to 10.9%, Massachusetts 5%, and so on. The TLH math is state-dependent. The benefit can double in high-tax states.

5. Confusing TLH with tax-gain harvesting

TLH is about losses. Tax-gain harvesting — intentionally realizing long-term gains in low-income years to step up the cost basis — is a separate strategy with separate triggers. Mixing them leads to surprise tax bills. If you have a year with unusually low income (sabbatical, between jobs, early retirement), that's when gain harvesting is most useful — and TLH becomes mostly moot.

6. Confusing rebalancing with TLH

Rebalancing is a portfolio-construction discipline. TLH is a tax-discipline overlay. They overlap in execution (sell appreciated assets to bring target weights back) — but a rebalance sells winners and a TLH sells losers. Plan them together, not in isolation; otherwise you'll either lose the rebalance or lose the TLH benefit.

Operating TLH All Year, Not Just in December

At this portfolio scale, a December-only TLH scan is leaving several thousand dollars per year on the table. A workable year-round operating cadence:

  1. Connect every taxable account to a scanning tool that includes real-time price feeds. Excel-based cost basis tracking cannot keep pace with daily market moves.
  2. Set alerts at your threshold. $500? $1,000? $2,500? The right answer depends on your volume of trades and tracking tolerance — but pick a number and stick to it.
  3. Pre-stage your swap pairs. For each major position you hold, know what you would buy in its place if it dropped tomorrow. The trade takes 30 seconds once you know the pair.
  4. Keep a 31-day calendar per symbol. Use a spreadsheet, a calendar app, or a tool that handles this automatically. The cost of a missed calendar entry is the entire tax benefit.
  5. Reconcile against 1099-B in February. Verify wash sale codes, cost basis adjustments, and the realized loss totals match what you recorded.
  6. Track carryforward cumulatively across tax years. Don't let multi-year corrections produce carryforwards you're not aware of.

If any of that feels like bookkeeping overhead — it is. For most $500K investors, the savings justify a tool that automates the scan and surfaces opportunities as soon as they cross threshold, while leaving the trade execution in your hands. Real-time scanning eliminates the December-only timing trap and pays for itself within a single harvest event.