Skip to content
Equity Compensation
Browse topics
Guide Updated 2026

The ESPP mistakes that quietly cost you money

From selling a few days early to paying tax twice on your discount, the ESPP punishes small oversights. Here is the full list of the traps and how to dodge each one.

ESPPs · Pitfalls

How can selling on a Tuesday cost more tax than selling the next Monday? Because the ESPP is a great deal wired with quiet tripwires, and most of them spring from a small oversight, not a bad decision. Cross a holding-period date by a few days and part of your gain flips to a higher tax. File off the broker’s form and you pay tax twice on the same dollars. Skip the plan out of habit and you turn down close to free money. None of these feel like a loss in the moment, and that is exactly why they persist.

This is the full list of the ways an ESPP quietly costs people, in the order they tend to hit: not enrolling, under-funding, the holding-period date trap, holding too long for the tax break, the wash sale overlap, and the double-taxed discount at filing time. Each one has a clean fix. Read it through once and you will catch every one of them before it catches you.

Mistake 1: not enrolling at all

The most expensive ESPP mistake is the one most people make, which is sitting it out. They turn down a guaranteed discount out of habit, busyness, or a vague worry about tying up cash. A qualified Section 423 plan can sell you stock at up to a 15% discount 2026, and you can buy up to $25,000 of stock value per calendar year, measured at the grant-date price 2026. Both are statutory limits, not your employer being generous.

That discount is the whole point. Buy at 85 cents on the dollar, sell soon after, and you have captured the spread before the stock has much chance to move. The return on cash you tied up for a few months is large, because you only had it locked for a few months. Most reasons people give for skipping fall apart on a second look.

My cash is tight

The money comes out of payroll over the period and comes back, plus the discount, when you sell. The lock-up is short, and the return on that short lock-up is hard to beat anywhere else.

I do not want more company stock

Fair, and you should not pile it up. The fix is to sell promptly, not to skip the plan. You can take the discount without taking the bet.

It is too complicated

Enrolling is a payroll election. The complexity is in the tax reporting at sale, and that is solvable (see Mistake 6). Do not pay a real price to dodge a paperwork chore.

The hidden price of a free discount you skipped

Skipping the ESPP is not a neutral act. It is choosing to leave the discount on the table every cycle, and that gap compounds quietly across years you never enrolled. The cost is invisible because you never see the money you did not make.

Sitting out is reasonable in a short list of cases: you cannot spare any payroll cash without going into debt, your plan is nonqualified with no real discount, or you are not yet capturing a higher-priority employer 401(k) match. Outside those, enroll and sell promptly. For whether to max the contribution once you are in, see is maxing your ESPP worth it.

Mistake 2: enrolling, then under-funding

Skipping the plan is the obvious mistake. Under-funding is the sneaky one. You did the hard part, you enrolled, then set the contribution low out of caution and stopped thinking about it. The plan runs, you capture a sliver of the discount, and the rest of what you were entitled to evaporates.

The discount is a return for buying, not for being right about the stock. On a quick-sale plan, you collect it the week you buy and carry almost no risk to get it. So an unclaimed discount is not a missed upside that might or might not have happened. It is a near-certain gain you chose not to take.

Under-funding never stings, so it never gets fixed

Under-funding does not feel like a loss, and that is exactly why it persists. You never see the money you did not make, so there is no sting to correct the behavior. Meanwhile the forgone discount compounds quietly across every period you ran the plan at half speed.

The objections are almost always cash-flow worries dressed up as caution, and they have the same answer as skipping: the money comes back plus the discount when you sell, and after the first cycle the recycled proceeds help fund the next round. If you are already enrolled, the real question is not whether to participate, it is whether you are capturing the whole discount or half of it. Raise the contribution to what your cash flow and plan allow, sell soon after each purchase, and diversify. For the routine that runs this on autopilot, see the max-then-sell routine inside the strategies pillar.

Mistake 3: the holding-period date trap

Now the one that gives this guide its name. A qualified ESPP gives you a tax break only if you clear both holding periods before you sell. Clear them, and the sale qualifies. Sell before either one is up, and it is a disqualifying disposition, and part of your gain flips from capital gain to ordinary income.

The two clocks that define a qualifying sale

A qualifying ESPP disposition requires holding more than two years from the first day of the offering period and more than one year from the purchase date. Both clocks have to clear. Sell before either one is up and the sale is disqualifying.

Here is the part that surprises people: the two-year clock runs from the offering start, not from the purchase. In a plan with a long offering period, your shares can be more than a year old and still fail the test, because the offering started even earlier. The purchase date is not the only date that counts.

Disqualifying disposition (sold before clearing both clocks)

The discount is ordinary income, reported as wages. Any gain beyond that is capital gain, short or long term depending on how long you held from purchase. This is the common, simple path when you sell soon after buying.

Qualifying disposition (held past both clocks)

Part of the benefit is still ordinary income, but more of the gain can be long-term capital gain. The tax can be lower, in exchange for holding a concentrated stock longer.

The surprise is not that the two outcomes differ. It is how close to the line people sell without knowing the line is there. They hold for months, decide to cash out, and trip a clock by a week. The fix is to know where both clocks stand before you sell.

Find both dates before you sell

Pull the offering start date and the purchase date from your Form 3922 or your plan portal. You need both to know which clock controls.

Decide on purpose, not by the calendar

If you are selling soon after purchase, accept the ordinary income and move on. That is the clean default. Only hold for a qualifying disposition if you have decided you want the position and can carry the risk.

For the mechanics of how each outcome is taxed, see qualifying vs disqualifying dispositions.

Mistake 4: holding too long for the tax break

Mistake 3 is missing the date by accident. This one is worse, because people do it on purpose. The ESPP holding rule offers a slightly lower rate if you wait out the clocks, and that little carrot pulls people into a concentrated bet they never meant to make. Why do smart people hold a stock they would never buy at full price? A small tax break talked them into it.

Here is the principle I keep coming back to. The discount is the reward for buying. Holding adds nothing to it. Once you have the shares, the only question left is whether you want to own this much of your employer’s stock, and the tax break should not be the thing that answers it.

Run the second-order math. To get the lower rate, you have to hold a single company’s stock for the full clock, through whatever the market does to it in that window. You are trading a known, small tax saving for an unknown, possibly large price swing on a concentrated position. That trade only looks good if you ignore the risk you are taking to get it.

The tax tail wagging the dog

Plenty of people hold a concentrated position for a year to save on tax, watch the stock drop more than the tax would ever have cost, and end up worse off than if they had sold at purchase and paid ordinary income on a clean discount. A known tax saving is not worth an unknown stock loss in a company you are already exposed to through your job. I have watched people clear the holding period and book the lower rate on shares worth less than they paid. The IRS was happy. They were not.

Ask one question, and answer it honestly. If these shares were cash in your account today, would you buy this much of your employer’s stock at full price? If the answer is no, you are holding for the tax break alone, and the break is rarely big enough to justify the risk. If the answer is yes, you genuinely want the position, then holding for the qualifying rate is fine, because you were going to own the stock anyway and the lower tax is a bonus on a bet you already chose. The test is whether you would make the bet without the tax break. For the full sell-or-hold framework, see is maxing your ESPP worth it. For how the same shares produce two very different tax bills, see the qualifying vs disqualifying worked example, and for one employee who held straight into a 60% drop, holding ESPP shares through a crash.

Mistake 5: the wash sale overlap

Can your ESPP quietly kill a tax loss you took on purpose? Yes, and it is one of the sneakiest traps in equity comp. If you sell company shares at a loss and your ESPP buys more of the same stock around the same time, the wash sale rule can disallow the loss you were counting on.

The wash sale rule blocks a capital loss when you buy the same stock within a 30-day window on either side of the sale, so a 61-day window centered on the sale date. The loss is not gone forever. It gets added to the basis of the replacement shares, so you recover it later when you sell those. The catch is the timing.

An ESPP purchase counts as a buy

People watch their brokerage account and forget the ESPP is buying too. A purchase through the plan is a purchase of the same stock. If it lands inside the 61-day window around a loss sale, it can trigger the wash sale and disallow part or all of that loss.

The ESPP is dangerous here precisely because it is automatic. You set it once and it buys on a schedule, so the purchase that wrecks your loss is one you are not even thinking about. Picture it: you sell company shares that dropped, to harvest the loss. What you forgot is that your ESPP buys on the last day of the offering period, eleven days after your sale. The plan buys the same stock inside the window, and the loss you harvested is disallowed to the extent of those new shares.

You do not have to give up loss harvesting. You just have to respect the calendar. Know your ESPP purchase dates and keep any deliberate loss sale of the same stock outside the 30-day windows around them. Or stop holding the same stock outside the plan in the first place: if you sell ESPP shares promptly after each purchase, you usually do not have a separate pile of company stock sitting in a loss to harvest. The concentration problem and the wash sale problem have the same fix. This is not an ESPP-only issue, either. For the version that hits RSUs after vesting, see the RSU wash sale after vesting.

Mistake 6: paying tax twice on your discount

The last one catches careful filers who trust the 1099-B. The discount you already paid income tax on shows up again as capital gain, because the broker reports a basis that is too low. One adjustment stops it. Miss it and you hand part of the best deal at work straight back.

Follow the dollar. When you buy through the ESPP, the discount counts as ordinary income, taxed at your salary rate on or around the purchase. That same discount is also part of what the shares cost you, so it belongs in your cost basis for figuring capital gain. Your broker usually does not see it that way. On the 1099-B, most brokers report your basis as only the discounted price you actually paid, leaving out the discount that was already taxed. A basis that is too low makes the reported gain too high, so you pay capital-gains tax on the discount a second time.

A low basis is the whole problem

If the 1099-B basis is just what you paid, the discount is taxed once as ordinary income and again as capital gain. Nothing about the numbers looks wrong. They are simply tilted in the government’s favor, and only you can catch it. This is not a rare glitch. It is the default behavior on most ESPP sales.

The repair is one adjustment on your return, and it turns on a single figure: the ordinary income already taxed.

Find the ordinary income already counted

This is the slice that was taxed as wages. The formula differs for a qualifying versus a disqualifying sale; see how to calculate the ordinary income on an ESPP sale for both. Your Form 3922 has the prices you need.

Build your true basis

Real basis is the discounted price you paid plus that ordinary income. That sum is what the shares actually cost you for capital-gains purposes.

Adjust it on Form 8949

List the broker’s basis, then use the adjustment column and the correct code to add back the ordinary income. Your capital gain shrinks to the right, smaller number, and the double tax disappears.

Keep the worksheet

Save how you got there. If you sell through the plan every period, the wrong basis can appear on every batch, and you want the math on file for each one.

What if I already filed and never made the adjustment?

You may have overpaid, and it is often fixable with an amended return. You have a limited window to amend and claim a refund, so fix it promptly. For someone who sold through the plan for several years without adjusting, it can add up. Pull the old 1099-Bs and Forms 3922, recompute the basis, and see whether amending is worth it.

For the mechanics in full, see the ESPP cost basis adjustment that brokers miss and ESPP reporting with Form 3922 and Form 8949. For one filer who caught this the night before he hit submit and kept about $4,000, read catching the ESPP double-tax before filing.

What this means for you

Every one of these mistakes shares a shape: it does not sting in the moment, so it goes uncorrected for years. The discount is the smart part of an ESPP. Skipping the plan, under-funding it, missing a holding-period date, holding for a tax break you did not need, tripping the wash sale, or filing off a wrong basis are all ways of quietly handing that smart part back. Enroll, fund it up, sell on a plan, know your dates, watch the calendar around loss sales, and fix your basis every year. Do that and the deal stays a deal.

If you are sitting on a large ESPP position and these calls are tangled up with the rest of your equity, let’s talk it through. The date should serve your plan, not run it.

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.