ESPP Disposition Calculator
Sell your employee stock purchase plan shares too early and the whole discount is ordinary income — even if you sold at a loss. This works out what each path costs, and whether holding on is actually worth it.
Tax year 2026 Figures final Last verified 2026-07-27 How we verify
ESPP Disposition Calculator
Result
| Months until it qualifies | 16 |
|---|---|
| Ordinary income (goes on your W-2) | $13,000 |
| Capital gain or loss | $10,000 |
| Gain is long-term | No — taxed as ordinary |
| Price you paid per share | $17.00 |
| Cost basis per share | $30.00 |
| Effective rate on your gain | 27.4% |
| Capital loss carried to future years | $0 |
Estimates for the tax year shown, on the assumptions set out under what this does not model. Educational information, not tax advice.
Line by line
| Purchase price per share | $17.00 |
|---|---|
| Total you paid | $17,000 |
| Gross proceeds | $40,000 |
| Ordinary income recognised | $13,000 |
| Cost basis per share (purchase price + ordinary income) | $30.00 |
| Capital gain or loss | $10,000 |
| Total ordinary income tax for the year | $42,664 |
| Long-term capital gains tax | $0 |
| Net investment income tax | $380 |
| Tax attributable to this sale | $6,310 |
| Ordinary income if you waited to qualify | $3,000 |
| Tax if you waited to qualify | $4,480 |
An employee stock purchase plan looks like the simplest benefit your employer offers. You set aside part of each paycheck, twice a year it buys company stock at a discount, and the discount is free money. The tax treatment is where that simplicity ends.
Shares bought under a §423 plan are taxed one of two entirely different ways depending on when you sell them. Sell early and the whole discount becomes ordinary income taxed at your top rate. Hold long enough and most of it becomes a long-term capital gain instead. The dividing line is two years from the start of the offering period and one year from the purchase — both, not either.
What almost nobody realises is that the early-sale tax is owed on the discount you received at purchase, not on what you actually made. Sell below what you paid and you can still owe thousands in ordinary income tax on a trade that lost money. The calculator above prices both paths and tells you which is genuinely cheaper — including the cases where holding on is the wrong answer.
Background reading: The tax forms your equity generates.
How this is calculated
Two formulas, and which one applies is decided entirely by the calendar. The second is where the surprises live.
-
What you paid
discount applied to the lower of the grant-date price and the purchase-date priceThat is the lookback. Without one the discount comes off the purchase price alone, which on a rising stock is worth dramatically less. -
Which disposition this is
qualifying if at least 2 years from the offering start AND at least 1 year from the purchaseBoth conditions. Employees routinely clear the one-year mark, assume they are safe, and miss the two-year one — the offering period counts from its first day, not from the purchase. -
Ordinary income — sold early
purchase-date price − price paidThe full spread at purchase, owed regardless of what you sold for. It appears on your W-2, but usually with no tax withheld against it. -
Ordinary income — held long enough
the lesser of (sale price − price paid) and (discount × grant-date price)Note which price the second term uses. Measuring the discount against the grant-date value, not the price you paid, is the provision that produces every counter-intuitive result on this page. -
Capital gain
sale price − (price paid + ordinary income)The ordinary income you just recognised is added to your basis, so you are not taxed on it twice. Long-term if held over a year from purchase.
A worked example
Maya’s plan runs six-month offering periods with a 15% discount and a lookback. The stock opened the period at $20 and closed it at $30, so her purchase price is 15% off the lower figure — $17 a share. She buys 1,000 shares for $17,000, and with the stock at $30 they are worth $30,000 the moment they land.
Two months later the stock reaches $40 and she sells. Her broker shows a $23,000 profit and she assumes it is a capital gain. It is not. Because she sold inside both holding periods, the $13 per share she was effectively discounted at purchase is compensation, and the remaining $10 a share is a short-term gain taxed at exactly the same rate.
On a $200,000 salary that is a five-figure tax event, and her employer withheld nothing against it. Had she waited until the two-year mark, the ordinary income would have fallen to $3 a share and the other $20 would have been a long-term capital gain.
| Qualifying | false |
|---|---|
| Months Until Qualifying | $16.00 |
| Purchase Price | $17.00 |
| Ordinary Income | $13,000.00 |
| Capital Gain | $10,000.00 |
| Cost Basis Per Share | $30.00 |
| Long Term Gain | false |
| Tax Ordinary | $42,664.00 |
| Tax Niit | $380.00 |
| Tax From Sale | $6,310.00 |
| Net Proceeds | $33,690.00 |
| Saving From Waiting | $1,830.00 |
Every figure here is generated by the same code that runs the calculator and asserted on each build against a case hand-computed from §421(b) and the 2026 bracket tables.
What this does not model
Every calculator has a boundary. Here is where this one stops — read it before relying on the number.
- State tax is not modelled at all. Ordinary income from an ESPP is taxable in most states that have an income tax, and several treat capital gains as ordinary income, so your real total is higher than the federal figure shown.
- Holding periods are entered in whole months, but the statute runs on calendar dates. If you are within a week of either the one-year or the two-year mark, work from the actual dates on your Form 3922 rather than trusting a month count.
- The model assumes a single purchase lot. Most people accumulate shares across many purchase dates, each with its own grant price, purchase price and clock, and each has to be calculated separately. Selling shares without specifying a lot means your broker will use first-in-first-out, which may not be what you want.
- It assumes your plan qualifies under section 423. Non-qualified employee purchase plans are taxed as ordinary compensation at purchase with no favourable holding period at all, and nothing on this page applies to them.
- Capital loss netting is simplified: short-term and long-term amounts are netted against each other and against any other long-term gains you enter, then the $3,000 ordinary-income limit is applied. A return with a complicated mix of short-term gains, prior carryforwards, and collectibles will differ.
- The alternative minimum tax is not modelled. ESPP dispositions rarely trigger it, but a large one alongside other preference items could.
- Death and gifts are excluded. A disposition by reason of death is treated as qualifying regardless of holding period, and gifting shares has its own rules.
Questions
Can waiting for a qualifying disposition ever cost me more?
Yes, and this is the single most useful thing on this page. It happens when the share price fell during the offering period, because the qualifying formula measures your ordinary income against the price at the *start* of the offering — which was high — rather than against the price you actually paid.
Try it: a stock at $100 when the offering opened and $20 when it closed gives you a $17 purchase price. Sell at $25 today and your ordinary income is $3 a share. Wait to qualify and it becomes $8 a share, because 15% of the $100 grant price is $15 and your actual gain of $8 is the lesser figure. If you have already passed the one-year mark, selling now gives you long-term treatment on the difference and costs less in total. The calculator will show a negative saving when this applies.
I sold at a loss. Why do I still owe tax?
Because in a disqualifying disposition the ordinary income is fixed by the spread on the purchase date, not by what happened afterwards. §421(b) recognises the benefit you received when you bought the shares at a discount, and a later fall in the price does not undo it.
You do get a capital loss, measured from a basis that includes the ordinary income — but capital losses offset only $3,000 of ordinary income a year under §1211(b), with the rest carried forward. Enter a sale price below your purchase price in the calculator and you will see tax owed on a trade that lost money. Selling immediately at purchase, before the price can move, is the standard way to avoid ever being in this position.
Does my employer withhold tax on this?
Generally not, and this is where people get caught. The ordinary income from a disqualifying disposition is reported on your W-2, but employers are not required to withhold federal income tax against it, and most do not. You receive a W-2 showing income that nothing was paid against.
One consolation: ESPP income is exempt from Social Security and Medicare tax under §3121(a)(22), unlike an ordinary bonus. But you should expect to fund the income tax yourself, and a large sale can push you into underpayment penalties if you do not make an estimated payment.
What is a lookback and how much is it actually worth?
A lookback lets the plan apply your discount to whichever was lower: the price when the offering period opened or the price on the purchase date. It is the most valuable feature a plan can have, and it is optional — check your plan document rather than assuming.
Switch the lookback setting in the calculator to see it on your own numbers. With a stock rising from $20 to $30 and a 15% discount, a lookback plan charges you $17 a share while a plan without one charges $25.50 — the discount is nominally the same 15% but the effective one is 43%. On a rising stock the lookback is worth far more than the headline discount.
My broker’s 1099-B shows a much bigger gain than this. Which is right?
This page is, and the discrepancy is one of the most common sources of ESPP overpayment. Since 2014 brokers have been prohibited from adjusting the reported basis on shares acquired through an employee plan, so the 1099-B typically shows only what you paid — omitting the ordinary income that was added to your basis.
If you enter that figure straight onto your return you pay tax twice on the discount: once as W-2 compensation and again as a larger capital gain. The correction goes on Form 8949 with an adjustment code, using your true basis — the cost basis per share in the results above. Your Form 3922 has the grant-date and purchase-date prices needed to work it out.
When exactly does the two-year clock start?
On the first day of the offering period — the grant date — not on the purchase date and not on the day you enrolled a contribution. For a plan with six-month offering periods that means shares bought at the end of an offering are already six months into their two-year clock, and need only eighteen further months.
For a plan with a 24-month offering period containing four purchase dates, all four purchases share a single grant date, so the later ones qualify sooner after purchase. Both figures are on the Form 3922 your employer issues for each purchase; work from those dates rather than from memory.
Should I just sell every purchase immediately?
For many people, yes, and it is a defensible default. Selling at purchase locks in the discount, produces a capital gain of almost nothing because the price has barely moved, removes the risk of owing tax on a position that later falls, and avoids adding to a concentration in the company that already pays your salary.
The cost is real but bounded: you forgo the chance to convert the discount into long-term capital gain treatment. Run both scenarios above with your actual numbers. If the saving from waiting is small relative to how much of your net worth would sit in one employer’s stock for two years, the concentration risk is usually the bigger number.
What happens if I leave the company?
Shares you have already purchased are yours and their clocks keep running — leaving does not convert a future qualifying disposition into a disqualifying one. Contributions not yet used to buy shares are normally refunded to you in cash, and any current offering period ends without a purchase.
What does change is practical: your former employer still has to report a disqualifying disposition on a W-2, and getting a corrected form from a company you have left is harder than getting one from a company you work at. Keep every Form 3922 you were issued.
Is anything I enter here sent anywhere?
No. This calculator is a static JavaScript file that runs inside your own browser and makes no network request. Your salary, your share counts and your prices never leave your device, there is no account to create, and nothing is stored between visits.
Sources
Every rate and threshold used above traces to one of these. We cite the statute, the regulation, or the IRS directly — never another commentary site.
- IRC §423 — Employee stock purchase plans
- IRC §421 — General rules for statutory stock options
- IRC §1211(b) — Limitation on capital losses
- IRC §3121(a)(22) — No FICA on statutory stock option dispositions
- IRS Publication 525 — Employee stock purchase plans
- IRS Form 3922 — Transfer of stock acquired through an ESPP
- Rev. Proc. 2025-32 (2026 inflation adjustments) — §2.15
- Rev. Proc. 2025-32 (2026 inflation adjustments) — §2.01
- 26 U.S.C. §1411 — Net investment income tax (statutory, not indexed)
- Rev. Proc. 2025-32 (2026 inflation adjustments) — §2.03
This page is educational information, not tax, legal or investment advice, and using it creates no professional relationship. Equity compensation interacts with the rest of your return in ways a single calculator cannot see. Before acting on a figure of any size, take it to a qualified tax adviser.