The one rule that matters: no tax at purchase
With a qualified Section 423 ESPP, buying the shares is not a taxable event — unlike RSUs, nothing is taxed at purchase. Everything happens when you sell. What you owe then depends entirely on how long you held.
Qualifying vs disqualifying: the holding-period test
Your sale is a qualifying disposition only if you held the shares more than 2 years from the offering/grant date and more than 1 year from the purchase date. Miss either one and it's a disqualifying disposition. This single distinction changes how much of your gain is taxed as ordinary income versus capital gain.
Qualifying disposition — the tax-friendly path
Here your ordinary income is the lesser of two numbers: the discount measured at the grant date (grant-date price × discount %), or your actual gain (sale − price paid). The rest of the gain is a long-term capital gain at 0/15/20%. Because the ordinary-income slice is capped at the grant-date discount, a stock that rose a lot gets most of its gain taxed at the lower capital-gains rate.
Disqualifying disposition — you sold too early
Sell before the holding period and the full bargain element at purchase — purchase-date FMV minus what you paid — is ordinary income, no matter what the shares did afterward. That amount is added to your cost basis, and the rest (sale − purchase-date FMV) is a capital gain or loss, short- or long-term depending on how long you held from purchase.
The real surprise: it isn't withheld
For a §423 ESPP, employers generally don't withhold income tax or FICA on this ordinary income — and for qualifying sales, may not even report it on your W-2. So the tax is real, due at filing, and often invisible until you owe it. If it's missing from your W-2, you report it on Schedule 1, line 8k.
Don't double-count your basis
Because the ordinary income is added to your cost basis, only the amount above that basis is a capital gain. Brokers often report only the purchase price as basis, so if you don't adjust it, you'll pay tax twice on the discount. The most common ESPP filing error is overpaying by forgetting the basis adjustment.
See your exact ESPP tax → Free calculator: enter your Form 3922 numbers and your sale — get your qualifying/disqualifying split, ordinary income, capital gain and the tax you'll owe.