Skip to content
Equity Compensation
Browse topics
Tool Updated 2026

ESPP return calculator

See the annualized return on your ESPP after the discount, lookback, and tax.

ESPPs · Forms & reporting

What return does your ESPP actually earn after tax? Usually a lot, because you only tie up the cash for a few months. The headline discount is not the answer. The real number is the after-tax gain divided by the cash you had locked up, scaled to a full year, and it is almost always higher than people expect.

This page walks you through that math by hand so you can run your own plan. A qualified plan can discount up to 15% of price and let you buy up to $25,000 of stock value per year. 2026 Those are the limits the return is built on.

The inputs you need

Gather five things before you start. Each one comes off your plan documents or a quick look at the stock.

  • The discount your plan offers, and whether it has a lookback
  • The offering-date price and the purchase-date price, if there is a lookback
  • The price you actually paid per share
  • The price at which you sold, or plan to sell
  • Roughly how long your cash was tied up, from the first payroll deduction to the sale

The math, step by step

Find your discount per share

Take the price you sold at minus the price you paid. With a lookback, the price you paid is based on the lower of the offering-date and purchase-date prices, after the discount. That gap is the dollar gain per share.

Multiply by your shares for the gross gain

Gain per share times the number of shares is your gross gain before tax. This is the whole pie you are about to split with the IRS.

Subtract the tax

A quick sale makes most of the gain ordinary income, taxed at your regular rate, with any small price move taxed as a short-term gain at the same rate. Hold longer and part of it can shift to the lower long-term rate. Use your own marginal rate here.

Use your actual rates

Your ordinary marginal rate and long-term capital gains rate depend on your total income and filing status, so the right rate to plug in is specific to your return.

Divide by the cash you tied up

After-tax gain divided by the average cash you had locked in the plan gives your period return. Because payroll deductions build up over the offering period, your average balance is lower than your total contribution, which makes the true return higher than a naive total-contribution number.

Annualize it

Scale the period return up to a full year. If your cash was locked for six months, a 10% period return is roughly 20% annualized. Short lock-up plus a real discount is what drives the big annualized figure.

Curate to one number

The figure that matters is the annualized after-tax return on cash tied up. That single number is what makes the ESPP one of the best deals an employee gets, and it is the one to compare against any other use of the same dollars.

The catch the return number hides

A high return assumes you sell. The moment you hold the shares for the tax break or because you believe in the stock, you are no longer measuring a clean discount. You are taking a concentrated bet, and the return math above no longer describes your risk.

The return is the buy, not the hold

The annualized return is earned by buying at a discount and selling promptly. Holding is a separate decision with its own risk, and it does not earn you any more of the discount. For why holding for the tax break often backfires, see qualifying vs disqualifying dispositions.

What this means for you

Run the five inputs through the steps and you will usually find an after-tax annualized return that is hard to match. Capture it by selling promptly, and judge the hold separately. To get the tax slice right when you compute the gain, see the worked example in the ESPP reporting guide, and to understand how the discount and lookback drive the deal, see how an ESPP works.

If you want a second set of eyes on the number before you size your contribution, talk it through with me.

More in ESPPs

Still have questions about your equity?

Join the community to ask directly, or take the two-minute fit check to see if a planning call makes sense.