Tax-Loss Harvesting for Tech Employees
Tech employees hold more volatile, concentrated single-stock positions than almost any other profession. RSUs vest at whatever price the stock trades that day. ESPP shares bought at a 15% discount can still end up underwater after a bad quarter. Multiple lots with different cost bases accumulate across years of vesting. That's exactly the environment where tax-loss harvesting works — or, when done carelessly, where a critical wash sale trap bites you.
How tax-loss harvesting works
When you sell a position for less than your cost basis, you realize a capital loss. That loss can:
- Offset capital gains dollar-for-dollar. You sold vested RSUs last month and owe $40K in short-term gains? A $40K harvested loss wipes it out.
- Offset ordinary income up to $3,000/year (IRC §1211). Losses beyond that carry forward indefinitely and can be used in future years.
- Lower your effective tax rate on future gains if you rebuild exposure through a similar-but-not-identical position.
At a 37% ordinary income rate + 2.35% Additional Medicare Tax, a $50,000 short-term gain costs ~$19,700 in federal tax. Harvesting $50,000 in losses offsets that entirely — and you stay invested in the same sector by rotating into a similar ETF. That's $19,700 recovered without leaving the market.
2026 capital gains rates: why the rate matters for your harvest
Losses offset gains at the same rate they'd otherwise be taxed. Short-term losses (held under 12 months) offset short-term gains first; long-term losses offset long-term gains first. The IRS nets them after matching.
| Holding period | Rate | Single filer threshold | MFJ threshold |
|---|---|---|---|
| Under 12 months (STCG) | Ordinary income (up to 37%) | — | — |
| 12+ months (LTCG) — 0% | 0% | Up to $49,450 | Up to $98,900 |
| 12+ months (LTCG) — 15% | 15% | $49,450 – $545,500 | $98,900 – $613,700 |
| 12+ months (LTCG) — 20% | 20% | Above $545,500 | Above $613,700 |
| Net Investment Income Tax | +3.8% | Above $200,000 MAGI | Above $250,000 MAGI |
Source: IRS Rev. Proc. 2025-32 (2026 inflation adjustments); NIIT under IRC §1411.
At $300K total comp in California, most RSU gains are STCG taxed at 37% federal + 13.3% CA = 50.3% combined. A dollar of harvested loss is worth 50 cents. That makes harvesting extremely valuable for STCG-heavy positions.
The RSU wash sale trap — the most common mistake
Here's the scenario that catches tech employees every year:
- You hold 500 shares of employer stock from a vest 18 months ago, currently trading 30% below that vest price. You decide to harvest the $30K loss by selling in November.
- Your next RSU vest happens December 10 — 20 days after the sale.
- Wash sale triggered. The IRS treats newly vested RSU shares as a purchase of substantially identical stock. Since the vest happened within 30 days after your sale, the $30K loss is disallowed under IRC §1091.
You cannot buy or acquire substantially identical shares 30 days before or 30 days after the loss sale (a 61-day window total). RSU vesting counts as an acquisition — you don't choose it, but the IRS doesn't care. Any vest inside the window disallows the loss on a proportional basis.
How to avoid the RSU wash sale trap
- Map your vest schedule before selling. If a vest falls within 30 days after your planned sale date, either wait until 31+ days after the vest, or harvest a different lot.
- Sell lots that won't have a near-term vest collision. If you have multiple years of RSU lots, choose ones where no upcoming vest falls in the window.
- Consider stopping automatic DRIP or scheduled purchases in the window if you hold employer stock in a brokerage account (rare for RSUs but relevant for ESPP holders who reinvest dividends).
- Watch your 401k or ESPP as well. If your company ESPP enrollment date or purchase falls in the window, that can trigger a wash sale on company stock sold at a loss.
Lot selection: specific identification vs FIFO
Each RSU vest creates a separate tax lot. A vest from 3 years ago at $180/share is a different lot than a vest from last year at $140/share. The current price ($110/share in this example) means both lots are at a loss — but the older lot has a larger loss per share.
To maximize the harvest:
- Tell your broker you want to use specific identification of shares when selling (default is usually FIFO, which may not give you the optimal lot).
- Identify lots with the highest cost basis (largest loss per share) that don't have an upcoming vest collision in the 61-day window.
- Document the selection before the sale — some brokers require advance identification, not post-hoc.
ESPP lots: two wrinkles
ESPP shares have two unique issues for TLH:
- Qualifying vs disqualifying dispositions. Selling ESPP shares less than 2 years from the offering date or 1 year from the purchase date is a disqualifying disposition and may convert some gain from capital to ordinary income. If your ESPP lot is already at a loss, the qualifying/disqualifying distinction usually matters less — but verify with your broker before selling.
- Cost basis tracking. ESPP cost basis can be reported incorrectly on your 1099-B because brokers sometimes report the purchase price but not the ordinary income component already recognized at purchase. If you sell at a "gain" per the 1099 but already recognized ordinary income at purchase, you may owe less than the form suggests — or vice versa. Keep your own records.
Replacement securities: staying invested without triggering wash sale
TLH only makes sense if you stay invested — otherwise you've locked in a loss and missed a potential recovery. The key is to sell the losing position and immediately buy something similar but not substantially identical.
| What you sold | Acceptable replacement (not identical) | Not acceptable (too similar) |
|---|---|---|
| Single tech company stock (employer) | Broad tech ETF (QQQ, VGT, XLK), or S&P 500 ETF | The same company's stock, or a single-stock ETF on that same company |
| S&P 500 index fund (e.g., VOO) | A different S&P 500 fund from a different provider (e.g., SPDR SPY) — debated, proceed with caution; prefer total market fund (VTI) | The identical fund at a different broker |
| Total stock market ETF (VTI) | S&P 500 ETF (VOO) or international developed ETF for 30+ days | VTSMX (the mutual fund equivalent of VTI) |
For employer stock specifically: you cannot buy back the same company's stock within 30 days. But you can immediately buy a broad tech sector ETF like VGT or XLK and maintain similar sector exposure while the 30-day window passes.
Pairing TLH with Roth conversions
If you have a gap year (layoff, sabbatical, career transition) with lower income, TLH and Roth conversions can work together:
- Harvest losses from appreciated-then-declined equity positions to offset any gains.
- Use the reduced taxable income year to convert pre-tax 401(k) or IRA dollars to Roth at a lower bracket.
- The $3,000 ordinary income offset from excess losses directly reduces the amount of conversion income taxed at the highest bracket.
See the layoff financial planning guide for the full Roth conversion opportunity in gap years.
When NOT to harvest a loss
- The position is in a tax-advantaged account. Losses inside a 401(k), IRA, or Roth IRA cannot be harvested — they're tax-sheltered already and no deduction applies.
- Transaction costs exceed tax savings. Rare with commission-free brokers, but worth checking for thinly traded positions.
- You plan to donate the shares to charity. Donating appreciated stock avoids capital gains entirely; donating shares at a loss is less efficient than selling for the loss first and donating cash. See the DAF guide for the donation strategy.
- The loss is small and you're in a low bracket. At the 0% LTCG rate, harvesting long-term losses saves nothing on current-year gains — though it can still shelter future higher-rate gains if carried forward.
- You're about to have a large vest that will trigger a wash sale anyway. If a vest is unavoidable within 30 days, defer the harvest until 31+ days after the vest instead of generating a disallowed loss.
Year-end checklist
Most TLH happens in November–December, but opportunities arise year-round after sharp drops. A practical checklist:
- Pull your lot-level unrealized gain/loss report from your brokerage (Fidelity NetBenefits, Schwab, E*Trade, etc.).
- Map upcoming RSU vests (check your equity admin portal: Carta, Solium/Shareworks, Morgan Stanley, etc.).
- Identify lots with losses that have no vest collision in the 61-day window.
- Decide on a replacement security before you sell so you can buy immediately after.
- Execute the sale with specific identification selected.
- Buy the replacement immediately (same day, even same minute is fine — the wash sale clock resets from the sale date, not the buy date).
- Set a calendar reminder for 31 days out to evaluate rotating back if desired.
- Track the harvested loss for Form 8949 / Schedule D at tax time.
What an advisor does here
TLH sounds mechanical, but the optimal execution requires coordinating your vest schedule, lot selection, brokerage mechanics, replacement security choice, Roth conversion opportunity, and state tax treatment (California taxes capital gains as ordinary income; Washington has a 7% capital gains income tax on net LTCG above $278K4). Most tech employees do one piece and miss another. An advisor who works with tech compensation runs the full optimization across your equity comp, state tax situation, and retirement accounts simultaneously.
Get matched with a financial advisor who works with tech employees
Tell us where you are. We'll match you with a fee-only advisor who works with tech employees at your comp level and can run the full TLH + equity optimization.