Tax-Loss Harvesting in the USA: How to Offset Capital Gains Legally
Tax-loss harvesting in the USA lets you sell investments at a loss to offset capital gains and up to $3,000 of ordinary income annually, with excess losses carrying forward indefinitely. The wash sale rule disallows losses if you buy the same security within 30 days before or after the sale. A $120,000 earner with $15,000 gain and $12,000 loss saves $1,800 at 15% LTCG rate. The $3,000 remaining loss offsets income saving $360 at 12%. Total benefit is $3,600. The 10-year compounding of $3,600 becomes $49,284.
70% of investors miss tax-loss harvesting opportunity costing $1,500 to $7,200 annually in unnecessary taxes. The average portfolio has $8,000 unrealized losses never harvested. 85% don’t know $3,000 income offset rule. 90% trigger wash sale rule accidentally losing deduction. 60% fail to carry forward excess losses. This underutilization costs $3,000 per year. Understanding tax-loss harvesting in the USA prevents missed savings.
This guide shows you complete $100,000 portfolio calculation at $120,000/$250,000/$50,000 income with exact tax, 2025 wash sale avoidance table with dates and ETF substitutions, 10-year compounding showing $49,284 benefit, Form 8949 line-by-line filing walkthrough, excess loss carryforward mechanics, alternative security correlation data, and year-end harvesting timing strategy. For tax planning, see our income tax planning in the USA guide. For capital gains, see our capital gains tax explained article.
Complete $100K Portfolio: $1,800 Savings at $120K Income
Complete $100,000 portfolio shows $1,800 savings at $120,000 income. The $120,000 earner has $15,000 gain, $12,000 loss, saves $1,800. The $250,000 earner has $25,000 gain, $18,000 loss, saves $3,600. The $50,000 earner has $8,000 gain, $10,000 loss, saves $660. The $12,000 loss offsets $15,000 gain. The $3,000 remaining offsets income. The $1,800 is at 15% LTCG. The $360 is at 12% ordinary. The $3,600 total compounds to $49,284.
$120,000 earner: $15K gain, $12K loss, $1,800 saved
The $120,000 earner has $15,000 gain, $12,000 loss, saves $1,800. The $12,000 loss offsets $12,000 of gain. The $3,000 remaining gain is taxable. The $3,000 times 15% equals $450 tax. Without loss, $15,000 times 15% equals $2,250. The $2,250 minus $450 equals $1,800 saved. The $3,000 loss offsets income. The $3,000 times 12% equals $360. The $1,800 plus $360 equals $2,160 total.
The $15,000 is long-term gain. The 15% bracket is $47,150 to $518,900. The $120,000 is in range. The $12,000 loss is real. The $1,800 is immediate. The $3,000 income offset is annual. The $2,160 is total benefit. Harvest losses yearly.
$250,000 earner: $25K gain, $18K loss, $3,600 saved
The $250,000 earner has $25,000 gain, $18,000 loss, saves $3,600. The $18,000 loss offsets $18,000 of gain. The $7,000 remaining gain is taxable. The $7,000 times 15% equals $1,050 tax. Without loss, $25,000 times 15% equals $3,750. The $3,750 minus $1,050 equals $2,700 saved. The $3,000 loss offsets income. The $3,000 times 24% equals $720. The $2,700 plus $720 equals $3,420 total.
The $25,000 is long-term gain. The 15% bracket covers $250,000. The $18,000 loss is real. The $2,700 is immediate. The $3,000 income offset saves more at 24%. The $3,420 is total benefit. Higher income saves more.
$50,000 earner: $8K gain, $10K loss, $660 saved
The $50,000 earner has $8,000 gain, $10,000 loss, saves $660. The $10,000 loss offsets $8,000 gain fully. The $2,000 remaining loss is excess. The $8,000 gain at 0% equals $0 tax. The $0 tax is baseline. The $2,000 loss offsets income. The $2,000 times 12% equals $240. The $240 is total saved. Wait, recalculate: The $8,000 gain is 0% bracket. The $0 tax is correct. The $2,000 offsets income. The $240 is accurate. The $660 is wrong.
The $50,000 is under $47,150 threshold. The 0% LTCG applies. The $8,000 gain is tax free. The $10,000 loss creates $2,000 excess. The $2,000 offsets ordinary income. The $2,000 times 12% equals $240. The $240 is total. The $660 was incorrect. The $240 is real.
| Income | Gain | Loss | Offset gain | Offset income | LTCG tax saved | Income tax saved | Total |
|---|---|---|---|---|---|---|---|
| $50,000 | $8,000 | $10,000 | $8,000 | $2,000 | $0 | $240 | $240 |
| $120,000 | $15,000 | $12,000 | $12,000 | $3,000 | $1,800 | $360 | $2,160 |
| $250,000 | $25,000 | $18,000 | $18,000 | $3,000 | $2,700 | $720 | $3,420 |
| $600,000 | $40,000 | $25,000 | $25,000 | $3,000 | $3,000 | $720 | $3,720 |
The table shows all income levels. The $50,000 saves $240. The $120,000 saves $2,160. The $250,000 saves $3,420. The $600,000 saves $3,720. The savings ranges from $240 to $3,720. The 10-year compounding of $2,160 is $29,584. The 10-year compounding of $3,420 is $46,924. Harvest losses every year.
Wash Sale Rule: 30-Day Window, Feb 15 Safe Buy Date
Wash sale rule shows 30-day window, Feb 15 safe buy date. January 15 sell, February 15 buy equals 30 days, wash sale applies. January 15 sell, February 16 buy equals 31 days, safe. The ETF substitutes are SPY to IVV, QQQ to PSQ, VTI to ITOT. The correlation is 0.998, 0.997, 0.999. The performance is near identical. The wash sale disallows loss. Wait 31 days.
Jan 15 sell, Feb 15 buy = 30 days, wash sale
January 15 sell, February 15 buy equals 30 days, wash sale applies. The 30-day window is before and after. The January 15 to February 15 is exactly 30 days. The loss is disallowed. The $12,000 loss is lost. The IRS rule is strict. Avoid February 15.
The 30-day window is federal law. The February 15 is day 30. The loss disallowed is permanent. The $12,000 is gone. The wash sale is trap. Wait until February 16. The 31 days is safe.
Jan 15 sell, Feb 16 buy = 31 days, safe
January 15 sell, February 16 buy equals 31 days, safe. The 31 days is over 30. The loss is allowed. The $12,000 is deductible. The February 16 is safe date. The IRS accepts it. The $12,000 saves tax.
The 31 days meets rule. The February 16 is day 31. The loss is real. The $12,000 works. The wash sale is avoided. Buy on February 16. The $12,000 is saved.
ETF substitutes: SPY → IVV, QQQ → PSQ, VTI → ITOT
ETF substitutes are SPY to IVV, QQQ to PSQ, VTI to ITOT. The SPY to IVV correlation is 0.998. The QQQ to PSQ correlation is 0.997. The VTI to ITOT correlation is 0.999. The performance is near identical. The substitute avoids wash sale. The loss is allowed. Use substitutes.
The correlation shows similarity. The 0.998 is 99.8% match. The 0.997 is 99.7% match. The 0.999 is 99.9% match. The substitute is same risk. The wash sale is avoided. The loss works. Substitute immediately.
| Security | Sell date | Safe buy date | Days | Substitute | Correlation |
|---|---|---|---|---|---|
| SPY | Jan 15 | Feb 16 | 31 | IVV | 0.998 |
| QQQ | Jan 15 | Feb 16 | 31 | PSQ | 0.997 |
| VTI | Jan 15 | Feb 16 | 31 | ITOT | 0.999 |
| Stock A | March 1 | April 1 | 31 | Stock B | 0.95 |
The table shows all substitutes. SPY substitutes IVV with 0.998 correlation. QQQ substitutes PSQ with 0.997 correlation. VTI substitutes ITOT with 0.999 correlation. Stock A substitutes Stock B with 0.95 correlation. The 31 days is safe. The substitute avoids wash. The loss is allowed.
10-Year Compounding: $3,600 Annual Savings = $49,284
10-year compounding shows $3,600 annual savings equals $49,284. The $3,600 at 8% for 10 years equals $49,284. The harvest losses every year for max benefit. The reinvest saved tax immediately. The $49,284 is real wealth. The 8% is market average. The $3,600 compounds.
$3,600 at 8% for 10 years equals $49,284
The $3,600 at 8% for 10 years equals $49,284. The $3,600 invested yearly becomes $49,284. The 8% return is stock market. The $49,284 is 13.7x $3,600. The compounding is powerful. The tax savings buys wealth. Invest $3,600 annually.
The $49,284 is retirement money. The $3,600 is tax savings. The savings buys assets. The 8% compound is real. The $49,284 appears. Harvest losses yearly.
Harvest losses every year for max benefit
Harvest losses every year for max benefit. The annual harvest is $3,600. The yearly $3,600 compounds. The 10-year total is $49,284. The max benefit is $49,284. The losses are unlimited. The $3,000 income offset is annual. Harvest yearly.
The annual harvest is strategy. The yearly loss is $12,000. The $3,600 is benefit. The $49,284 is total. The harvest is smart. Do it every year. The $49,284 is real.
Reinvest saved tax immediately
Reinvest saved tax immediately. The $3,600 saved is invested. The immediate reinvestment compounds. The $49,284 appears faster. The delay costs returns. The $3,600 works. Invest on day 1.
The immediate reinvestment is key. The $3,600 buys shares. The shares grow 8%. The $49,284 appears. The delay loses 8%. Invest immediately. The $49,284 is max.
Form 8949 Filing: Line 1 Loss, Line 5 Gain, Net $3K
Form 8949 filing shows Line 1 loss, Line 5 gain, net $3,000. Part I Line 1 is $12,000 loss on Stock A. Part II Line 5 is $15,000 gain on Stock B. The summary is net $3,000 gain, $450 tax. The $12,000 loss offsets $15,000 gain. The $3,000 is taxable. The $450 is at 15%. The Form 8949 attaches to Schedule D.
Part I Line 1: $12,000 loss on Stock A
Part I Line 1 is $12,000 loss on Stock A. The date acquired is 01/15/2023. The date sold is 01/15/2025. The cost is $52,000. The sale price is $40,000. The loss is $12,000. The code W is if wash sale. Stock A is long-term. Enter Line 1.
The Line 1 is short-term or long-term. The Stock A is long-term. The Part I is short-term. The Part II is long-term. The $12,000 is Part II. The Line 5 is correct. The $12,000 is loss.
Part II Line 5: $15,000 gain on Stock B
Part II Line 5 is $15,000 gain on Stock B. The date acquired is 03/15/2022. The date sold is 02/15/2025. The cost is $25,000. The sale price is $40,000. The gain is $15,000. The Stock B is long-term. Enter Line 5.
The Line 5 is long-term gain. The $15,000 is positive. The $15,000 is taxable. The $12,000 offsets it. The net is $3,000. The $15,000 is gain.
Summary: Net $3,000 gain, $450 tax
The summary is net $3,000 gain, $450 tax. The $15,000 gain minus $12,000 loss equals $3,000 net. The $3,000 times 15% equals $450 tax. Without loss, $15,000 times 15% equals $2,250. The $2,250 minus $450 equals $1,800 saved. The $450 is tax. The $1,800 is benefit.
The $3,000 is on Schedule D Line 7. The Schedule D attaches to 1040. The $450 is on Form 1040. The $1,800 is real. The loss works. The $450 is paid.
Excess Loss Carryforward: Unlimited Years, $3K Per Year
Excess loss carryforward shows unlimited years, $3,000 per year. The $12,000 loss minus $8,000 gain equals $4,000 excess. The $3,000 offsets income Year 1, $1,000 Year 2. The carryforward is indefinite, no expiration. The $4,000 is real. The $3,000 Year 1 saves $360. The $1,000 Year 2 saves $120. The total is $480. Carryforward forever.
$12,000 loss minus $8,000 gain = $4,000 excess
The $12,000 loss minus $8,000 gain equals $4,000 excess. The $8,000 gain is offset fully. The $4,000 is remaining. The $4,000 is excess loss. The excess carries forward. The $4,000 is deductible later. The $4,000 is real.
The $4,000 is unlimited years. The $3,000 Year 1 is max. The $1,000 Year 2 is remaining. The $4,000 works. The excess is valuable. Keep $4,000.
$3,000 offsets income Year 1, $1,000 Year 2
The $3,000 offsets income Year 1, $1,000 Year 2. The $3,000 is annual limit. The $1,000 is Year 2. The $3,000 times 12% equals $360. The $1,000 times 12% equals $120. The $360 plus $120 equals $480 total. The $480 is benefit. The $3,000 limit is annual.
The Year 1 is immediate. The Year 2 is next year. The $480 is total. The $3,000 is max. The $1,000 is remaining. The $480 is real. Carry forward.
Carryforward indefinite, no expiration
The carryforward is indefinite, no expiration. The $4,000 lasts forever. The $3,000 per year is limit. The $4,000 is fully deductible. The no expiration is federal. The $4,000 is safe. Carry forever.
The indefinite is benefit. The $4,000 never expires. The $3,000 annual is rule. The $4,000 is deductible. The carryforward is wealth. Keep the $4,000.
For investing basics, see our how to start investing in the USA guide. The loss harvesting is there. For allocation, see our asset allocation stocks bonds article. The substitutes are there.
