Calculator overview
Inputs and outputs
This summary comes from the calculator's published input and output contract.
Inputs
- Share price at the hold date: high (required)
-
Unit currency/share Default 75 Range 0 to 1000000
About this input
A high share price on the hold date, in dollars.
- Share price at the hold date: low (required)
-
Unit currency/share Default 45 Range 0 to 1000000
About this input
A low share price on the hold date, in dollars. Holding is compared with selling now at this price, the base price and the high price, because nobody knows the price on that date. Once the first qualifying or long-term day has passed there is no later date to wait for, and the three prices are read as other prices for the same sale today.
- Plan type (required)
-
Default ESPP Allowed ESPP, RSU
About this input
ESPP for shares bought through an employee stock purchase plan; RSU for restricted stock units that have vested. The choice decides which inputs apply and how the sale is taxed.
- Share price at the hold date: base (required)
-
Unit currency/share Default 60 Range 0 to 1000000
About this input
A middle share price on the hold date, in dollars. Entering today's price here shows the effect of the tax alone.
- Purchase date (required)
-
Unit date Default 2025-06-30
About this input
For an ESPP, the date the plan bought your shares; for an RSU, the vest and delivery date: the date the units vested and the shares were delivered to you (use the delivery date if it came later). A sale more than one year after it is long-term.
- State tax rate
-
When omitted Blank
Unit % Default Not set Range 0 to 0.2
About this input
The rate your state taxes this income at, as a percentage. Leave blank for none. One rate stands for your state's brackets, and it applies to the ordinary income and the capital gain alike.
- Tax year (required)
-
Default 2026 Allowed 2025, 2026
About this input
The tax year whose federal brackets, long-term breakpoints, standard deduction and limits apply. Both choices are taxed with this year's tables, even when the hold date falls in the next year.
- Date of the sale (required)
-
Unit date Default 2026-10-15
About this input
The date you would sell if you sell now, as year-month-day. It must fall in the tax year you choose and on or after the purchase or vest date.
- Shares (required)
-
Unit shares Default 100 Range 0.001 to 1000000000
About this input
How many shares you would sell, either now or on the hold date. Fractions are allowed. The shares times each share price on the purchase or vest date, today and at the hold date must be at most 1 trillion dollars.
- Plan discount (required) Conditional
-
Unit % Default 0.15 Range 0 to 0.15
About this input
The plan's discount on the share price, as a percentage, from 0% to 15%. ESPP only.
- Filing status (required)
-
Default Single Allowed Single, Married filing jointly, Married filing separately, Head of household
About this input
Your filing status for the year. A qualifying surviving spouse uses married filing jointly, which has the same figures here.
- Share price today (required)
-
Unit currency/share Default 60 Range 0 to 1000000
About this input
The share price today, in dollars: the price you would sell at if you sell now.
- Your deductions (blank for the standard deduction)
-
When omitted Blank
Unit currency Default Not set Range 0 to 1000000000000
About this input
Your total deductions for the year, in dollars. Leave blank to use the standard deduction for the tax year and filing status.
- Share price on the offering date (required) Conditional
-
Unit currency/share Default 40 Range 0.01 to 1000000
About this input
The share price on the offering date, in dollars. ESPP only. With a lookback the discount applies to the lower of this price and the price on the purchase date, and in a qualifying sale the ordinary income is capped at the discount measured on this price.
- Offering (grant) date (required) Conditional
-
Unit date Default 2025-01-02
About this input
The first day of the offering period, when the plan granted you the option to buy, as year-month-day. ESPP only. A sale is a qualifying sale only after two years from this date and one year from the purchase date.
- Other income for the year, before deductions (required)
-
Unit currency/yr Default 90000 Range 0 to 1000000000000
About this input
Your other income for the year before deductions, in dollars: wages, interest and the like, without this sale. For an RSU, the income taxed when the units vested is already in your wages; include it here when it vested this year.
- Share price on the purchase date (required)
-
Unit currency/share Default 50 Range 0.01 to 1000000
About this input
For an ESPP, the share price on the purchase date; for an RSU, the share price on the vest and delivery date, which was taxed as income then and is your cost basis.
- The plan has a lookback (required) Conditional
-
Default Yes Allowed Yes, No
About this input
Yes when the plan applies its discount to the lower of the share price on the offering date and on the purchase date; No when it applies to the purchase-date price only. ESPP only.
Outputs
- Months until a qualifying sale
-
Unit months
About this output
How long until the first day a sale is a qualifying sale (ESPP) or long-term (RSU), in months of average length (days times 12 divided by 365.25). It reads 0 once that day has passed.
- Price you paid per share Conditional
-
Unit currency/share
About this output
What the plan charged you per share: the discount applied to the purchase-date price, or with a lookback to the lower of the two prices. Shown for an ESPP only.
- First date of a qualifying sale
-
Unit date
About this output
The first day a sale is a qualifying sale (ESPP) or long-term (RSU), as year-month-day: for an ESPP, the day after the later of two years from the offering date and one year from the purchase date; for an RSU, the day after one year from the vest date. While it is still ahead it is the hold date; once it has passed, selling now already qualifies, and the hold cases are the same sale at the other prices.
- Model Status
-
No unit declared
About this output
Whether the inputs describe shares the calculator can compute. NOT VALID names what to fix; CHECK flags a result to notice, such as a sale that is already qualifying or a loss that cannot all be used this year; OK means neither applies.
- Holding less selling now, at the high price
-
Unit currency
About this output
What you keep by holding at the high price less what you keep by selling now. Once the first qualifying or long-term day has passed, it is the difference the price alone makes to a sale now.
- Holding less selling now, at the low price
-
Unit currency
About this output
What you keep by holding at the low price less what you keep by selling now. A negative figure means selling now keeps more. Once the first qualifying or long-term day has passed, it is the difference the price alone makes to a sale now.
- Sell now or hold, case by case
-
No unit declared
About this output
Each case side by side, selling now and holding at the three prices: the price per share, the ordinary income, the capital gain or loss, the holding period, the tax the sale adds and what you keep. Once the first qualifying or long-term day has passed, the three hold rows read "Same sale, low price", "Same sale, base price" and "Same sale, high price".
- The comparison
-
No unit declared
About this output
For each hold price, which choice keeps more after tax and by how much, to the nearest dollar, then what the comparison assumes. A difference that rounds to 0 cents reads "the same"; a difference of at least a cent, after rounding to cents, but less than half a dollar reads "the same, to the nearest dollar". Once the first qualifying or long-term day has passed, it states instead what selling now would keep at each of the other prices. It states a comparison under your prices; it is not advice to sell or hold.
- Ordinary income if you sell now
-
Unit currency
About this output
The part of a sale now taxed as ordinary income. For an ESPP sold before the hold date, the share price on the purchase date less the price paid, times your shares; for an RSU, none, because the income was taxed at vest.
- Tax added if you sell now
-
Unit currency
About this output
The federal income tax, net investment income tax and state tax a sale now adds. A negative figure is a saving from a loss.
- Income taxed at vest (already taxed, not added here)
-
Unit currency
About this output
For an RSU, the share price on the vest date times your shares: income taxed when the units vested. It is shown for reference and never taxed again here. 0 for an ESPP.
- Holding period if you sell now
-
No unit declared
About this output
Whether a sale now is held one year or less (short-term) or more than one year (long-term), counted from the purchase or vest date.
- Self-check
-
No unit declared
About this output
PASS when every internal consistency check of the calculation holds for this result. FAIL means the result should not be relied on.
- What you keep if you sell now, after tax
-
Unit currency
About this output
The sale price today times your shares, less the federal income tax, the net investment income tax and the state tax the sale adds.
- Capital gain or loss if you sell now
-
Unit currency
About this output
The part of a sale now taxed as a capital gain or loss: the sale price less your cost basis, after the ordinary income, times your shares.
- Holding less selling now, at the base price
-
Unit currency
About this output
What you keep by holding at the base price less what you keep by selling now. With the base price equal to today's price, this is the effect of the tax alone. Once the first qualifying or long-term day has passed, it is the difference the price alone makes to a sale now.
- Holding period if you hold, base price
-
No unit declared
About this output
The holding period of a sale on the hold date at the base price: always more than one year.
- Ordinary income if you hold, base price
-
Unit currency
About this output
The part of a sale on the hold date at the base price taxed as ordinary income.
- Tax added if you hold, base price
-
Unit currency
About this output
The tax a sale on the hold date at the base price adds.
- Capital gain or loss if you hold, base price
-
Unit currency
About this output
The capital gain or loss of a sale on the hold date at the base price, after the ordinary income.
- What you keep if you hold, at the base price
-
Unit currency
About this output
What you keep after tax if you hold to the hold date and the price is then the base price you entered. Once the first qualifying or long-term day has passed, it is what selling now would keep at that price.
- What you keep if you hold, at the high price
-
Unit currency
About this output
What you keep after tax if you hold to the hold date and the price is then the high price you entered. Once the first qualifying or long-term day has passed, it is what selling now would keep at that price.
- What you keep if you hold, at the low price
-
Unit currency
About this output
What you keep after tax if you hold to the hold date and the price is then the low price you entered. Once the first qualifying or long-term day has passed, it is what selling now would keep at that price.
- Capital gain or loss if you hold, high price
-
Unit currency
About this output
The capital gain or loss of a sale on the hold date at the high price, after the ordinary income.
- Holding period if you hold, low price
-
No unit declared
About this output
The holding period of a sale on the hold date: always more than one year.
- Ordinary income if you hold, low price
-
Unit currency
About this output
The part of a sale on the hold date at the low price taxed as ordinary income. For an ESPP, the lesser of the gain over the price paid and the discount measured on the offering-date price, never below 0.
- Tax added if you hold, low price
-
Unit currency
About this output
The tax a sale on the hold date at the low price adds. A negative figure is a saving from a loss.
- Capital gain or loss if you hold, low price
-
Unit currency
About this output
The capital gain or loss of a sale on the hold date at the low price, after the ordinary income.
- Holding period if you hold, high price
-
No unit declared
About this output
The holding period of a sale on the hold date at the high price: always more than one year.
- Ordinary income if you hold, high price
-
Unit currency
About this output
The part of a sale on the hold date at the high price taxed as ordinary income.
- Tax added if you hold, high price
-
Unit currency
About this output
The tax a sale on the hold date at the high price adds.
LogicCommons is in beta. If a result, label, or reference looks wrong, tell us here; we read every message.
Methodology
Purpose and model boundary
This calculator compares two choices for shares you received through work, in tax year 2025 or 2026. You can sell now, or hold until a later date and sell then. The shares are either shares bought through an employee stock purchase plan (ESPP) or restricted stock units (RSUs) that have vested.
The later date is the first day the sale would qualify (the threshold; while it is still ahead, it is the hold date):
- for ESPP shares, it is the first day a sale is a qualifying sale;
- for RSU shares, it is the first day a sale is long-term.
Once that date has passed, selling now already qualifies (ESPP) or is long-term (RSU). There is no later date to wait for, so the three prices are shown as the same sale at other prices, and the sentence states what selling now would keep at each of them.
Nobody knows the share price on that date, so you enter three prices for it: low, base and high. For selling now and for holding at each of the three prices, the workbook works out:
- the ordinary income and the capital gain or loss of the sale;
- the federal income tax, the 3.8% net investment income tax and a flat state tax that the sale adds to your year;
- what you keep after that tax.
A sentence then states which choice keeps more at each price, and by how much to the nearest dollar. A difference that rounds to 0 cents reads "the same"; a difference of at least a cent, after rounding to cents, but less than half a dollar reads "the same, to the nearest dollar".
The comparison is not advice to sell or hold. It shows what the tax rules do under the prices you enter. It does not predict the share price, and the risk of holding a single company's shares is outside the model.
For the tax on a year's sales of other investments, use the Capital Gains Tax on Investment Sales Calculator. To choose which lots of one security to sell, use the Tax Lot Selection Method Calculator.
Every figure on this page is computed by the spreadsheet; the page adds nothing to it. The model is educational. It is not a tax return, and it is not financial, investment, tax or legal advice.
Inputs and units
- Plan type: ESPP or RSU. The choice decides which inputs apply and how the sale is taxed.
- For an ESPP only (they are hidden for an RSU, and the workbook never reads them then):
- the offering date, the first day of the offering period, when the plan granted you the option to buy;
- the share price on the offering date;
- the plan discount, from 0% to 15%;
- whether the plan has a lookback. With a lookback the discount applies to the lower of the offering-date price and the purchase-date price. Without one it applies to the purchase-date price only.
- The purchase date and the share price on it. For an RSU these are the vest and delivery date and the share price then: the date the units vested and the shares were delivered to you (the delivery date, if it came later). That price was taxed as income at vest and is your cost basis.
- Shares: how many you would sell, from 0.001 to 1 billion. Fractions are allowed.
- The share price today and the date you would sell if you sell now. The sale date must fall in the tax year you choose and on or after the purchase or vest date.
- Three share prices for the hold date: low, base and high. Entering today's price as the base price shows the effect of the tax alone.
- Tax year: 2025 or 2026. Its federal brackets, long-term breakpoints, standard deduction and limits apply to both choices.
- Filing status: single, married filing jointly, married filing separately or head of household. A qualifying surviving spouse uses married filing jointly, which has the same figures here.
- Other income for the year, before deductions: wages, interest and the like, without this sale. For an RSU, the income taxed when the units vested is already in your wages; include it here when they vested this year.
- Your deductions, optional. Leave it blank to use the standard deduction for the tax year and filing status.
- State tax rate, optional, from 0% to 20%. Leave it blank for no state tax. One rate stands for your state's brackets, and it applies to the ordinary income and the capital gain alike.
Share prices are in dollars and cents, from 0.01 to 1,000,000 dollars on the offering, purchase or vest date and from 0 to 1,000,000 dollars today and at the hold date. The shares times each price on the purchase or vest date, today and at the hold date must be at most 1 trillion dollars. Other income and deductions are from 0 to 1 trillion dollars. Dates are year-month-day from 1970-01-01 to 2099-12-31.
Governing relationships
For an ESPP, the price you paid per share is:
price paid = (1 − discount) × purchase-date price, or with a lookback (1 − discount) × the lower of the offering-date and purchase-date prices
The threshold is:
- for an ESPP, the day after the later of two years from the offering date and one year from the purchase date, because a qualifying sale must come more than two years after the option was granted and more than one year after the shares were transferred to you;
- for an RSU, the day after one year from the vest date, because a sale is long-term only when the shares were held more than one year.
The months until the threshold are its days from the sale date times 12 divided by 365.25. They read 0 once it has passed. The hold date is the threshold while it is still ahead of the sale date, and the sale date once it has passed.
Each sale is split into ordinary income and a capital gain or loss, per share, then multiplied by your shares.
An ESPP sale before the threshold is a disqualifying sale:
- the ordinary income is the purchase-date price less the price paid, whatever the sale price;
- the capital gain or loss is the sale price less the purchase-date price.
An ESPP sale on or after the threshold is a qualifying sale:
- the ordinary income is the lesser of the gain over the price paid and the discount measured on the offering-date price (the discount times that price), and never below 0;
- the capital gain or loss is the sale price less the price paid less that ordinary income.
An RSU sale has no ordinary income: the income was taxed at vest. The capital gain or loss is the sale price less the price on the vest and delivery date. The income taxed at vest, that price times your shares, is shown for reference and never taxed again here.
A capital gain or loss is long-term when the sale date is after the same day one year after the purchase or vest date, and short-term otherwise. A sale on the hold date is always long-term.
Each case runs one column of the federal tax worksheet for your year and filing status:
- the ordinary income is added to your other income;
- the capital gain or loss is the year's net short-term or long-term result;
- a net capital loss is deducted from ordinary income up to 3,000 dollars (1,500 if married filing separately), and the rest carries forward;
- taxable income is the income less the deduction, and never below 0;
- a long-term gain sits on top of the ordinary taxable income and is taxed at 0%, 15% and 20% by the year's breakpoints for your filing status;
- the ordinary part is taxed at the year's rate schedule, and the tax is the smaller of that sum and the regular tax on all taxable income.
A fifth column has neither the ordinary income nor the gain. The federal tax a case adds is its column less that one, and so is its net investment income tax. That tax is 3.8% of the smaller of the net investment income and the amount by which adjusted gross income exceeds the threshold for your filing status. Only the capital gain counts as net investment income: the ordinary income from an ESPP is pay. The state tax is your rate times the ordinary income and the gain included in income, never below 0.
tax added = federal income tax + net investment income tax + state tax
what you keep = sale price × shares − tax added
holding less selling now = what you keep if you hold − what you keep if you sell now
A negative tax added is a saving from a loss.
The figures each tax year uses are kept in the workbook by year, each with its source and the date it was read:
| Figure (single · married filing jointly · married filing separately · head of household) | 2025 | 2026 |
|---|---|---|
| Top of the 22% ordinary layer, taxable income | 103,350 · 206,700 · 103,350 · 103,350 | 105,700 · 211,400 · 105,700 · 105,700 |
| Top of the 0% long-term band, taxable income | 48,350 · 96,700 · 48,350 · 64,750 | 49,450 · 98,900 · 49,450 · 66,200 |
| Top of the 15% long-term band, taxable income | 533,400 · 600,050 · 300,000 · 566,700 | 545,500 · 613,700 · 306,850 · 579,600 |
| Standard deduction | 15,750 · 31,500 · 15,750 · 23,625 | 16,100 · 32,200 · 16,100 · 24,150 |
| Net investment income tax threshold, adjusted gross income | 200,000 · 250,000 · 125,000 · 200,000 | the same; the thresholds are not indexed for inflation |
| Yearly limit on a net capital loss | 3,000 · 3,000 · 1,500 · 3,000 | the same |
Calculation sequence
The spreadsheet first checks the inputs. It then computes:
- the price paid (ESPP), the threshold, the hold date and the months until the threshold;
- for selling now and for holding at each of the three prices: the sale price and date, the ordinary income and capital gain per share, the holding period, and the totals for your shares;
- the deduction for the year and filing status;
- the federal tax worksheet for the chosen year and filing status in five columns: the four cases and one without the sale;
- for each case, the federal income tax, net investment income tax and state tax it adds, what you keep, and the difference from selling now;
- the comparison sentence, the table and the chart.
A block of consistency checks then confirms the arithmetic before the status is returned.
Outputs and interpretation
The decision result is the months until the threshold. Beside it the page shows the threshold (the first qualifying, or long-term, date) and the comparison sentence. For an ESPP it also shows the price you paid per share. For an RSU the labels name the vest and delivery date and the first date of a long-term sale.
The evidence shows:
- what you keep after tax if you sell now;
- what you keep if you hold, at the low, base and high price;
- holding less selling now at each of the three prices;
- the table of the four cases: the price per share, the ordinary income, the capital gain or loss, the holding period, the tax added and what you keep.
The following are returned to the API and MCP, not shown as cards:
- each case's ordinary income, capital gain or loss, holding period and tax added (the table shows the same figures);
- the income taxed at vest for an RSU;
- the workbook's self-check.
Under the default inputs, the plan bought 100 shares on 2025-06-30. The plan has a 15% discount with a lookback, the offering-date price was 40 dollars and the purchase-date price 50, so you paid 34 dollars a share. The shares are worth 60 dollars today. A single filer in 2026 has 90,000 dollars of other income, takes the standard deduction of 16,100 and pays no state tax. The ordinary income is taxed at 22% and a long-term gain at 15%.
The hold date is 2027-01-03, two years and a day after the 2025-01-02 offering date and 2.6 months after the sale date of 2026-10-15.
- Selling now is a disqualifying sale: 1,600 dollars of ordinary income, the purchase-date price less the price paid, and a long-term gain of 1,000. It adds 502 dollars of tax, and you keep 5,498.
- Holding is a qualifying sale. The ordinary income falls to 600 dollars, the 15% discount measured on the 40-dollar offering price. At 45, 60 and 75 dollars a share you keep 4,293, 5,568 and 6,843 dollars.
At the base price of 60, which is today's price, holding keeps 70 dollars more: the effect of the tax alone. At 45, selling now keeps 1,205 dollars more, and at 75 holding keeps 1,345 more.
The examples change one thing at a time:
- Without a lookback you pay 42.50 dollars a share. Selling now then keeps 5,685 dollars, and holding at 60 keeps 5,695.50.
- With RSUs that vested on 2026-02-15 at 50 dollars and a 5% state tax, the 5,000 dollars of income at vest is already taxed. Selling now is a short-term sale that adds 270 dollars of tax. Holding to 2027-02-16 at 60 adds 200, so you keep 70 dollars more.
- With RSUs that vested on 2025-12-01 at 80 dollars, selling now at 60 is a short-term loss of 2,000 dollars. It saves 440 dollars of tax, and you keep 6,440.
The chart shows, for each of the three prices at the hold date, the grey bar of selling now beside the blue bar of holding. Selling now does not depend on the later price, so its bar is the same in every group. The gap between the bars is what holding gains or costs at that price, tax included.
Validation and status logic
The workbook evaluates the conditions below from top to bottom and returns the first matching status. An input hidden for an RSU never makes the status NOT VALID.
| Priority | Condition | Returned status |
|---|---|---|
| 1 | The plan type is not one of the choices | NOT VALID: choose ESPP or RSU from the list |
| 2 | A date is not a date or is outside 1970 to 2099 | NOT VALID: each date must be a valid date from 1970-01-01 to 2099-12-31 |
| 3 | The offering date is after the purchase date (ESPP) | NOT VALID: the offering date must be on or before the purchase date |
| 4 | The sale date is before the purchase or vest date | NOT VALID: the sale date must be on or after the purchase or vest date |
| 5 | The sale date is not in the chosen tax year | NOT VALID: the sale date must be in the tax year you chose |
| 6 | A share price on the offering, purchase or vest date is outside the supported interval | NOT VALID: the share prices on the offering, purchase or vest date must be from 0.01 to 1,000,000 dollars |
| 7 | The price today or a price at the hold date is outside the supported interval | NOT VALID: the share price today and the three prices at the hold date must be from 0 to 1,000,000 dollars |
| 8 | The shares, or the shares times a price, are outside the supported interval | NOT VALID: the number of shares must be from 0.001 to 1,000,000,000, and the shares times each price on the purchase or vest date, today and at the hold date at most 1 trillion dollars |
| 9 | The plan discount is outside the supported interval (ESPP) | NOT VALID: the plan discount must be from 0% to 15% |
| 10 | The lookback is not one of the choices (ESPP) | NOT VALID: choose Yes or No for the lookback |
| 11 | The tax year is not one of the choices | NOT VALID: choose a tax year from the list (2025 or 2026) |
| 12 | The filing status is not one of the choices | NOT VALID: choose a filing status from the list |
| 13 | Other income is outside the supported interval | NOT VALID: other income must be from 0 to 1 trillion dollars |
| 14 | Deductions are entered and outside the supported interval | NOT VALID: deductions must be blank or from 0 to 1 trillion dollars |
| 15 | A state tax rate is entered and outside the supported interval | NOT VALID: the state tax rate must be blank or from 0% to 20% |
| 16 | The workbook's self-check fails | CHECK: the self-check of the workbook failed for this result, so do not rely on it; please report it |
| 17 | An ESPP sale now is already a qualifying sale | CHECK: selling now is already a qualifying sale, so holding longer changes only the price |
| 18 | An RSU sale now is already long-term | CHECK: the shares are already held more than one year, so selling now is already long-term |
| 19 | In some case part of a capital loss carries forward | CHECK: in at least one case part of the capital loss cannot be used this year and carries forward; the figures do not count it |
| 20 | None of the preceding conditions applies | OK |
NOT VALID is a refusal, not a numeric answer: every number reads zero, the table is empty and no chart is drawn. CHECK accompanies a computed result but calls for the stated review. The self-check is reported separately as arithmetic-integrity evidence; it does not replace this ordered status chain.
Assumptions and limitations
Both choices are taxed with the tables of the tax year you choose, and the hold sale is added to the same year's other income, even when the hold date falls in the next year. A sale in a later year meets that year's brackets and your income then, so treat the hold figures as an estimate in today's terms.
The model covers a qualified employee stock purchase plan under section 423 and restricted stock units settled in shares. It does not cover incentive stock options under section 422, nonqualified stock options, restricted stock with a section 83(b) election, or a plan that is not a section 423 plan.
The ESPP rules follow the statute and IRS Publication 525. The price paid, the purchase-date price and the dates are the figures your employer reports on Form 3922. Publication 525 does not describe RSUs by name. The RSU rule, income at the share price when the shares are delivered and that price as your basis, follows from section 83 and its regulations, under which a promise to pay in the future is not yet property.
For a disqualifying sale the ordinary income is normally in your wages on Form W-2, and the basis your broker reports may be only the price you paid. Your basis for the capital gain includes the ordinary income, as the figures here assume. Check your forms so the same income is not taxed twice.
The ordinary tax uses the exact federal rate schedules. A return with less than 100,000 dollars of taxable income uses the IRS Tax Table, which taxes 50-dollar bands at their midpoint, so a filed return can differ by a few dollars.
The model also leaves out:
- Social Security and Medicare taxes and withholding on the ordinary income;
- the yearly 25,000-dollar limit on ESPP purchases and any other plan rule;
- a capital loss carried forward, which counts as no benefit here;
- other sales in the year, qualified dividends and other investment income;
- wash sales, commissions and fees;
- the alternative minimum tax;
- the additional standard deduction for age or blindness and limits on itemized deductions (enter your own deductions instead);
- state brackets, deductions and credits, and local taxes.
Restrictions and non-computing states
This calculator enforces its numeric and choice limits before it accepts a result. The plan type, lookback, tax year and filing status come from their lists. The workbook refuses:
- an offering date after the purchase date;
- a sale date before the purchase or vest date, or outside the tax year you choose;
- a price, a number of shares or a value of the shares outside its interval.
Blank deductions mean the standard deduction, and a blank state rate means no state tax.
Errors and warnings
A request rejected by the page's input limits is not a computed result. A transport or service failure cannot establish a fresh workbook answer. Review the workbook's References and Disclaimer and current tax rules with a qualified professional before using a result for a real decision.
References
Sources and further reading
Your shares, prices, dates, income, deductions and state rate come from the inputs. The federal figures for each tax year and the holding periods come from the sources below. They are kept in the workbook by year, with the date each was read, and the workbook's References sheet identifies them. The links explain the rules the model follows; they do not endorse this calculator.
- 26 U.S. Code § 423, Employee stock purchase plans (Legal Information Institute). Subsection (a)(1) sets the holding periods of a qualifying disposition: none within 2 years after the option was granted or within 1 year after the share was transferred to you. Subsection (b)(6) lets the price be as low as 85% of the share's value at grant or at purchase, whichever is lower, (b)(8) limits purchases to 25,000 dollars of stock a year, and (c) taxes the discount as ordinary income in a qualifying disposition, up to the lesser of the gain and the discount measured at grant (retrieved 2026-10-25).
- 26 U.S. Code § 421, General rules. Subsection (a) says no income results when the plan transfers the shares to you. Subsection (b) puts the income of a disposition that fails the holding periods in the year of that disposition (retrieved 2026-10-25).
- 26 U.S. Code § 424, Definitions and special rules, subsection (c)(1), says a disposition includes a sale, so selling the shares is the disposition the holding periods measure (retrieved 2026-10-25).
- IRS Publication 525 (2025), Taxable and Nontaxable Income, "Employee stock purchase plan". When the holding periods are not met, the ordinary income is the amount by which the share's value when the option was exercised exceeded the price, whatever the sale price, and it is added to your basis. When they are met and the option was granted at a discount, the ordinary income is the lesser of the gain and the discount at grant. "Restricted Property" explains that property is included in income at its value when it becomes substantially vested (retrieved 2026-10-17 and 2026-10-25).
- Instructions for Forms 3921 and 3922 (04/2025). Your employer files Form 3922 for each transfer of ESPP shares. Its boxes give the grant date, the purchase (exercise) date, the share price on each, the price paid, the number of shares, the date title was transferred, and the price as if the option had been exercised on the grant date (retrieved 2026-10-25).
- 26 U.S. Code § 83, Property transferred in connection with performance of services. Subsection (a) includes property received for services in income in the first year in which it is transferable or no longer subject to a substantial risk of forfeiture, whichever comes first, at its value then less any amount paid (retrieved 2026-10-17).
- 26 CFR 1.83-3, paragraph (e), says an unfunded and unsecured promise to pay money or property in the future is not property, which is why restricted stock units are taxed when the shares are delivered (retrieved 2026-10-17).
- 26 CFR 1.83-4, paragraphs (a) and (b)(1), starts the holding period just after the property is substantially vested and makes its basis the amount paid plus the amount included in income (retrieved 2026-10-17).
- IRS Publication 544 (2025), chapter 4, "Holding period", explains that counting starts the day after you acquire an asset and includes the day you dispose of it, so a sale on the anniversary is not held longer than one year (retrieved 2026-10-15).
- Revenue Procedure 2024-40, section 2.01 and section 2.03 (in its section 2, "2025 Adjusted Items": "Tax Rate Tables" and "Maximum Capital Gains Rate"), gives the tax year 2025 rate schedules and the 0% and 15% long-term breakpoints for each filing status (retrieved 2026-10-15).
- Revenue Procedure 2025-32, section 4.01, section 4.03 and section 4.14(1) (in its section 4, "2026 Adjusted Items": "Tax Rate Tables", "Maximum Capital Gains Rate" and "Standard Deduction", "In general"), gives the tax year 2026 rate schedules, long-term breakpoints and standard deductions. Its section 3.01 ("Removal of Section 2.15(1) of Rev. Proc. 2024-40") gives the tax year 2025 standard deductions as amended by Public Law 119-21, which replace those in section 2.15(1) of Revenue Procedure 2024-40; section 2.08 describes the change (retrieved 2026-10-15).
- IRS Topic 409, Capital gains and losses, explains the more-than-one-year rule for long-term gains, the 0%, 15% and 20% rates, and the yearly limit of 3,000 dollars, or 1,500 if married filing separately, on a net capital loss (retrieved 2026-10-15).
- Instructions for Form 1040 (2025), Qualified Dividends and Capital Gain Tax Worksheet, sets out how the long-term gain is stacked on ordinary taxable income and that the tax is the smaller of that figure and the regular tax; it also says the IRS Tax Table is used below 100,000 dollars of taxable income (retrieved 2026-10-15).
- Instructions for Schedule D (Form 1040) (2025), Capital Losses and the Capital Loss Carryover Worksheet, explain the yearly loss limit and the loss carried forward (retrieved 2026-10-15).
- IRS Questions and Answers on the Net Investment Income Tax gives the 3.8% rate, the thresholds for each filing status and that they are not indexed for inflation (retrieved 2026-10-15).
- Microsoft Support's EDATE and SUMPRODUCT documentation describe the date and summing functions the workbook uses for the hold date and the rate schedules.
This is an educational estimate, not financial, investment, tax or legal advice. It compares two choices under the prices you enter; it does not predict the share price or recommend either choice. Tax rules and figures change every year and depend on your whole return, so check them against current IRS guidance and with a qualified professional before you sell or file.
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.