Tax-Loss Harvesting
"Every paper loss in your brokerage is an unclaimed tax refund. Sell it, repurchase a similar-but-not-identical asset, and pocket up to $23,800 per $100K of loss harvested."
The 60-second pitch
You bought VTI at $250. It's at $210 now. You're holding a paper loss of $40 a share — but the IRS doesn't see it until you sell. Tax-loss harvesting is the act of crystallizing that loss on December 30th, claiming it on your return, and immediately buying a substantially-similar fund (say, ITOT or SCHB) so your market exposure doesn't change.
Harvested losses do three things, in order. First, they offset capital gains you realized this year — short-term gains first (taxed at ordinary rates up to 37%), then long-term gains (up to 23.8% with NIIT). Second, leftover losses up to $3,000 offset ordinary income (W-2, business profit, interest). Third, anything beyond $3,000 carries forward indefinitely under §1212(b) — until you die. It never expires.
The one rule you cannot break: the wash sale rule of §1091. If you buy back a "substantially identical" security within 30 days before or after the sale, the loss is disallowed and added to the new lot's basis. The trick is to swap into a similar fund from a different index family — and wait at least 31 days before going back.
This is the simplest, lowest-risk, highest-frequency strategy in the entire high-earner playbook. Robo-advisors charge 25 bps for it. You can do it yourself on December 28 in twenty minutes.
Real-world example
The setup. Marcus's taxable brokerage holds positions he accumulated during the 2021–2022 zero-rate era. By December 2025, he's sitting on $50,000 of unrealized losses spread across ARKK, a couple of beat-up biotechs, and a chunk of QQQ he bought at the November 2021 top. He also sold $50K of long-held S&P 500 winners earlier in the year — $50K of long-term capital gain sitting on his Schedule D.
The harvest. On December 29, Marcus sells every losing lot for $50K in realized losses. Same day, he rotates: ARKK → ARKW (different fund, same theme), QQQ → SCHG (different index, large-cap growth), the biotechs → XBI (sector ETF, not a wash sale because XBI is not the individual stock).
The math. The $50K loss offsets the $50K of long-term gain dollar-for-dollar. His Schedule D net = $0. The gain he would have paid 20% federal + 3.8% NIIT + 6.2% state on (Marcus is in NY) — 23.8% federal + 6.2% state = 30% — is gone. Tax saved: $50K × 30% = $15,000. He waits 31 days, then on January 30, 2026, he sells ARKW back into ARKK if he wants the original position. Or he stays in the swap. Market exposure unchanged the whole time.
The encore. If his losses had been $70K instead of $50K, the extra $20K would have gone: $3K against his W-2 ordinary income (saving ~$1,110 at 37%), and the remaining $17K carries to 2026 to use against next year's RSU vest gains. Free money in the freezer.
The step-by-step checklist
- Pull a year-end unrealized gain/loss report from your brokerage (Fidelity, Schwab, Vanguard, IBKR all have one). Sort by loss size. These are your candidates.
- Identify your realized gains so far this year. Login → tax docs → realized gain/loss YTD. This is the bucket you're trying to drain to zero.
- Pre-pick the swap-in security for every lot you'll harvest. Wash sale is the only thing that kills this strategy — never sell without knowing what you're buying same-day.
- Avoid "substantially identical." The IRS has not defined this precisely. Safe swaps: VTI → ITOT or SCHB. VOO → SPLG or IVV (caution — IVV and VOO both track S&P 500, debated). Individual stock → sector ETF. Never: VOO → SPY (both S&P 500 trackers).
- Execute on December 29 or 30. Trades settle T+1 — December 31 is too late, the trade won't book to the right tax year. Use limit orders to avoid bad fills during thin holiday volume.
- Net short-term losses against short-term gains first, then long-term against long-term. §1212(b) does this automatically on Schedule D, but understanding the order helps you target the right lots. Short-term losses are worth more (offset ordinary-rate gains).
- Claim $3,000 against ordinary income on Form 1040 Line 7. If MFJ filing separately, only $1,500 each.
- Track the carryover on Schedule D Line 21 and Form 1040, Schedule D Carryover Worksheet. It rolls year-to-year. Most tax software does this automatically — verify the carryover line on your prior-year return imports correctly.
- Wait 31 calendar days before rotating back to the original security if you want to. The 30-day window is before AND after the sale — so if you bought the security on December 5 and sold on December 29, the December 5 buy already triggered a wash sale on part of the lot.
- Check spouse's accounts and your IRAs. Wash sale rule applies to your IRA too (Rev. Rul. 2008-5) — if your IRA buys the same security within 30 days, the loss in the taxable account is permanently disallowed (basis adjustment is impossible inside the IRA — gone forever). Same-household trap.
- Document. Save the trade confirmations, the unrealized P&L screenshot, and the swap-in pairs in a spreadsheet. If audited, you want to show this wasn't a casual swap.
- Repeat every December. And mid-year if you have a big drawdown — losses can be harvested any day the market gives them to you. February 2020 was a tax-loss-harvesting bonanza.
IRS code & authority
- IRC §1211(b) Capital losses of individuals — losses allowed up to gains plus $3,000 ($1,500 MFS) of ordinary income.
- IRC §1212(b) Capital loss carryovers — net losses beyond the $3K limit carry forward indefinitely, retaining their short-term vs. long-term character.
- IRC §1091 Wash sales — loss disallowed if "substantially identical" stock or securities are acquired within 30 days before or after the sale. Disallowed loss is added to the new lot's basis (§1091(d)) so it's deferred, not lost — except in retirement accounts.
- Rev. Rul. 2008-5 Wash sale rules apply when the replacement security is bought inside the taxpayer's IRA. The loss is permanently lost because IRA basis adjustment is unworkable.
- IRC §1411 Net Investment Income Tax — 3.8% on net investment income above $250K MFJ / $200K single. Harvested losses reduce net investment income too, multiplying the savings.
- Reg §1.1012-1(c) Specific identification of lot — required if you want to choose which tax lots to sell. Default is FIFO. Set your account to "specific lot" or "highest-cost lot" defaults.
- §1233 Short sales — using short-against-the-box or constructive sales (§1259) to harvest does NOT work post-1997. Don't try to play games.
Audit risk flags
- Wash sale violations. Brokers issue 1099-B with wash sales flagged within a single account, but they do not see cross-broker, cross-spouse, or IRA wash sales. The IRS gets the 1099 but can match across — and disallowed losses turn into ugly notices two years later. Defense: Track all accounts (you, spouse, IRAs) in one spreadsheet for the 60-day window around any harvest.
- "Substantially identical" gray zone. Two S&P 500 ETFs from different issuers (VOO vs. SPY vs. IVV) are arguably substantially identical even though they're different securities. Defense: Swap across index families — S&P 500 → total market, or large-cap → large-cap-growth. Different underlying index = clean swap.
- Specific lot mismatch. If your broker defaulted to FIFO and you sold lots you didn't mean to (e.g., a long-term winner instead of a short-term loser), the harvest could turn into a realized gain. Defense: Set "specific lot" or "tax-loss optimizer" as your account default, and verify each sell.
- Realized + carryover larger than gains. You can only deduct $3K/yr of ordinary income beyond gains. If you harvest $200K of losses with only $20K of gains, you're sitting on $177K of carryover that may take 60 years to drain. Defense: Don't over-harvest. Pair losses to realized + projected near-term gains.
- The "loss sale to a related party" trap. §267 disallows loss sales between you and certain related parties (spouse, controlled entity, family trust). Not a typical harvest issue but matters for stock-in-trade between spouses' separate accounts. Defense: Don't sell to your spouse to harvest.
- State conformity. Most states conform to federal capital gains, but a few (CA, NJ) have quirks on carryforward. Pennsylvania doesn't allow capital loss carryover at all for state purposes (only against same-year gains). Defense: Confirm your state rule before claiming carryover.
When NOT to do this
- You're in the 0% long-term capital gains bracket (under $47K single / $94K MFJ 2024 taxable income). Your gain rate is zero. Don't harvest losses — instead, do tax-gain harvesting (sell winners and rebuy to step up basis).
- You'll donate the appreciated lot to charity. Donating appreciated stock erases the gain entirely — no harvest needed, you get the FMV deduction.
- The position will be a winner long-term and the basis you reset to will be lower. Harvesting locks in today's lower basis. If the security 10x's, you've increased the gain at exit. (Still usually worth it for the time-value-of-money, but acknowledge the trade-off.)
- You're approaching estate planning age. At death, basis steps up to fair market value under §1014. Harvesting reduces basis (when you rebuy lower) and eliminates the future step-up benefit. For very wealthy older clients, sometimes don't harvest.
- Trade costs > tax savings. Tiny portfolio with high commissions or wide bid-ask spreads. Not an issue with zero-commission brokers today, but verify for international ETFs and individual small-caps.
- The harvest would tip you into AMT or NIIT bands in a weird way. Rare, but check projections — sometimes harvesting a short-term loss when you have only long-term gains creates a disadvantageous netting outcome.
Stop leaving losses on the table
PilePilot tracks your taxable brokerage realized + unrealized P&L, flags wash sale risks across accounts (including IRAs), and tells you in late December exactly which lots to sell and what to buy as the replacement. Built for small businesses who runs this for clients every year.
Start your free trial →No credit card. Your data is private and isolated — export or delete it anytime.
Disclaimer. Educational, not tax advice. The wash sale rule has facts-and-circumstances tests around "substantially identical," and cross-account wash sales can be hard to track without help. Before harvesting losses near year-end, confirm with your tax professional. Dollar examples are illustrative; actual savings depend on your bracket, state, and the specific lots harvested.