Calculator overview
Inputs and outputs
This summary comes from the calculator's published input and output contract.
Inputs
- Short Term Gains
-
When omitted Blank
Unit $ Default Not set Range 0 to 500000
About this input
Optional. Gains already realised this year on positions held for twelve months or less. Leave it blank if there are none and it is read as nothing. These are the most valuable gains to offset, because they are taxed at your ordinary rate rather than at a long-term rate, and offsetting them is where a permanent saving comes from rather than a postponement.
- Position Value
-
When omitted Blank
Unit $ Default Not set Range 0 to 5000000
About this input
Optional. What the position being sold and replaced is worth, used only to price the cost of trading out of it and back in. Leave it blank and no transaction cost is charged.
- Other Taxable Income (required)
-
Unit $ Default 87460 Range 0 to 2000000
About this input
Your taxable income for the year apart from the gains entered above: income after the deduction you take, not gross pay. It sets the bracket the annual slot against ordinary income saves at, decides which long-term layer any gains sat in, and is part of what the net investment income tax is measured against.
- Years Deferred (required)
-
Unit years Default 10 Range 0 to 40
About this input
How long you expect to hold the replacement position before selling it. This is the horizon the extra tax on the lowered basis is discounted over, so a longer wait makes that tax cheaper in today's money and the net benefit larger. Set it to nothing to see the answer with no deferral at all, which is the harshest way to read a harvest.
- Transaction Cost Pct
-
When omitted Blank
Unit fraction Default Not set Range 0 to 0.01
About this input
Optional. The cost of the round trip, selling one position and buying the replacement, as a percentage of what that position is worth. Leave it blank and no cost is charged. On a shallow loss a cost of around a quarter of a percent has been shown to consume the entire benefit, which is why it is worth entering rather than ignoring.
- State Rate
-
When omitted Blank
Unit fraction Default Not set Range 0 to 0.133
About this input
Optional. A single rate standing in for state tax on gains, entered as a percentage. Leave it blank and no state tax is counted, which is right for the nine states that levy none. It is a stand-in and not a state schedule: it is applied to the gains and ordinary income the loss removes, and to the carried-forward amount when it is eventually used.
- Loss Realised (required)
-
Unit $ Default 20000 Range 0 to 500000
About this input
The loss on the sale, as a positive amount: what the position was sold for, less what it cost. It is the whole of the loss you are realising now, and it is also the amount by which the replacement position starts out with a lower basis, which is why the same figure appears on both sides of the answer.
- Future Tax Rate
-
When omitted Blank
Unit fraction Default Not set Range 0 to 0.5
About this input
Optional. The rate you expect to pay when the replacement position is finally sold, entered as a percentage. Leave it blank and the model derives it from today's figures: the long-term layer your income and gains put you in, plus the surtax where it applies, plus any state rate. Setting it above the rate the loss saves at today makes the permanent part of the benefit negative. The net benefit falls as this rate rises, but because the tax at that sale is discounted to today it can stay positive past that point.
- Filing Status (required)
-
Default Single Allowed Single, Married filing jointly, Married filing separately, Head of household
About this input
The status the return is filed under. It selects the bracket table, the long-term layers and the surtax threshold, and it halves the annual amount of loss that can be set against ordinary income on a separate return.
- Expected Return (required)
-
Unit fraction Default 0.07 Range 0 to 0.12
About this input
The return you assume on the money, entered as a percentage. It does two jobs: the tax saved this year is assumed reinvested at it, and the tax owed at the future sale is discounted back at it. A higher figure makes waiting worth more, which is why the benefit is so sensitive to this assumption.
- Loss Character (required)
-
Default Short term Allowed Short term, Long term
About this input
Whether the position was held for twelve months or less when it was sold, which makes the loss short term, or for more than twelve months, which makes it long term. The character decides which gains the loss meets first: a short-term loss is applied to short-term gains before long-term ones, and the other way round. It does not change the annual slot against ordinary income, which either character can fill.
- Long Term Gains
-
When omitted Blank
Unit $ Default Not set Range 0 to 500000
About this input
Optional. Gains already realised this year on positions held for more than twelve months. Leave it blank if there are none and it is read as nothing. Offsetting them saves at the rate of the layer they were sitting in, which can be nothing at all if they fell in the zero percent band, in which case the loss is better saved for another year.
- Include NIIT (required)
-
Default Yes Allowed Yes, No
About this input
Whether to count the net investment income tax, a surtax of three point eight percent charged on the lesser of investment income and the amount by which modified income exceeds a threshold that has never been raised for inflation. Where it applies, offsetting gains saves it as well, and it also raises the rate the model assumes at the future sale.
Outputs
- Saved On Short Term
-
Unit $
About this output
The tax saved by removing short-term gains from this year, computed as the ordinary tax with those gains and again without them rather than as a flat rate, so a block of gains that straddles a bracket is priced correctly. This is where the largest permanent saving comes from, because the money comes back later at a long-term rate.
- Saved State
-
Unit $
About this output
State tax saved on the gains and ordinary income the loss removes, at the flat rate entered. It is a stand-in for a state schedule and not a calculation of one.
- Table1 Harvest Column Axis
-
No unit declared
About this output
The values across the top of the grid: the years until the replacement is sold, in steps of two either side of yours and never below none. Read a column to hold the horizon fixed and vary the loss. The middle entry is your own horizon.
- Saved On Ordinary
-
Unit $
About this output
The tax saved by the annual slot against ordinary income, at the marginal rate the last of that income is taxed at.
- PV Of Future Tax
-
Unit $
About this output
That extra tax discounted back to today at the assumed return. The longer the wait and the higher the return, the smaller it is, which is why the horizon matters as much as the rates do.
- Saved NIIT
-
Unit $
About this output
The net investment income tax saved by removing gains from a base that was already above the threshold. It is nothing when the threshold is not reached or when the surtax is switched off, and three point eight percent of the gains removed otherwise.
- Saved On Long Term
-
Unit $
About this output
The tax saved by removing long-term gains, priced across the zero, fifteen and twenty percent layers with the gain stacked on top of ordinary taxable income. It is nothing at all when those gains sat in the zero percent layer, which is the case a visitor is most likely to be surprised by.
- Table1 Harvest Values
-
Unit currency
About this output
The body of the grid: the net benefit in today's money, recomputed for every combination of the two axes. One hundred and twenty-one cells, each one the whole calculation run again. It is a component of the table rather than a result on its own.
- Tax Saved Now
-
Unit $
About this output
The five savings above added together: what the harvest is worth in the year of the sale. It leaves out what any carried-forward loss is worth, the tax due when the replacement is sold and the cost of trading, so on its own it can sit above or below the net benefit.
- Transaction Cost
-
Unit $
About this output
The cost of the round trip, charged today: the position value times the round-trip cost entered. It is nothing when either is left blank.
- Table1 Harvest Row Input
-
Unit currency
About this output
Machinery, and NOT an input. Excel substitutes each value from the row axis into this cell while it fills the grid; the rest of the time it mirrors the loss realised. Change the loss above, never this: the axis is derived from it, so editing the mirror moves the axis while the table walks and the grid comes out meaningless.
- Table1 Harvest Column Input
-
Unit years
About this output
Machinery, and NOT an input. The same for the column axis: Excel substitutes into it while filling the grid, and the rest of the time it mirrors the years until the replacement is sold.
- Table1 Harvest Corner
-
Unit currency
About this output
Machinery. Excel requires the formula being tabulated to sit in the grid's top-left corner, where it means nothing to a reader, so it is formatted away. It holds the net benefit in today's money.
- Table1 Harvest Row Axis
-
No unit declared
About this output
The values down the left of the grid: the loss realised, in steps of four thousand either side of yours and never below nothing. Read a row to hold the loss fixed and vary how long the replacement is held. The middle entry is your own loss.
- PV Carryforward Saving
-
Unit $
About this output
What the carried-forward part is worth in today's money: the annual limit used year after year at the marginal rate plus any state rate, each year discounted at the assumed return, with a remainder in the last year. It is always less than the same amount saved today, and the gap between the two is one of the honest costs of a loss too large to use.
- Future Tax On Lower Basis
-
Unit $
About this output
The extra tax due when the replacement position is sold, which is the whole harvested loss taxed again at the rate above, because the replacement started with a basis lower by exactly that loss. It is the reason harvesting is a deferral rather than a saving.
- Loss Carried Forward
-
Unit $
About this output
What is left of the loss after this year. It is carried forward with no time limit and keeps its character, so a long-term loss reduces long-term gains first in every later year. It is not lost, but it is postponed, and the calculation below prices that postponement rather than ignoring it.
- Loss Used Against Long Term
-
Unit $
About this output
How much of the loss is set against long-term gains. It saves at the rate of the layer those gains were sitting in, which may be nothing, so a large figure here does not always mean a large saving.
- Future Rate Used
-
Unit fraction
About this output
The rate applied to the extra gain at the future sale, either the one you entered or the one derived from today's long-term layers, the surtax where it applies and any state rate. Compare it with the rate on your ordinary income above: the gap between them is the whole of the permanent saving, and the rest is timing.
- Carryforward Years
-
Unit years
About this output
How many years the carried-forward loss would take to use up if nothing else were ever realised and only the annual slot were available. A figure in double digits is the usual outcome of a large harvest and is the strongest argument for realising gains to absorb it instead.
- Deferral Value
-
Unit $
About this output
What the timing alone is worth: the net benefit today less the permanent part. It is positive when the tax pushed into the future is worth more discounted than it costs, and it can be negative, which happens when there is no future tax to defer and the carryforward itself is the thing being waited for.
- Effective Rate Saved
-
Unit fraction
About this output
The tax saved this year plus the carryforward at face value, as a share of the loss realised. It is the rate the loss actually earns before any of it is given back at the sale, and it is useful for comparing one harvest with another rather than for judging whether either is worth doing.
- Net Benefit At Sale
-
Unit $
About this output
The same net benefit carried forward to the year of the sale at the assumed return. It is the figure to compare with the extra tax due then, and it assumes the tax saved this year was actually reinvested rather than spent.
- Net Benefit Today
-
Unit $
About this output
The whole answer in one figure: the tax saved now, plus what the carryforward is worth in today's money, less the discounted tax at the future sale, less the cost of trading. A negative figure means the harvest costs more than it saves on the assumptions entered. A rate expected at that sale above the rate the loss saves at today makes the permanent part negative, but not necessarily this figure, because the tax at that sale is discounted to today.
- Permanent Saving
-
Unit $
About this output
The part of the benefit that survives the sale: the tax saved and the carryforward at face value, less the tax that will be due at that sale, and less the cost of trading, with no discounting anywhere. It comes entirely from the difference between the rate the loss saves at today and the rate it is repaid at later, so it is real only when those rates differ.
- Model Status
-
No unit declared
About this output
Reads OK, or explains why the inputs are not valid or why the answer deserves a second look.
- Loss Used Against Ordinary
-
Unit $
About this output
How much of the loss is set against ordinary income. The annual amount is fixed by statute at three thousand dollars, or one thousand five hundred on a separate return, and has not been raised since the 1978 tax year; inflated from then it would be several times larger. It is the reason a big loss takes years to use.
- Loss Used Against Short Term
-
Unit $
About this output
How much of the loss is set against short-term gains. These are matched first when the loss is itself short term, and second when it is long term. This is the part of the loss that saves at your ordinary rate.
- Marginal Rate Now
-
Unit fraction
About this output
The rate the last dollar of your ordinary income is taxed at, which is the rate the annual slot saves at and the rate the carried-forward loss is assumed to save at when it is eventually used.
LogicCommons is in beta. If a result, label, or reference looks wrong, tell us here; we read every message.
Methodology
Purpose and model boundary
Use this to separate what selling at a loss saves you this year from the tax it hands to a later sale. This calculator reports both, because the first on its own leaves out the carryforward, the later tax and the cost of trading, so it can sit above or below the net benefit.
The saving this year comes from setting the loss against gains already realised, against a limited amount of ordinary income, and against the surtax on investment income where that applies. The cost comes later: the replacement position starts with a basis lower by exactly the loss harvested, so the same amount is taxed again when it is sold.
The difference between those two, discounted to today and net of the cost of trading, is the answer, and it can be negative. Only the part that comes from the gap between the rate the loss saves at now and the rate it is repaid at later is a permanent saving; the rest is timing.
It prices ONE harvest. It does not model the replacement position's own gains beyond the recovered basis, and it assumes the replacement is not substantially identical to what was sold, which is what keeps the loss allowable in the first place.
Inputs and units
| Input | Unit | Accepted range | What it means |
|---|---|---|---|
| Loss Realised | $ | 0 through 500,000 | The loss on the sale, as a positive amount. It is also the amount by which the replacement position starts out with a lower basis, which is why the same figure appears on both sides of the answer. |
| Loss Character | list | Short term, long term | Whether the position was held for twelve months or less when sold, or for more. The character decides which gains the loss meets first. It does not change the annual amount that can be set against ordinary income, which either character can fill. |
| Position Value | $ | 0 through 5,000,000 | Optional. What the position being sold and replaced is worth, used only to price the cost of trading out of it and back in. |
| Short Term Gains | $ | 0 through 500,000 | Optional. Gains already realised this year on positions held twelve months or less. These are the most valuable to offset, because they are taxed at your ordinary rate, and offsetting them is where a permanent saving comes from rather than a postponement. |
| Long Term Gains | $ | 0 through 500,000 | Optional. Gains already realised this year on positions held more than twelve months. Offsetting them saves at the rate of the layer they were sitting in, which can be nothing at all if they fell in the lowest band. |
| Other Taxable Income | $ | 0 through 2,000,000 | Your taxable income for the year apart from those gains: income after the deduction you take, not gross pay. It sets the bracket the annual slot saves at, decides which long-term layer any gains sat in, and is part of what the surtax is measured against. |
| Filing Status | list | Single, married filing jointly, married filing separately, head of household | The status the return is filed under. It selects the bracket table, the long-term layers and the surtax threshold, and it halves the annual amount of loss that can be set against ordinary income on a separate return. |
| Years Deferred | years | 0 through 40 | How long you expect to hold the replacement before selling it. This is the horizon the extra tax is discounted over, so a longer wait makes that tax cheaper in today's money. Set it to nothing to see the answer with no deferral at all, which is the harshest way to read a harvest. |
| Expected Return | % | 0% through 12% | The return assumed on the money. It does two jobs: the tax saved this year is assumed reinvested at it, and the tax owed at the future sale is discounted back at it. |
| Transaction Cost Pct | % | 0% through 1% | Optional. The cost of the round trip, selling one position and buying the replacement, as a share of what the position is worth. On a shallow loss a cost of around a quarter of a percent can consume the entire benefit, which is why it is worth entering rather than ignoring. |
| Future Tax Rate | % | 0% through 50% | Optional. The rate you expect to pay when the replacement is finally sold. Left blank, it is derived from today's figures. Setting it ABOVE the rate the loss saves at today makes the permanent part of the benefit negative, and this input is where you say so. The net benefit falls as this rate rises, but because the tax at that sale is discounted to today it can stay positive past that point. |
| State Rate | % | 0% through 13.3% | Optional. A single rate standing in for state tax on gains. It is applied to the gains and ordinary income the loss removes, and to the carried-forward amount when it is eventually used. |
| Include NIIT | list | Yes, No | Whether to count the surtax on investment income. Where it applies, offsetting gains saves it as well, and it also raises the rate assumed at the future sale. |
Governing relationships
The loss is applied in a fixed order. A loss of the same character meets gains of that character first, then the other character, then the annual amount allowed against ordinary income, and whatever is left carries forward.
Each of those uses is priced at what it actually saves. Gains removed from ordinary income are priced by working out the tax with them and again without them, so a block that straddles a bracket is priced correctly rather than at one flat rate. Long-term gains are priced across the long-term layers with the gain stacked on top of ordinary taxable income, which is why offsetting a gain that sat in the lowest layer can save nothing at all. The annual slot against ordinary income is priced at the marginal rate the last of that income is taxed at. The surtax is saved where the base was already above its threshold. The state rate is applied to everything the loss removes.
What carries forward is priced honestly rather than at face value: the annual amount used year after year, each year discounted back at the assumed return, with a remainder in the last year. It is always worth less than the same amount saved today.
The cost is the whole harvested loss taxed again at the future rate, because the replacement started with a basis lower by exactly that amount. That figure is discounted back at the same return over the years the replacement is held.
The net benefit today is the tax saved now, plus what the carryforward is worth today, less the discounted future tax, less the cost of trading. The permanent saving is the same subtraction with no discounting anywhere; the difference between the two is what the timing alone is worth.
Calculation sequence
This is the order in which the reported figures depend on one another. It is not a claim about the order in which the model evaluates itself.
- Apply the loss in order: gains of its own character, then the other character, then the annual amount against ordinary income, then carry the remainder forward.
- Price each of those uses, working the ordinary tax out with and without the gains rather than at a flat rate.
- Add the surtax saved where the base was above its threshold, and the state tax saved at the rate entered.
- Add the five savings to get what the harvest is worth in the year of the sale.
- Value the carried-forward part year by year at the annual limit, discounting each year back at the assumed return.
- Work out the rate to apply at the future sale, either the one entered or the one derived from today's layers, the surtax and the state rate.
- Tax the whole harvested loss at that rate to get the extra tax due when the replacement is sold, and discount it back over the years held.
- Charge the cost of the round trip today.
- Combine them into the net benefit today, and again with no discounting for the permanent part.
- Rerun the whole calculation across a grid of losses and horizons, so the sensitivity to each is visible rather than asserted.
Outputs and interpretation
| Output | Role | Unit | What it means |
|---|---|---|---|
| Net Benefit Today | primary | $ | The whole answer in one figure: the tax saved now, plus what the carryforward is worth today, less the discounted tax at the future sale, less the cost of trading. A negative figure means the harvest costs more than it saves on the assumptions entered. |
| Tax Saved Now | primary | $ | The five savings added together: what the harvest is worth in the year of the sale. |
| Permanent Saving | primary | $ | The part of the benefit that survives the sale, with no discounting anywhere. It comes entirely from the difference between the rate the loss saves at today and the rate it is repaid at later, so it is real only when those rates differ. |
| Loss Used Against Short Term | detail | $ | How much of the loss is set against short-term gains. |
| Loss Used Against Long Term | detail | $ | How much is set against long-term gains. It saves at the rate of the layer those gains were sitting in, which may be nothing, so a large figure here does not always mean a large saving. |
| Loss Used Against Ordinary | detail | $ | How much fills the annual slot against ordinary income. |
| Loss Carried Forward | detail | $ | What is left after this year. It carries forward with no time limit and keeps its character. It is not lost, but it is postponed. |
| Carryforward Years | detail | years | How many years the carried-forward loss would take to use up if nothing else were ever realised. A figure in double digits is the usual outcome of a large harvest and is the strongest argument for realising gains to absorb it instead. |
| Saved On Short Term | detail | $ | The tax saved by removing short-term gains, worked out with and without them so a block that straddles a bracket is priced correctly. This is where the largest permanent saving comes from. |
| Saved On Long Term | detail | $ | The tax saved by removing long-term gains, priced across the long-term layers. It is nothing at all when those gains sat in the lowest layer, which is the case a reader is most likely to be surprised by. |
| Saved On Ordinary | detail | $ | The tax saved by the annual slot against ordinary income. |
| Saved NIIT | detail | $ | The surtax saved by removing gains from a base that was already above the threshold. |
| Saved State | detail | $ | State tax saved at the flat rate entered. It is a stand-in for a state schedule and not a calculation of one. |
| PV Carryforward Saving | detail | $ | What the carried-forward part is worth in today's money. It is always less than the same amount saved today, and the gap is one of the honest costs of a loss too large to use. |
| Future Rate Used | detail | % | The rate applied at the future sale. Set it beside the rate on your ordinary income: the gap between them is the whole of the permanent saving, and the rest is timing. |
| Future Tax On Lower Basis | detail | $ | The extra tax due when the replacement is sold, which is the whole harvested loss taxed again, because the replacement started with a basis lower by exactly that amount. This calculator reports it because it is the reason harvesting is a deferral rather than a saving. |
| PV Of Future Tax | detail | $ | That extra tax discounted back to today. The longer the wait and the higher the return, the smaller it is, which is why the horizon matters as much as the rates do. |
| Transaction Cost | detail | $ | The cost of the round trip, charged today. |
| Net Benefit At Sale | detail | $ | The same net benefit carried forward to the year of the sale at the assumed return. It assumes the tax saved this year was actually reinvested rather than spent. |
| Deferral Value | detail | $ | What the timing alone is worth: the net benefit today less the permanent part. It can be negative, which happens when there is no future tax to defer and the carryforward itself is the thing being waited for. |
| Effective Rate Saved | detail | % | The tax saved this year plus the carryforward at face value, as a share of the loss realised. It is useful for comparing one harvest with another rather than for judging whether either is worth doing. |
Model Status reads OK, or explains why the inputs are not valid or why the answer deserves a second look before you act on it. It is shown alongside the results rather than in place of them.
The calculator also returns a grid that reruns the calculation across a range of losses and horizons at once. Its axes, corner and body arrive as separate values and are the grid's parts rather than results to read on their own; the page assembles them into the table.
Every figure above is returned by the model. The page arranges and formats them; it computes none of them.
Validation and status logic
These are the states the delivery's own recorded runs exercise, so the table records what this calculator has been observed to return rather than every branch it could take.
| Condition | Returned status |
|---|---|
| No filing status has been chosen | NOT VALID: choose a filing status from the list |
| The carried-forward loss would take many years to use up | CHECK: the carried-forward loss takes many years to use up at the annual limit, so most of what it is worth arrives a long way off; the years it takes are reported above |
| The net benefit is below nothing | CHECK: the net benefit is negative, so on these assumptions harvesting costs more than it saves; compare the rate applied at the future sale with the marginal rate today, and check what the round trip costs |
| None of the preceding conditions applies | OK |
Assumptions and limitations
- One harvest, priced on its own. Other sales in the same year, and the replacement position's own later gains beyond the recovered basis, are not modelled.
- The replacement is assumed to be different enough from what was sold that the loss is allowable. A replacement that is substantially identical would have the loss disallowed, and none of the arithmetic here would apply.
- The whole harvested loss is assumed to come back as taxable gain at one future sale, at one rate. A real position sold in parts, or held until it passes to an heir, would be taxed differently or not at all.
- The tax saved this year is assumed reinvested at the same return used to discount the future tax. A saving that is spent instead is worth less than the figure here.
- The rate schedule, the long-term layers, the annual limit against ordinary income and the surtax threshold are those of a single tax year as delivered.
- The state figure is one flat rate. No state's rules are modelled, and several states tax gains as ordinary income.
- The annual amount that may be set against ordinary income is not adjusted for inflation, which is why a large harvest takes so many years to use up.
- Nothing here is advice to sell anything, and a decision to sell should rest on the investment case as well as the tax.
Restrictions and non-computing states
This calculator enforces the numeric limits recorded above before any figure is worked out, so a value outside them is refused rather than answered.
A negative net benefit is a result rather than a refusal: on the assumptions entered the harvest costs more than it saves, every figure is still reported, and the status line explains which assumptions to look at first.
Errors and warnings
NOT VALID means the inputs do not describe a question this calculator can answer, and the figures beside it should not be relied on. CHECK is not an error: the arithmetic is sound and the figures stand, but something about the combination is worth knowing first, and here the most important of those is a net benefit below nothing. The status is shown with the results rather than in place of them, so a flagged answer is still a readable one.
A value the page itself refuses, because it falls outside the limits above, is rejected before the calculation is requested and no figures are returned at all. That is different again from a transport or service failure, where the page reports that the result could not be fetched rather than showing a stale or partial one.
References
The whole exercise rests on the loss being allowable at all, and the rule that decides it is the wash sale rule. The statute disallows a loss where, "within a period beginning 30 days before the date of such sale or disposition and ending 30 days after such date, the taxpayer has acquired ... or has entered into a contract or option so to acquire, substantially identical stock or securities". It does not destroy the loss: the disallowed amount is added to the basis of what was bought, so it comes back later rather than never. Everything on this page assumes the replacement position is different enough that the rule does not bite; if it does, none of the arithmetic here applies. See 26 U.S. Code section 1091, Loss from wash sales of stock or securities.
Two limits set the pace at which a loss can actually be used. Where losses exceed gains, the amount that may be set against other income in a year is "the lesser of $3,000 ($1,500 if married filing separately)", and "If your net capital loss is more than this limit, you can carry the loss forward to later years." That annual amount is what makes a large harvest take so many years to use up, which is the figure this page reports beside the carryforward. The same page gives the holding period that decides a loss's character and the long-term rate layers the offsets are priced across. See Topic no. 409, Capital gains and losses.
Where the surtax on investment income applies, offsetting gains saves it too, and the same charge raises the rate assumed at the future sale. It is "A 3.8 percent net investment income tax (NIIT)" on income above thresholds stated by filing status, charged on "net gains from the disposition of property such as stocks, bonds, mutual funds, and real estate". See Topic no. 559, Net investment income tax.
Two of the figures that move the answer most have no source at all, and this page does not pretend otherwise: the return you assume, which is used both to grow the saving and to discount the future tax, and the rate you expect to pay when the replacement is finally sold. Set the second above the rate the loss saves at today and the permanent part of the saving turns into a loss, which is a real answer rather than a fault.
These sources provide background; they do not supply the calculator's assumptions or certify its result. This calculator is informational and is not financial, investment, or tax advice. Results follow directly from the loss, the gains and the rates you enter, and nothing here is a recommendation to sell anything.
Found a problem, or have an idea?
Tell us if a result looks wrong, a label is unclear, or something is missing. We read every message.