Skip to content
Kestrel Bay Retirement Advisors logo

Fixing ESPP Cost Basis on Your 1099-B: A Kestrel Bay Retirement Advisors Walkthrough

Prepared by the Kestrel Bay Retirement Advisors planning team · Updated · 8 min read

Kestrel Bay Retirement Advisors corrects ESPP cost basis on 1099-B forms by putting the ESPP discount your W-2 already reports as wages back into the basis on Form 8949, with code B and a negative adjustment. For ESPP shares, brokers generally report only the purchase price as basis, so the discount already taxed as wages gets taxed again: $15 a share on 200 shares is $3,000 counted twice.

Take Leah, a hypothetical 38-year-old senior software engineer at a public cloud company. If she files her 1099-B exactly as it arrives, she pays tax on $3,000 she already paid tax on once. At a 35% federal rate, for illustration, that's $1,050 of tax she doesn't owe. The mistake is quiet, because the form looks official and the software accepts it without a warning.

This Kestrel Bay Retirement Advisors article is for people holding employee stock purchase plan shares who just got a 1099-B that looks off. It covers why the basis is wrong, the Form 8949 fix step by step, the documents to gather, and the questions that confirm your return is right. It's general education, so check your own numbers against your own forms.

Why does the 1099-B show the wrong ESPP basis?

Federal reporting rules generally require brokers to report only the price you paid for ESPP shares as your basis. The compensation income your employer adds to your W-2 is left out, because brokers usually aren't told how much of the discount the employer taxed as wages. Many brokers do send a supplemental statement with an adjusted cost basis, but tax software that imports the 1099-B directly usually pulls in the lower, unadjusted figure.

The result is a capital gain that looks larger than it is. The discount is taxed once as wages and again as gain. Nothing on the form tells you this happened, and the broker did nothing wrong by its own rules.

Before Kestrel Bay Retirement Advisors reviews a client's draft return, it matches every ESPP sale on the 1099-B against the W-2 income for that same lot. We start there because the tax cost of this error is real money this year, and it repeats with every lot you sell afterward.

Leah's first ESPP sale, line by line

Hypothetical: Leah, 38, rents her apartment and has never sold a vested RSU. She chose a small ESPP lot as her first step toward selling company stock. She bought 200 shares at $85 when the stock was $100 on purchase day, then sold at $110 eight months later. Because she held less than a year, it's a disqualifying sale, and her W-2 already counts 200 × $15 = $3,000 of the discount as wages.

Her 1099-B shows $22,000 of proceeds (200 × $110) and $17,000 of basis (200 × $85), a $5,000 gain. Her correct basis is $17,000 + $3,000 = $20,000, so her true short-term gain is $22,000 − $20,000 = $2,000. Compare the total income taxed in the table: $8,000 as filed against $5,000 after the fix, even though Leah's real profit was $5,000.

Assuming a 35% federal rate for illustration, the uncorrected return costs her $3,000 × 35% = $1,050 of tax she does not owe. That's the common mistake in one number: importing the 1099-B into tax software and filing without an adjustment. And it repeats with every ESPP lot she sells.

Hypothetical 200 ESPP shares bought at $85, $100 on purchase day, sold at $110 within a year; $3,000 of ESPP income already on the W-2
LineAs the 1099-B reportsAfter the Form 8949 fix
Proceeds$22,000$22,000
Cost basis$17,000$20,000
Capital gain$5,000$2,000
ESPP income on W-2$3,000$3,000
Total income taxed$8,000$5,000

A checklist of documents to pull before you file

Gather these before you open your tax software, because the import step is where most of the damage happens. Missing one of them usually means guessing at a number, and guesses on basis tend to go the wrong way.

  • Form 3922 for each lot sold. It shows the offering date, purchase date, price paid, and the stock price on both dates.
  • Your W-2: box 1 wages, and box 14, where many employers list ESPP income separately.
  • The 1099-B together with the broker's supplemental statement. Look at box 12 to see whether basis was reported to the IRS, and at any column labeled adjusted cost basis.
  • The lot detail from the plan portal, plus last year's return if part of the same lot was sold earlier.

How do you correct ESPP basis on Form 8949?

You correct it by entering the 1099-B basis as reported, adding code B in column (f), and putting the ESPP income already taxed as a negative number in column (g). The steps below use Leah's sale. The decision rule: if the basis on your 1099-B equals your purchase price for those shares, and income from that sale appears on your W-2, the reported basis is too low by exactly that income. Add it back on Form 8949 before you file.

  • Step 1: find the sale on the 1099-B. If basis was reported to the IRS, use Part I box A for short-term sales or Part II box D for long-term sales. Leah's sale goes in box A.
  • Step 2: in column (e), enter the basis exactly as the 1099-B shows it ($17,000). In column (f), enter code B.
  • Step 3: in column (g), enter the adjustment as a negative number (-$3,000). Then check that column (h) shows a $2,000 gain.
  • Step 4: in tax software, use the adjust cost basis screen and do not enter the ESPP income a second time as wages. Keep Form 3922 and the W-2 with your records.

Doing the fix yourself or handing it to a preparer

Doing it yourself costs nothing, you know your lots better than anyone, and with the supplemental statement the adjustment takes minutes. The risks are real, though. A software import can overwrite your edit, it's easy to adjust the wrong lot, and nobody checks whether the sale was qualifying or disqualifying.

A preparer applies code B routinely and will catch ESPP income that is missing from the W-2. But they charge a fee, they still need your Form 3922 data, and they can miss the supplemental statement if you don't send it.

We'd lean toward a preparer if you sold more than two or three lots in a year, because the odds of one wrong adjustment climb fast. With a single lot like Leah's, doing it yourself is reasonable if you re-check the final Form 8949 against the 1099-B before filing.

Do a bigger ESPP balance or a later age change the stakes?

Yes, both do. One small sale overstates income by $3,000. Someone who has bought every purchase period for 15 years and sells a dozen lots needs a separate adjustment for each lot, so the errors add up. Very old lots may also show up on the 1099-B with no basis reported at all. In that case you enter the full correct basis yourself, with no code B needed.

Age matters too. Medicare premiums are set by your MAGI from two years earlier, so from 63 an overstated gain raises the premium you pay at 65 and later. In 2026, a single filer whose 2024 MAGI topped $109,000 pays $284.10 a month for Part B instead of $202.90, or $974.40 more a year. A sale made in 2026 would affect 2028 premiums, under that year's brackets. At Leah's age the cost is different: an overstated gain can add the 3.8% surtax on net investment income once her MAGI is above $200,000.

One limit on all of this. The fix applies only when the ESPP income already appears on your W-2. If your employer left it off, which can happen with qualifying sales, you first have to report that income yourself, and adjusting basis alone would understate your income. If you hold a lot of company stock, our equity compensation planning work looks at these sales together with your wider tax picture. RSU basis questions are covered on another page.

Questions to ask an advisor or CPA about your 1099-B

Bring these to whoever prepares your return, and ask for answers that point to a specific form or line rather than a general assurance.

  • Was each ESPP sale on this 1099-B qualifying or disqualifying, and does the W-2 income match that?
  • Is the basis in box 1e the purchase price only, and which supplemental figure should I rely on?
  • If my employer left the ESPP income off my W-2, how do I report it before adjusting basis?
  • Do I need to amend earlier returns that imported an unadjusted 1099-B?

What to do this week if your 1099-B looks wrong

Start with one division: take the basis on the 1099-B and divide it by the number of shares sold. If the result equals your purchase price, the basis has not been adjusted. Then download Form 3922 and the supplemental statement for that sale, and find the ESPP income on your W-2.

If you already filed an unadjusted return, you generally have three years from filing to claim the refund on Form 1040-X. Investing involves risk, including loss of principal, and selling company stock is a tax decision as much as an investing one.

To have Kestrel Bay Retirement Advisors review the sale before you file, use the request form. We'll look at the 1099-B, Form 3922 and your W-2 together. This article is general education, not individualized tax advice.

Your questions about ESPP cost basis on 1099-B, answered

Will the IRS flag my return if my reported basis doesn't match the 1099-B?

Possibly. The IRS gets the broker's copy of every 1099-B, and its matching programs compare those figures with Form 8949. Code B in column (f) and the adjustment in column (g) tell the IRS why your basis differs. Keep Form 3922 and your W-2 so you can document the adjustment if you receive a notice.

Can I fix ESPP cost basis on a tax return I already filed?

Yes. If you filed with the unadjusted basis, you can generally file Form 1040-X within three years of the original filing date to claim the refund. Attach a corrected Form 8949 showing code B and the adjustment, and keep Form 3922 and your W-2 with the amended return.

Where do I find my ESPP purchase-day price if I've lost Form 3922?

Log in to your plan portal or the broker holding the shares and look at the purchase history for each lot, which usually lists the purchase date, price paid and fair market value. If it isn't there, ask your employer's stock plan administrator to reissue Form 3922. The purchase-day price also helps you confirm the W-2 income.

This information is general education only and does not account for your specific circumstances, goals or finances. It is not investment, tax or legal advice. Investing involves risk, including the possible loss of principal. Before making any financial decision, consult a qualified professional about your own situation.

Request information