Tax-Loss Harvesting

Tax StrategyDifficulty: ████

Selling losers to offset gains. $3,000 annual deduction against ordinary income. Wash sale rule (30 days). Automated harvesting services.

Interactive Visualization

t=0s

Holding losers can secretly cost you real dollars each year. A $10,000 unrealized loss can convert to a $3,000 annual ordinary-income offset and multi-year carryforwards if managed correctly.

TL;DR: **Tax-Loss Harvesting** is selling investments at a loss to realize tax benefits now, which can reduce taxes by roughly loss × marginal tax rate today and provide a $3,000 ordinary-income offset per year while allowing unused losses to carry forward.

What Goes Wrong

Many investors let losing positions linger while rebalancing their portfolios in taxable accounts. That choice creates two clear costs. First, unrealized losses remain useless on tax returns. If you hold a 20,000positionthatfellto20,000 position that fell to 14,000, you have a 6,000unrealizedloss.That6,000 unrealized loss. That 6,000 does not reduce taxes until realized. Second, rebalancing by selling winners rather than harvesting losers often realizes gains taxed at short-term rates of 22 to 37 percent or long-term rates of 0 to 20 percent, depending on income and holding period. In a concrete example, imagine a taxable account with 100,000total,targetallocation60/40,anddriftto70/30.Selling100,000 total, target allocation 60/40, and drift to 70/30. Selling 10,000 in winners could generate a 10,000longtermgain.IFtheinvestorisinthe24percentmarginaltaxbracketANDqualifiesfora15percentlongtermrate,THENtheimmediatetaxbillcouldbe10,000 long-term gain. IF the investor is in the 24 percent marginal tax bracket AND qualifies for a 15 percent long-term rate, THEN the immediate tax bill could be 1,500 BECAUSE 10,000×1510,000 × 15% = 1,500. That 1,500eatsintothecapitalavailableforrebalancing.MeanwhileIFtheinvestorinsteadharvesteda1,500 eats into the capital available for rebalancing. Meanwhile IF the investor instead harvested a 10,000 loss, THEN they could offset that 1,500gainBECAUSElossesoffsetgainsdollarfordollar,andanyremainingnetlosscanoffsetupto1,500 gain BECAUSE losses offset gains dollar-for-dollar, and any remaining net loss can offset up to 3,000 of ordinary income per year with carryforward of the remainder. A practical numeric trade-off emerges: realize losses first to reduce current tax drag, then rebalance using tax-advantaged accounts or new cash to limit future taxable events. In Rebalancing we covered using direct new contributions and accounting for threshold rebalancing to reduce realized gains; not doing that here amplifies tax friction.

How It Actually Works

Start with the mechanics and the math. Tax-Loss Harvesting means selling a security for less than its cost basis to realize a capital loss. Capital losses first offset capital gains in the same tax year. If total capital losses exceed capital gains, then up to 3,000(3,000 (1,500 if married filing separately) may be used to reduce ordinary income in that year. Any remaining excess loss carries forward indefinitely until fully used. Use the algebra: let LL = realized loss, GG = realized gains, tgt_g = effective capital gains tax rate (0% to 20% typical for federal), and tot_o = ordinary marginal tax rate (10% to 37% typical). Net taxable gain = max(GLG - L, 0). Tax change from harvesting equals -min(L,G)×L, G) × t_gpluspotential plus potential -(( ext{max}(L-G,0) ext{limited to } 3{,}000) × tot_o in the current year. For example, if G=5,000G = 5{,}000, L=8,000L = 8{,}000, t_g = 15 ext{5}, and t_o = 24 ext{5}: the immediate tax reduction = 5{,}000 × 15 ext{5} + 3{,}000 × 24 ext{5} = 750 + 720=720 = 1{,}470. Remaining carried loss = 8,0008{,}000 - 5{,}000 - 3,000=3{,}000 = 0. If LL were 12,00012{,}000, then carried loss = 4,0004{,}000 to be used in future years. The main additional rule to incorporate is the Wash Sale Rule. The IRS wash sale prevents claiming a loss if, within 30 calendar days before or after the sale, the taxpayer buys a substantially identical security. That 30-day window means the practical replacement strategy is: IF the investor wants to remain exposed to the same market risk AND plans a replacement within 30 days, THEN use a non-substantially-identical substitute BECAUSE buying the same fund within that 61-day window (30 before, day of sale, 30 after) would disallow the loss. Quantify choices: replacing a sold US large-cap ETF with a different large-cap ETF that tracks a different index avoids the rule in most cases. Remember holding period rules for converting short-term to long-term gains can affect the post-harvest long-term status, changing tgt_g over time. Also account for transaction costs and bid-ask spreads typically in the range of 0.00 to 0.50 ext{5} of trade value for large ETFs, which can reduce net benefit.

The Decision Framework

Start with a problem-first question: which action reduces taxes net of costs today and over a 1 to 5 year horizon? Frame the decision in IF/THEN/BECAUSE steps. Step 1 - Determine net taxable position. IF expected realized gains this year are greater than 1,000ANDlessthan1{,}000 AND less than 100{,}000, THEN harvesting losses up to those gains may reduce taxes dollar-for-dollar BECAUSE capital losses offset gains at a 1:1 ratio. Use exact numbers: if gains = 20,000,harvesting20{,}000, harvesting 20{,}000 of losses saves roughly 20,000×20{,}000 × t_ginfederaltaxestoday,where in federal taxes today, where t_g equals 0 ext{5}, 15 ext{5}, or 20 ext{5} depending on income. Step 2 - Compare marginal benefit to transaction costs and fees. IF the expected tax savings is greater than trading costs plus behavioral or tracking risk by at least 20 to 50 ext{5}, THEN proceed, because small percentage advantages evaporate when fees are 0.25 ext{5} to 0.75 ext{5} and spreads are 0.1 ext{5} to 0.5 ext{5}. Numerical example: for L = 10,000and10{,}000 and t_g = 15 ext{5}, tax savings = 1,500.Iftradingcostandtrackingslippagetotal1{,}500. If trading cost and tracking slippage total 200 to 400,netbenefitremainsabout400, net benefit remains about 1{,}100 to 1,300.Step3Considertimingandwashsaleconstraints.IFyouplantorepurchasesimilarexposurewithin30days,THENreplacewithadifferentETForwait31daysBECAUSEtheWashSaleRuledisallowsthelossifyourepurchaseasubstantiallyidenticalholdingwithinthatperiod.Step4Decideonautomationvsmanualharvesting.IFaccountbalanceintaxableaccountsisunder1{,}300. Step 3 - Consider timing and wash sale constraints. IF you plan to repurchase similar exposure within 30 days, THEN replace with a different ETF or wait 31 days BECAUSE the **Wash Sale Rule** disallows the loss if you repurchase a substantially identical holding within that period. Step 4 - Decide on automation vs manual harvesting. IF account balance in taxable accounts is under 50{,}000 AND average realized loss events are infrequent, THEN manual harvesting may be cheaper BECAUSE robo or advisor automated harvesting generally charges 0.25 ext{5} to 0.50 ext{5} of AUM or requires an advisory relationship. IF balances exceed 100,000ANDtradingfrequencyishigh,THENautomatedharvestingoftenuncovers10to30extraharvestableopportunitiesperyearBECAUSEcontinuousmonitoringandalgorithmicidentificationreducesmissedlossesandhumanattentionlimits.Step5Projectcarryforwardvalue.IFyourmarginaltaxrateisstable,THENcarryinga100{,}000 AND trading frequency is high, THEN automated harvesting often uncovers 10 to 30 extra harvestable opportunities per year BECAUSE continuous monitoring and algorithmic identification reduces missed losses and human attention limits. Step 5 - Project carryforward value. IF your marginal tax rate is stable, THEN carrying a 20{,}000 loss forward yields future annual ordinary-income offsets of up to 3,000peryear,whichabsentothergainsrepresentsabout3,000 per year, which absent other gains represents about 720 per year at 24 ext{5} in ordinary tax reduction, until exhausted.

Edge Cases and Limitations

What this framework does not capture matters. Limitation 1 - tax-bracket timing risk. IF an investor expects to move from a 24 ext{5} bracket to a 12 ext{5} bracket within 1 to 3 years, THEN harvesting now may be suboptimal BECAUSE losses used at a lower future rate produce smaller tax benefits. Quantify: a 10,000lossisworth10{,}000 loss is worth 2{,}400 at 24 ext{5} but 1{,}200 at 12 ext{5}. Limitation 2 - state and local taxes. This model ignores state tax variation. Some states tax capital gains at 0 ext{5} to 13.3 ext{5}. IF your state rate is 5 ext{5} to 10 ext{5}, THEN harvesting yields extra state tax savings BECAUSE losses offset state gains similarly. Limitation 3 - wash sale complexity with tax-advantaged accounts and third-party transfers. IF an investor sells a loss in a taxable account and buys the same security in an IRA within 30 days, THEN the loss may be permanently disallowed BECAUSE wash sale rules include purchases in IRAs and other accounts for the taxpayer; the disallowed loss is added to the IRA cost basis which often cannot be tracked easily. Limitation 4 - behavioral and market-timing risk. This framework does not model the opportunity cost of being out of a security for 31 days, which historically can change returns by several percentage points in short-term windows. For instance, missing a 3 ext{5} market pop over 30 days on a 50{,}000 position equals 1,500offoregonegain.Limitation5smallaccountsandtaxlossmagnitude.IFtotalexpectedharvestablelossesareunder1{,}500 of foregone gain. Limitation 5 - small accounts and tax loss magnitude. IF total expected harvestable losses are under 1{,}000 per year, THEN the gross tax benefit often falls below trading costs BECAUSE tax savings at 15 ext{5} would be under 150whiletradingcostsmightbe150 while trading costs might be 0 to $20 per trade plus advisory fees. Finally, this framework does not model multi-generational estate planning where unrealized losses vanish at death due to step-up in basis; in those cases harvesting can sometimes be counterproductive relative to holding until death.

Worked Examples (3)

Offsetting a $20,000 Long-Term Gain

You realized 20,000inlongtermcapitalgainsthisyear.Yourlongtermrateis1520,000 in long-term capital gains this year. Your long-term rate is 15% and ordinary marginal rate is 24%. You have two taxable holdings: ETF A with an unrealized loss of 18,000, ETF B with an unrealized loss of $6,000.

  1. Step 1 - Match losses to gains. Harvest 18,000fromETFAand18,000 from ETF A and 2,000 from ETF B to reach $20,000 total realized loss.

  2. Step 2 - Compute tax offset on gains. Losses offset gains dollar-for-dollar, so 20,000lossfullycancels20,000 loss fully cancels 20,000 gain. Tax on gains avoided = 20,000×1520,000 × 15% = 3,000.

  3. Step 3 - Check remaining losses. Remaining loss after canceling gains = (18,000+18,000 + 6,000) - 20,000=20,000 = 4,000.

  4. Step 4 - Apply ordinary income offset. Up to 3,000oftheexcesslossoffsetsordinaryincomenow.Ordinaryincometaxreduction=3,000 of the excess loss offsets ordinary income now. Ordinary income tax reduction = 3,000 × 24% = $720.

  5. Step 5 - Carry forward remainder. Carried forward loss = 4,0004,000 - 3,000 = $1,000 for future years.

  6. Step 6 - Account for trading costs. If trading costs are 100totalandreplacementtrackingerrorexpectedtobe0.2100 total and replacement tracking error expected to be 0.2% on 20,000 equals 40,netbenefit=40, net benefit = 3,000 + 720720 - 100 - 40=40 = 3,580.

Insight: Harvesting losses to match realized gains can eliminate up to 100% of the current-year capital gains tax burden and still leave $3,000 ordinary deduction while carrying forward any remainder.

Harvesting with Wash Sale Constraints

Taxable account holds 50,000ofalargecapETF(FundX)boughtat50,000 of a large-cap ETF (Fund X) bought at 60,000 cost basis, so an unrealized loss of 10,000.AninvestorwantstomaintainUSlargecapexposureandconsidersrepurchasingthesamefundwithin30days.Federallongtermrateexpected1510,000. An investor wants to maintain US large-cap exposure and considers repurchasing the same fund within 30 days. Federal long-term rate expected 15%. Trading costs for alternatives are 25 per trade.

  1. Step 1 - Calculate immediate tax benefit if sale is allowed. If sold and no wash-sale, tax benefit equals potential ordinary-income offset up to 3,000thisyearatcurrentordinaryrate;assumeordinaryrate243,000 this year at current ordinary rate; assume ordinary rate 24% so current-year benefit if no gains = 3,000 × 24% = 720.Remainingcarriedloss=720. Remaining carried loss = 10,000 - 3,000=3,000 = 7,000.

  2. Step 2 - Evaluate wash sale. IF the investor repurchases Fund X within 30 days, THEN the $10,000 loss will be disallowed BECAUSE the wash sale rule triggers when a substantially identical security is repurchased within the window.

  3. Step 3 - Choose replacement. Choose an alternative ETF Y that tracks a different large-cap index. Replacement trade cost = 25.Expectedtrackingdivergence=0.125. Expected tracking divergence = 0.1% on 50,000 equals $50 over short windows.

  4. Step 4 - Compute net value. Net tax benefit first year = 720720 - 25 - 50=50 = 645. Future benefit of 7,000carriedlossat247,000 carried loss at 24% ordinary rate yields 1,680 eventual saving when used as ordinary offsets or matched to future gains.

  5. Step 5 - Decision threshold. IF the investor values maintaining continuous exposure higher than a potential 0.1% tracking error over 30 days, THEN replace with alternative ETF rather than sitting out BECAUSE the wash sale rule prevents claiming the tax loss if repurchase occurs within the window.

Insight: Avoiding wash sales usually means choosing a similar but not substantially identical replacement, which costs something in tracking error and transaction fees but preserves the tax loss.

Automated Harvesting Cost-Benefit

Taxable account balance 250,000.Historicalannualharvestablelossopportunitiesidentifiedbyautomationaverage250,000. Historical annual harvestable loss opportunities identified by automation average 12,000 per year. Advisor automation fee = 0.35% AUM. Investor federal blended tax rate for gains is 15% and ordinary rate is 24%. Trading costs average $0.00 per trade on ETFs.

  1. Step 1 - Compute gross annual tax saving from harvested losses assuming all offset gains. If 12,000ofrealizedlossesoffsetgainsat1512,000 of realized losses offset gains at 15%, tax saving = 12,000 × 15% = $1,800.

  2. Step 2 - Add ordinary income benefit estimate if losses exceed gains. Assume 6,000ofexcesslossusedagainstordinaryincomeat246,000 of excess loss used against ordinary income at 24% = 6,000 × 24% = $1,440.

  3. Step 3 - Total annual tax benefit = 1,800+1,800 + 1,440 = $3,240.

  4. Step 4 - Compare to automation cost. Automation fee = 0.35% of 250,000=250,000 = 875 per year.

  5. Step 5 - Net after-fee benefit = 3,2403,240 - 875 = $2,365 per year.

  6. Step 6 - Consider alternative: manual harvesting. IF manual harvesting would realize only 6,000peryear,THENmanualtaxsavingmightbe6,000 per year, THEN manual tax saving might be 900 + 720=720 = 1,620 BECAUSE fewer opportunities get missed without continuous monitoring.

  7. Step 7 - Decision threshold. Automated harvesting may add $745 per year in net benefit versus manual in this scenario, before accounting for behavioral risk reduction and convenience value.

Insight: For mid-to-large taxable balances, automation that finds frequent harvestable positions can justify fees of roughly 0.2 ext{5} to 0.5 ext{5} of AUM, netting hundreds to a few thousand dollars per year depending on harvest volume.

Key Takeaways

  • Tax-Loss Harvesting converts unrealized losses into tax value today and over multiple years via carryforwards; $3,000 per year can offset ordinary income and excess losses carry forward indefinitely.

  • IF realized gains exist this year, THEN harvesting losses up to those gains often yields tax savings equal to loss × capital gains rate BECAUSE capital losses offset gains dollar-for-dollar.

  • Watch the Wash Sale Rule: a 30-day before-and-after window blocks losses if you buy substantially identical securities within that 61-day span.

  • Compare tax savings to costs: for example, a $10,000 loss at 15

    tax rate saves 1,500;subtracttradingcostsof1,500; subtract trading costs of 50 to $400 and advisory fees of 0.25

    to 0.50 ext{5} of AUM to get net benefit.

  • Automation can be worth 0.2

    to 0.5 ext{5} of AUM for accounts over $100{,}000 when it identifies 10 to 30 extra harvests per year, but manual harvesting may be preferable for smaller accounts.

  • Loss harvesting value falls if you expect to move into a materially lower tax bracket soon or if you plan to hold a position until estate step-up, because the future tax benefit may be 50

    to 100 ext{5} smaller or zero.

Common Mistakes

  • Ignoring the wash sale rule. Many investors sell and then immediately buy the same fund, thinking they locked in the loss. That error disallows the loss BECAUSE repurchases within 30 days of sale of a substantially identical security trigger the rule.

  • Overlooking transaction costs and tracking error. People count gross tax savings but ignore 25to25 to 400 in trading costs and 0.1

    to 0.5 ext{5} tracking slippage, which can erase a large fraction of the benefit.

  • Harvesting for small nominal losses. Harvesting $500 of losses at a 15

    tax rate saves only $75, which often falls below trading costs and advisory fees, making the activity economically poor.

  • Using tax-deferred accounts incorrectly. Selling a loss in taxable and buying the same fund in an IRA within 30 days can permanently disallow the loss BECAUSE wash sale rules apply across accounts owned by the same taxpayer. That converts an intended tax benefit into a lost deduction.

Practice

easy

You have 15,000ofrealizedlongtermgainsthisyear.Youcanharvesta15,000 of realized long-term gains this year. You can harvest a 12,000 unrealized loss from Fund A and a $6,000 unrealized loss from Fund B. Your long-term rate is 15

the ordinary rate is 24

trading costs sum to $60. Compute the immediate tax savings, ordinary income offset this year, carryforward, and net benefit after trading costs.

Hint: Match losses to gains first. Then apply 3,000ordinaryincomelimit.Use3,000 ordinary income limit. Use 12{,}000 + 6,000=6{,}000 = 18{,}000 total loss.

Show solution

Step 1 - Use 15,000oflossestooffset15,000 of losses to offset 15,000 gains. Tax avoided on gains = $15,000 × 15

tax = 2,250.Step2Remainingloss=2,250. Step 2 - Remaining loss = 18,000 - 15,000=15,000 = 3,000. Apply up to 3,000toordinaryincome:3,000 to ordinary income: 3,000 × 24

tax = 720.Step3Carriedforward=720. Step 3 - Carried forward = 0. Step 4 - Net benefit after trading costs = 2,250+2,250 + 720 - 60=60 = 2,910.

medium

Compare two strategies for a 200,000taxableaccountwithayearlyaverageof200,000 taxable account with a yearly average of 8,000 harvestable losses. Option A uses automated harvesting at 0.30

the historical realized tax benefit before fees would be 1,200incapitalgainssavingsand1,200 in capital gains savings and 960 of ordinary income offsets. Option B is manual harvesting that realizes $4,000 per year of losses. Which option nets more after costs? Show math.

Hint: Compute gross tax savings for each option, subtract automation fees for A, and compare to manual net for B with zero fees assumed.

Show solution

Option A - Gross tax savings = 1,200+1,200 + 960 = 2,160.Automationfee=0.30of2,160. Automation fee = 0.30 of 200,000 = 600.NetA=600. Net A = 2,160 - 600=600 = 1,560. Option B - Realized losses $4,000 gives proportional tax savings: assume 15

gains and 24

tax for ordinary part. If split proportional to historical, half to gains: $2,000 × 15

tax = 300;300; 2,000 ordinary at 24

tax = 480.GrossB=480. Gross B = 780. Manual fees assumed zero, Net B = 780.ConclusionOptionAnets780. Conclusion - Option A nets 1,560 vs Option B 780,soautomationlookspreferableby780, so automation looks preferable by 780 under these inputs.

hard

Hard: You plan to sell an underperforming stock at a $25,000 loss in a taxable account. You will be moving from a 32

tax bracket this year to a 12

tax bracket next year. You also expect $10,000 of long-term gains next year. Assume replacement with a similar ETF would be purchased within 20 days unless you choose an alternate ETF with 0.2

different tracking error. Model the net present value of harvesting now versus waiting one year to harvest, using a discount rate of 5

tax rates given, and assuming the $25,000 loss could offset gains next year at 15

effective rate and ordinary income. Include wash sale implications.

Hint: Compute tax value if harvested now: up to $3,000 offsets ordinary at 32

the rest carries forward to year 2 and then used against $10,000 gains at 15

the remainder reduces ordinary income at 12

tax next year. Discount future tax savings at 5

the replacement decision affects immediate ability to claim loss.

Show solution

Step 1 - Harvest now scenario. Year 0: Use $3,000 against ordinary income at 32

tax saving = $3,000 × 32

tax = 960.Remainingcarriedloss=960. Remaining carried loss = 25,000 - 3,000=3,000 = 22,000. Year 1: You have 10,000ofgainswhichareoffsetfirstbycarriedlosses:10,000 of gains which are offset first by carried losses: 10,000 × 15

tax avoided = 1,500.Remainingcarriedlossafteryear1=1,500. Remaining carried loss after year 1 = 22,000 - 10,000=10,000 = 12,000. That $12,000 can offset ordinary income at 12

tax next year, value = $12,000 × 12

tax = 1,440.Totalnominaltaxsavings=1,440. Total nominal tax savings = 960 + 1,500+1,500 + 1,440 = 3,900.Presentvaluediscountingyear1amounts(3,900. Present value discounting year 1 amounts (1,500 + 1,440=1,440 = 2,940) at 5

to PV = 2,940/1.05=2,940 / 1.05 = 2,800. PV total = 960+960 + 2,800 = $3,760. If replacing with the same ETF within 20 days, the wash sale would disallow the loss, so you must either choose alternative ETF with 0.2

divergence costing expected 50ona50 on a 25,000 position short-term, or wait 31 days and risk missing price moves. Subtract replacement cost 50givesPV50 gives PV ≈ 3,710. Step 2 - Wait one year scenario. If you wait and harvest in year 1 when in 12

tax bracket: that 25,000lossusedfirsttooffset25,000 loss used first to offset 10,000 gains at 15

tax saves 1,500.Remaining1,500. Remaining 15,000 reduces ordinary income at 12

tax = 1,800.Totalnominal=1,800. Total nominal = 3,300. Discount to present value at 5

to PV = 3,300/1.05=3,300 / 1.05 = 3,143. Step 3 - Comparison. Harvest now PV ≈ 3,710versuswaitPV3,710 versus wait PV ≈ 3,143. Net advantage of harvesting now ≈ 567beforeaccountingforbehavioralortrackingriskfromreplacement.Step4Washsalecaveat.IFtheinvestorbuysthesameETFin20days,THENthelossisdisallowedBECAUSEofthewashsalerule;thereforereplacementmustbeanonidenticalETForwaiting31days.Conclusion:harvestingnowappearstoprovide567 before accounting for behavioral or tracking risk from replacement. Step 4 - Wash sale caveat. IF the investor buys the same ETF in 20 days, THEN the loss is disallowed BECAUSE of the wash sale rule; therefore replacement must be a non-identical ETF or waiting 31 days. Conclusion: harvesting now appears to provide ~567 more PV tax benefit under these assumptions, but replacement tracking error and market movement risk could eliminate that edge.

Connections

In Rebalancing (/money/rebalancing) we covered portfolio drift and methods like direct new contributions and threshold rebalancing to limit realized gains. That context matters because rebalancing choices change how often Tax-Loss Harvesting is available and which positions produce losses. In Capital Gains (/money/capital-gains) we covered short-term versus long-term rates and netting rules; those rules provide the tax rates tgt_g and tot_o used throughout this lesson. Mastering Tax-Loss Harvesting unlocks more advanced topics like tax-aware asset location (/money/asset-location), Roth conversion timing (/money/roth-conversions), and estate basis planning (/money/estate-basis) because the timing and realization of losses interact directly with income-tax windows, conversion costs, and the step-up in basis available at death.