Skip to main content
All Articles
Financial Guide
6 min read June 13, 2026
Verified June 2026

How to Calculate ESPP Tax on Company Stock Purchase Plans

Most ESPP participants report their taxes wrong and overpay as a result. The IRS treats ESPP income across two separate tax events, and conflating them costs real money. Here is exactly how the math works.

How to Calculate ESPP Tax on Company Stock Purchase Plans

Key Takeaways

  • The IRS splits ESPP taxation into two events: ordinary income at purchase and capital gain or loss at sale. Most participants only think about the second.
  • Failing to add the ESPP discount to your cost basis is the single most common error. On a $50,000 position it can generate a phantom double-tax bill exceeding $4,000.
  • Calculate ordinary income on the discount at purchase, adjust your cost basis upward by that same amount, then apply short-term or long-term capital gains rates to any remaining gain at sale.
  • Tool: Run your ESPP tax numbers in the CalcMoney Income Tax Calculator →

File Smarter This YearSPONSORED

Stop leaving money on the table. TurboTax finds every deduction automatically.

INTERACTIVE // Calculator
FULL SCREEN
LOADING Calculator...

The Two-Event Tax Structure Every ESPP Participant Must Understand

An Employee Stock Purchase Plan gives you the right to buy company stock at a discount, typically 10% to 15% below fair market value. That discount is not a gift the IRS ignores. It is compensation, and the IRS taxes it as ordinary income.

The confusion starts here. There are two separate taxable events in every ESPP cycle. Most participants mentally register only one of them.

Event 1: The purchase date. The moment your company purchases shares on your behalf, the difference between what you paid and the fair market value of the stock becomes ordinary income. Your employer is supposed to report this on your W-2. Many do. Many also get the numbers wrong.

Event 2: The sale date. When you eventually sell those shares, the difference between your adjusted cost basis and the sale proceeds becomes a capital gain or loss. Whether that gain is short-term or long-term depends on how long you held the shares after purchase.

These two events interact. Mishandling one corrupts the other.

Qualifying vs. Disqualifying Dispositions

Before calculating anything, determine which type of disposition applies to your sale. The IRS uses these two categories to determine how much ordinary income you recognize and when.

Qualifying Disposition

A qualifying disposition occurs when you meet both of the following holding period requirements:

  • You sell more than two years after the offering date (the first day of the purchase period).
  • You sell more than one year after the purchase date (the day shares were actually bought).

A qualifying disposition generally produces less ordinary income. The ordinary income component is capped at the lesser of two amounts: the actual discount you received based on the offering date price, or the total gain on the position.

Disqualifying Disposition

Any sale that does not meet both holding period tests is a disqualifying disposition. The ordinary income component equals the full spread between the purchase price you paid and the fair market value on the purchase date. This amount is typically higher than the qualifying disposition calculation, and it is taxed at your marginal ordinary income rate, which for high earners sits at 32%, 35%, or 37%.

Selling shares immediately after purchase, a common strategy to eliminate stock concentration risk, always produces a disqualifying disposition.

The Cost Basis Problem That Generates Double Taxation

Your broker reports the proceeds from your ESPP sale on Form 1099-B. Since 2014, brokers are required to report cost basis for covered shares. The problem is that many brokers report only what you paid out of pocket, without adding the ordinary income component already reported on your W-2.

If you enter the broker's reported basis into your tax return without adjusting it upward, you pay income tax twice on the same dollars. Once through your W-2. Once again as phantom capital gain on your Schedule D.

The corrected cost basis formula is straightforward:

Adjusted Cost Basis = Amount You Paid + Ordinary Income Already Recognized

This adjustment is your responsibility. The IRS does not catch it automatically. TurboTax and most tax software will walk you through an adjustment worksheet, but you have to know the adjustment is required before you can make it.

Worked Example 1: Disqualifying Disposition

Sarah works at a mid-cap technology firm. Her ESPP offering period runs six months. The plan carries a 15% discount with a lookback provision that applies the discount to the lower of the stock price at the offering date or the purchase date.

  • Offering date stock price: $80.00
  • Purchase date stock price: $100.00
  • Purchase price Sarah paid (15% discount off $80.00): $68.00
  • Shares purchased: 400
  • Sarah sells all 400 shares nine months after purchase at $105.00 per share.

Because she sold fewer than two years after the offering date and fewer than one year after the purchase date, this is a disqualifying disposition.

Step 1: Calculate ordinary income. Fair market value at purchase: $100.00 Amount Sarah paid: $68.00 Spread per share: $32.00 Total ordinary income: $32.00 x 400 = $12,800

This $12,800 appears on her W-2. She pays ordinary income tax on it at her marginal rate. Assume a 32% federal rate. Federal income tax on ordinary income component: $12,800 x 0.32 = $4,096

Step 2: Calculate adjusted cost basis. Out-of-pocket cost: $68.00 x 400 = $27,200 Add ordinary income recognized: $12,800 Adjusted cost basis: $40,000 Adjusted basis per share: $100.00

Step 3: Calculate capital gain. Sale proceeds: $105.00 x 400 = $42,000 Adjusted cost basis: $40,000 Capital gain: $2,000

Sarah held for nine months, so this is a short-term capital gain taxed at her ordinary income rate of 32%. Tax on capital gain: $2,000 x 0.32 = $640

Total federal tax liability on this ESPP cycle: $4,736

If Sarah had used the broker's unadjusted basis of $27,200, she would have reported a capital gain of $14,800 instead of $2,000 and overpaid by roughly $4,096 in federal tax.

Worked Example 2: Qualifying Disposition

David participates in an ESPP with a 15% discount and a 24-month offering period. He holds his shares for the required period.

  • Offering date stock price: $60.00
  • Purchase date stock price: $90.00
  • Purchase price David paid (15% discount off $60.00): $51.00
  • Shares purchased: 500
  • David sells all 500 shares 28 months after the offering date at $98.00 per share.

Both holding period tests are met. This is a qualifying disposition.

Step 1: Determine the ordinary income component. In a qualifying disposition, ordinary income equals the lesser of:

  • The actual discount based on the offering date price: $60.00 x 15% = $9.00 per share
  • The total gain per share: $98.00 sale price minus $51.00 paid = $47.00 per share

The lesser amount is $9.00 per share. Total ordinary income: $9.00 x 500 = $4,500

Federal income tax on this component at 24%: $4,500 x 0.24 = $1,080

Step 2: Calculate adjusted cost basis. Out-of-pocket cost: $51.00 x 500 = $25,500 Add ordinary income recognized: $4,500 Adjusted cost basis: $30,000 Adjusted basis per share: $60.00

Step 3: Calculate long-term capital gain. Sale proceeds: $98.00 x 500 = $49,000 Adjusted cost basis: $30,000 Long-term capital gain: $19,000

David held for over a year after purchase, so the long-term capital gains rate applies. At his income level, assume 15%. Tax on long-term gain: $19,000 x 0.15 = $2,850

Total federal tax liability on this ESPP cycle: $3,930

The qualifying disposition produces meaningfully lower ordinary income than a disqualifying disposition would in this scenario. The long-term capital gains rate on the remaining gain compounds that advantage.

State Income Tax Adds Another Layer

Federal tax is only part of the calculation. California, New York, and most other states tax ESPP ordinary income at full state marginal rates. California's top rate is 13.3%. For a $12,800 ordinary income component, that adds $1,702 in state tax for a California resident.

Some states also tax capital gains as ordinary income, eliminating the federal rate differential entirely. Know your state's treatment before making holding-period decisions.

Form 3922 and What to Do With It

Your employer must provide Form 3922 for each tax year in which you purchased ESPP shares. This form contains the offering date, the purchase date, the fair market value on both dates, the price you paid, and the number of shares transferred.

Keep every Form 3922 you receive. You will need these figures when you eventually sell, regardless of how many years pass. Do not rely on your broker to have this data. Many do not.

Running Your Own Numbers

The mechanics above are precise, but they interact with your full income picture. Your marginal rate, state of residence, filing status, and other capital gains exposure all affect the final number.

The CalcMoney Income Tax Calculator handles the full federal calculation, including ordinary income stacking and capital gains rate thresholds. Enter your W-2 income, add the ESPP ordinary income component, then model the capital gain separately to see your actual after-tax position.

Use the CalcMoney Income Tax Calculator to model your ESPP tax position →

You Might Also Like

Knowing the structure is half the work. The other half is running your specific numbers before you file, not after.

FEATURED PARTNERFIDELITY

Put These Numbers to Work

Open a Fidelity brokerage account. $0 commissions, no account minimums, fractional shares available.

Run the Numbers →
or

One money insight per week.

Calculator deep-dives, rate alerts, and financial analysis written for real decisions. Unsubscribe anytime.

1 email/week. No spam. Unsubscribe in one click.

Free Tools

Run the actual numbers

Stop estimating. Plug in your numbers and get a precise answer in seconds. Free, no signup required.

Open Free Calculators