78.4% of scenarios pay — the rest don't. Harvesting is not free money. It pays reliably when the future tax never comes due (step-up at death, donation) or when a high-rate loss offsets low-rate future gains. It reliably loses when the offset gains sat in the 0% bracket — up to −$1,865 on a $10,000 harvest in our grid — and when tax rates will be higher at the future sale.
The question
Every December, investors are told to "harvest losses." The advice usually stops at the tax saved this year. But harvesting resets your cost basis lower: the tax you avoid today largely comes back as a bigger taxable gain later. Whether the trade is worth it is a net-present-value question — savings now versus a discounted tax bill later. We computed it, exhaustively.
The grid
A $10,000 harvested loss, run through 768 scenarios: 2 filing statuses × 4 income regimes (from the 0% long-term bracket to 20% + NIIT) × 2 loss characters (short/long-term) × 3 offset contexts (long-term gains, short-term gains, or no gains — the $3,000-per-year ordinary path) × 4 future-rate scenarios (step-up/donation, same rate, 18.8%, 23.8%) × 4 horizons (5–30 years), at a 5% discount rate. Savings are exact engine differences — full Schedule D netting, LTCG stacking, NIIT on true MAGI — never marginal-rate shortcuts.
Result 1: what a $10,000 harvest is worth by income
| Income regime (single) | Saved now | NPV, same rate later (10y) | NPV, step-up/donate | NPV, no-gains $3k path (10y) |
|---|---|---|---|---|
| Low (0% LTCG bracket) $30,000 ordinary income | $0 | $0 | $0 | $1,047 |
| Middle (15% bracket) $85,000 ordinary income | $1,500 | $579 | $1,500 | $2,077 |
| High (15% + NIIT) $250,000 ordinary income | $1,880 | $726 | $1,880 | $3,021 |
| Top (20% + NIIT) $800,000 ordinary income | $2,380 | $919 | $2,380 | $3,494 |
Result 2: character is worth more than timing
A loss that offsets short-term gains (taxed as ordinary income) saves far more than the same loss offsetting long-term gains: $4,080 versus $2,380 at the top income level — 1.71× the savings from the identical $10,000 loss. Schedule D's netting order decides this before you do: same-character gains absorb the loss first, so which lots you realize in the same year is the biggest lever in the whole study.
Result 3: when harvesting loses money
- 0%-bracket offsets: nothing saved, basis lowered — NPV as low as −$1,865.
- Reverse rate arbitrage: save at 15% today, sell in five years at 23.8% — NPV −$365. (A smaller jump, 18.8% → 23.8% over five years, is roughly breakeven at a 5% discount — the sign flips with the rate gap and the horizon.)
- Wash sales: not modeled in the grid because the outcome is trivial — the loss is disallowed and the harvest accomplishes nothing. The calculator checks the 61-day window for you.
Conversely, with a step-up at death or a donation of the replacement shares, the future bill never arrives — every dollar of current savings is pure gain, and 100% of positive-savings step-up scenarios in the grid pay.
Run your own harvest before you sell
The free calculator computes your exact netting, savings, NPV and break-even — the same tested engine as this study.
Open the harvesting calculator →Methodology
All computations use the open 2026 federal engine behind our calculator (133-assertion unit suite, cross-checked to ±$0.01 against an independent C implementation): Schedule D netting with character-preserving carryforward (§1211/§1212), long-term gains stacked on ordinary income (§1(h)), NIIT on true MAGI (§1411), 2026 figures per IRS Rev. Proc. 2025-32. "Saved now" is the exact difference between the year's total tax with and without the harvested loss; the no-gains context discounts each year of the $3,000-per-year carryforward consumption. The future cost is the harvested amount times the expected all-in rate at the future sale, discounted at 5%. Federal only — state layers shift levels but rarely signs; reinvested-savings compounding is not modeled (this understates harvesting benefits slightly, making the negative findings conservative).
Reproducibility
The full 768-cell grid is open data (CC0): results.csv · summary.json. The engine itself ships unminified at /js/calc/capital-gains-tlh-2026.js; the grid is a pure deterministic function of it (no randomness, no seed).
FAQ
Does tax-loss harvesting always save money?
No. Across the 768 scenarios in this study, harvesting a $10,000 loss produced a positive net present value in 78.4% of cases. The clearest losing case is harvesting when your gains sit in the 0% long-term bracket: the harvest saves nothing today, but the lowered basis creates a real future tax bill — up to −$1,865 NPV on a $10,000 loss in our grid.
When is harvesting a clear win?
Two situations dominate: (1) the replacement shares will get a step-up in basis at death or be donated — the deferred cost never comes due, so every dollar of current savings is pure gain; and (2) the loss offsets short-term gains or ordinary income at a high marginal rate while the future sale will be taxed at long-term rates — a rate arbitrage. At the top income level in our grid, a short-term offset saved $4,080 versus $2,380 for a long-term offset — 1.71× more, on the same $10,000 loss.
Can harvesting actually lose money?
Yes, two ways. Harvesting gains that would have been taxed at 0% (nothing saved now, higher tax later), and rate arbitrage in reverse: saving at today's 15% rate but selling within five years at 23.8% produced an NPV of −$365 in our grid. A wash-sale violation is a third way — the loss is simply disallowed.
What about the $3,000-per-year path with no gains to offset?
A $10,000 loss with no gains offsets ordinary income at $3,000 per year ($1,500 married filing separately) and carries forward. The savings arrive over four years instead of one, so they are worth slightly less after discounting — but at ordinary-income marginal rates they are often still the strongest per-dollar savings available at middle and high incomes.
Why does the time horizon matter?
The cost of harvesting is a larger taxable gain later (the replacement basis is lower by the harvested amount). The further away that sale is, the less it costs in present value: at a 5% discount rate the same future tax bill costs 22% less at 10 years than at 5, and 77% less at 30 years. Long horizons push most same-rate scenarios to a positive NPV of pure deferral value — for example $579 on $10,000 for a middle-income filer at 10 years.
How were these numbers computed?
Every scenario runs through the same open, unit-tested 2026 federal tax engine as our free calculator: full Schedule D netting, the LTCG stacking method, NIIT on true MAGI, and character-preserving carryforward, per IRS Rev. Proc. 2025-32 figures. Savings are computed as exact with-versus-without engine differences, never marginal-rate shortcuts. The full grid is published as CC0 open data below.
Published 2026-07-02 by QuantCalc Research. Educational research, not tax advice. Related: tax-loss harvesting calculator · the practical TLH guide · 0% gain harvesting, step by step.