How ESPP discounts, lookbacks, and the 2-year/1-year holding rules split your gain between W-2 income and capital gains — with the same sale worked both ways.
When you sell ESPP shares, the tax question is always the same: how much of your profit is ordinary income on your W-2, and how much is capital gain on Schedule D? The answer depends entirely on one test — whether you held the shares at least two years from the grant (offering) date and one year from the purchase date. Pass both and it's a qualifying disposition, with a small, favorable slice of ordinary income. Fail either and it's a disqualifying disposition, with the full purchase-date discount taxed as wages no matter how the stock has performed since.
Neither outcome is a disaster — an ESPP with a 15% discount is typically worth participating in either way. But the two paths split the same dollars very differently, and the reporting is famously error-prone. This post works one example through both paths so you can see exactly where each dollar lands. For how ESPPs fit alongside RSUs and options, start with our tech employee's guide to equity compensation taxes.
A typical Section 423 ESPP lets you buy company stock through payroll deductions at a 15% discount. Many plans sweeten this with a lookback: the discount applies to the lower of the stock price at the start of the offering period or at the purchase date. If the stock rose during the offering period, you get 15% off the older, lower price — a built-in gain larger than 15%.
Example we'll use throughout: the offering begins with the stock at $100. Six months later, on the purchase date, it's $120. With a lookback, you buy at 85% of the lower price: $85 per share. Your shares are worth $120 the day you get them — a $35 per-share head start. Nothing is taxed yet; ESPP purchases themselves aren't taxable. Everything waits for the sale.
A sale is a qualifying disposition only if both clocks have run:
Sell any earlier and it's a disqualifying disposition. Note the two-year clock starts at the offering start, not the purchase — with a six-month offering period, qualifying means holding roughly a year and a half after purchase.
Say you sell 100 shares at $140, ten months after buying at $85 (market value $120 on purchase day). Too early on both clocks — disqualifying. Here's the split:
The key feature: in a disqualifying disposition, the entire purchase-date bargain is wages — even if the stock later crashed. Sell those $85 shares at $90 and you'd still have $3,500 of W-2 income, offset by a $3,000 short-term capital loss ($90 sale vs $120 basis). Ordinary income with an attached capital loss is the ugliest version of this trade.
Now the same sale at $140, but after both holding periods have run. In a qualifying disposition, ordinary income is the lesser of two numbers:
The lesser is $15. So:
And if a qualifying sale happens at a loss — you sell below your $85 purchase price — there's no ordinary income at all, just a capital loss. The "lesser of" rule caps wages at your actual gain.
ESPPs inherit the same broker-reporting flaw as RSUs: your 1099-B typically shows only what you paid — $85 in our example — not the adjusted basis that includes the ordinary income you're reporting as wages. Copy the 1099-B blindly and the $3,500 (or $1,500) that went on your W-2 gets taxed a second time as capital gain. Your true basis is purchase price plus the ordinary-income amount: $120 in the disqualifying example, $100 in the qualifying one. You fix it on Form 8949 with an adjustment, exactly as with RSU cost-basis corrections — pull the broker's supplemental statement and Form 3922, which your employer files for each ESPP purchase and which carries every number you need.
It's a genuine trade-off, not a rule:
Note that holding a big slug of employer stock from ESPP purchases often stacks on top of RSU shares you're also holding — concentration builds quietly. Similar hold-vs-sell timing logic, with different mechanics, drives ISO exercise and AMT planning if you also hold incentive stock options.
Two years from grant, one year from purchase. Pass both tests and only the grant-date discount is wages; fail either and the whole purchase-date spread hits your W-2.
ESPP taxation comes down to one holding-period test that splits your profit between W-2 wages and capital gains, plus one reporting trap — the understated 1099-B basis — that can tax the wage slice twice if you miss it. Run the math both ways before you sell, and reconcile every sale against Form 3922 when you file. Taxagon's CPAs and EAs untangle ESPP dispositions and basis corrections every filing season — if you'd rather hand it off, our individual tax filing service has you covered.
This article is general information, not tax advice for your specific situation. Tax law changes; figures are for the years stated.
Talk it through with a licensed US tax professional — we'll tell you honestly whether it applies to your situation.

Beyond the obvious laptop and software: the home office rules that aren't scary, the vehicle method most people pick wrong, the self-employed health insurance deduction, and the retirement moves that dwarf everything else.

Permanent QBI, permanent 21% corporate rate, bigger QSBS — the 2026 rules changed the entity math for good. A practical framework for choosing (or switching), with the real numbers.

Equity compensation creates the most expensive tax surprises we see — under-withheld RSUs, double-taxed ESPP shares, phantom AMT from ISOs. How each type is really taxed, and the moves that protect you.