[Updated on January 28, 2024 with screenshots from TurboTax for 2023 tax filing.]
If your employer offers an Employee Stock Purchase Program (ESPP), you should max it out. You come out ahead even if you sell the shares as soon as you can. See Employee Stock Purchase Plan (ESPP) Is a Fantastic Deal.
After you sell the shares from the ESPP, part of the income will be included on your W-2. However, the 1099-B form you receive from the broker still reflects your discounted purchase price. This post shows you how to make the necessary adjustment on your tax return using TurboTax.
Don’t pay tax twice!
If you use other tax software, please read:
If you’re looking for a guide on doing taxes on RSU sales, please read Restricted Stock Units (RSU) and TurboTax: Net Issuance.
When to Report
Before you begin, be sure to understand when you need to report. You report when you sell the shares you bought under your ESPP. If you only bought shares but you didn’t sell during the tax year, there’s nothing to report yet.
Wait until you sell, but write down the full per-share price (before the discount) when you bought. If you purchased multiple times, write down for each purchase:
- The purchase date
- The closing price on the grant date
- The closing price on the purchase date
- The number of shares you bought
This information is very important when you sell.
Let’s use this example:
You would write down:
Grant Date | 4/1/20xx |
Market Price on the Grant Date | $10 per share |
Purchase Date | 9/30/20xx |
Market Price on the Purchase Date | $12 per share |
Shares Purchased | 1,000 |
Discounted Price | $8.50 per share |
Keep this information until you sell.
1099-B From Broker
When you sell, you will receive a 1099-B form from the broker in the following year. You will report your gain or loss using this 1099-B form and the information you accumulated for each purchase.
Let’s continue our example:
Because you didn’t hold it for two years after the grant date and one year after the purchase date, your sale was a “disqualifying disposition.” The discount is added as income to your W-2. This raises your cost basis. If you just accept the 1099-B as-is, you will be double-taxed!
Now let’s account for it in TurboTax.
Use TurboTax Download
The screenshots below are from TurboTax Deluxe downloaded software. The downloaded software is way better than online software. If you haven’t paid for your TurboTax Online filing yet, you can buy TurboTax downloaded software from Amazon, Costco, Walmart, and many other places and switch from TurboTax Online to TurboTax download (see instructions for how to make the switch from TurboTax).
Enter 1099-B
Go to “Federal Taxes” -> “Wages & Income” -> “Investment Income” and find “Stocks, Cryptocurrency, Mutual Funds, Bonds, Other.”
Answer “Yes” because you sold stocks.
Choose “Stocks, Bonds, Mutual Funds” as the type of investments you sold.
Import your 1099-B if you’d like. I’ll skip import and continue manually.
Select or enter the financial institution. Suppose it’s E*Trade.
The sales included employee stock. Suppose we only had one sale.
TurboTax strongly suggests entering sales one by one. We’ll go with that suggestion.
Fill in the boxes from your 1099-B form. Look carefully at which category the sale belongs to on your 1099-B form (short-term or long-term, basis reported to the IRS or not). It was “short-term, basis reported to the IRS” on my form. It could be a different one on your form.
The cost basis on your 1099-B was reported to the IRS but it was too low. Don’t change it in Box 1e directly but check the box “The cost basis is incorrect or missing on my 1099-B.”
Correct Cost Basis
Enter your purchase cost plus the amount added to your W-2. When you did a “disqualifying disposition” your cost basis was the full value of the shares on the date of the purchase. The market price was $12 per share when you purchased those 1,000 shares at $8.50 per share. Your employer added the $3,500 discount as income to your W-2. Therefore your true basis is $8,500 + $3,500 = $12,000.
If you didn’t sell all the shares purchased in that batch, multiply the number of shares you sold by the discount price on the date of purchase and add the discount included on your W-2. For example, if you sold only 500 shares and your employer added $1,750 to your W-2, your corrected cost basis is:
$8.50 * 500 + $1,750 = $6,000
You get a summary of the sales you entered. Repeat if you have more sales to enter. We only had one sale in our example.
You get a summary of your net gain and loss. We have a net loss because we received less money after selling the shares and paying the commission and fees than our discounted purchase plus the income added to our W-2.
Verify on Schedule D
We can verify that the adjustment makes it all the way to the tax form. Click on “Forms” at the top right.
Find “Schedule D” in the left navigation pane.
Scroll up or down to find line 1b, 2, 3, 8b, 9, or 10 depending on the sale category on your 1099-B form.
You see the negative adjustment in column (g). If you didn’t make the adjustment and you just accepted the 1099-B as-is, you will pay capital gains tax again on the $3,500 discount you are already paying taxes through your W-2. Remember to make the adjustment!
Say No To Management Fees
If you are paying an advisor a percentage of your assets, you are paying 5-10x too much. Learn how to find an independent advisor, pay for advice, and only the advice.
Jeff says
I used the TurboTax Premier desktop application, which is supposed to walk you through the ESPP sales correctly, but I found that it was going to skip the cost basis adjustment section when I indicated that I still worked for the employer… saying that everything should be correct (it wasn’t). So, I had to select “guide me anyway” in order to get it to handle the cost basis adjustment. I wonder how many people just trust that or leave the unadjusted cost basis from the 1099-B even though the discount was already reported on their W-2.
Jeff says
On a related note, I also exercised SARs (Stock Appreciation Rights) this year and also had to adjust the cost basis for that. The exercise was reported as regular income on the W-2 and the cost basis reported on the 1099-B was weird–I couldn’t even figure out how it came up with the numbers. So of course that had to be adjusted too–similar to ESPP, it should only be the change between the time you exercised and the time you sold that counts as cost basis. I was chatting with a coworker about this who said that last year he reported SAR exercises as Incentive Stock Options and was hit with AMT… I told him to go back and amend his return. SARs are treated as regular income, so don’t have the negative consequences for AMT that ISOs do.
John says
I never realized this so will need to validate. Based on what you are saying the employer calculates the discount and adds to W2 and then the broker does the same again?
Harry Sit says
John – As mandated by the IRS, the broker only puts your discounted purchase price as the cost basis. As a result, the difference between your proceed and the cost basis on the 1099-B includes the discount again.
Sam says
My company has a grant date and an exercise date(6months later). Our discount is 15% off whichever market price is lower.
Do I still do my adjusted cost basis calculations based off the market price on the purchase date(exercise date) even if our price paid per share was 15% off the grant date market price? Or do I use the grant date market price?
Harry Sit says
If it was a disqualifying disposition, i.e. you didn’t hold the shares for more than one year after purchase and two years after grant, you only use the price on the purchase date.
Cem says
Thanks for the post. I was looking to do exactly this and it helped greatly.
Just one follow up question: The folks where I work made it sound like box 1g (“Adjustment Amount”) should be updated to show the difference between your “true” cost basis and the one reported by the broker on the 1099-B. Yet this doesn’t happen when I walk through Turbo Tax’s steps, and I see that it didn’t happen in the screenshots you share above. Is that OK? Does this adjusting of the cost basis actually not have to be reported as an “adjustment”? If so, what exactly is box 1g on that form for?
Harry Sit says
Eventually it will get onto box 1g. If you enter the adjustment directly in box 1g it only allows certain adjustment codes, not the code B we need. If you already paid for your TurboTax, view Form 8949 to confirm. I can’t view it because I’m only using a test account.
Roger says
Any chance to get a similar tutorial for H&R Block?
Harry Sit says
Just wrote it up for you. See Adjust Cost Basis for ESPP Sale In H&R Block Software.
Bruce Brumberg says
Useful illustrated steps. Seems like the Turbo Tax software is making an actual adjustment in the cost basis that is entered in column e. It’s my understanding that you don’t adjust the basis. Instead, the gain or loss is adjusted in column g, which seems like a backward way to do it but that’s what the IRS requires.
egads04 says
How do you handle outright RSU grants that vest over 3 years? Do you enter it as income upon grant, or upon vesting? Would love to see how that works in TaxAct.
Harry Sit says
Neither. You do it only upon sale. Your employer will take care of it on the W-2 upon vesting. Click on the link to the RSU article in the first paragraph.
Steve says
I had a wash sale in my ESPP and TurboTax just couldn’t handle it. This process looks far easier. Thanks for posting it!
JohnC says
This is exactly what I needed. Valuable information indeed! Thanks for taking the time to write up a detailed ‘how-to’.
Peter says
Hello,
My company has the grant date set to be the same as the exercise date even though the prospectus very clearly defines the offering period as a calendar quarter – is this even legal?
I ask, because assuming the FMV stock price on the start of the offering is < the FMV on the last day of the offering (exercise date), and that I'm selling the stock at a price that is above the exercise date in a qualified distribution, then I want the amount of my proceeds taxed as ordinary income based on applying the discount to the FMV of the stock on the first day of the offering period – not the last (exercise date). If, however, the grant date is made the same as the exercise date, which is what my company is doing, there is no benefit to meeting the holding period in the above scenario – the amount of my proceed considered ordinary income is the same in a qualified and a disqualified distribution (again, assuming I sell above the FMV of the exercise date).
How can the grant date be the same as the exercise date when the offering period is defined as a calendar quarter and why would they do this?
Harry Sit says
No idea why your employer does that. Please take it up with your employer.
DAN KREUTZBERG says
in turbotax could this same adjustment method for cost basis be used for a dateofdeath stepup
in basis not reported correctly on 1099-B
Harry Sit says
Yes.
Mag says
on W2, box 14, it shows a number and note “ESPP”. Does it the total benefit or per share benefits? If it is a per share amount, I need to time the units that I sold during the year, right?
Also, For Year 2016, Turbo Tax actually guided me to the entry of Form 3922, which I assumed that I need to pull out the old years’ form 3922 to enter, instead of using the lump-sum adjusted amount, right? What if I don’t find the old ones (which need back to 2011 and 2012), do I have to ask my employer for the form, or I can use different approach in Turbotax to put the lumpsum numbers in?
Harry Sit says
It’s total, not per share. You are better off not telling TurboTax those shares are ESPP and just follow the basis adjustment process outlined here, provided that you know how much to adjust.
Lisa says
Hi Harry ;
I received a “confirmation of purchase” report from my company’s stock plan administrator.
It includes the following three fields (The values here is not real. It’s just for demo purpose only)
1. Grand Date FMV = $100.00
2. Purchase Value per Share on Purchase Date= $250.00
3. Purchase Price (85% of Grant Date FMV) = $85.00
Assuming I sold 500 ESPP shares, my understanding is I should use “Purchase Value per Share on Purchase Date” to calculate the cost basis.
Cost Basis = 500 * $250 = $125,000.
Please let me know if this is correct.
Thanks
Lisa
P.S.
The report uses the total value ($125000), the same as the cost basis listed above, minus total price ( 500*$85=$42500) to get the total gain ($82500). I believe the total value was reported in W2 as ordinary income.
Marc says
Thanks, Harry, for this write-up. Though I don’t use any of the tax packages listed, your explanation was very helpful to me
But I have to ask, has something changed in the 1099-B reporting rules in the last couple of years?
I reviewed my earlier 1099-B’s (from the same brokerage) showing similar ESPP and RSU transactions. What I found was that the basis on those earlier-year transactions had already been properly stepped up to reflect the fact that the income from the transactions was reported on my W-2.
I thought for a moment this year that I had a much larger tax bill than I actually have.
Harry Sit says
Yes the IRS issued new regulation. For shares acquired in 2014 or thereafter, brokers are prohibited from adding the W-2 income to the basis reported on 1099-B.
Marc says
OK, thanks, Harry.
Sorry, I must have glazed over the fact that you make mention of a new IRS regulation at the beginning of your article. The new ruling – which seems to only confound a tax filing preparation – makes me wonder about its intent.
Katy says
Does this adjustment only apply to disqualifying dispositions? How is it different if the holding period has been met?
Harry Sit says
In a qualifying disposition, there is still an amount added to the W-2 as income. Once you have the correct amount, the adjustment process is the same.
Shashi says
Thank you for providing details on the required adjustment related to cost basis for ESPP.
For me the company discount (10%, around $170/month) is added to my paystub as income and then deducted along with my contribution twice a month. The stocks are purchased 5th of next month, stocks hit my Morgan Stanley Smith Barney account on 8th and I sell them immediately. So I have a total of 12 entries in my 1099-B for last year. Box 1e (Cost or Other Basis) has the actual purchase price (company discount + my contribution) i.e. $10k in your example. Also, for 10 out of 12 entries I have values in column 1g (Nondeductible loss in a wash sale transaction) and 1f code as ‘W’ (Wash Sale). In my 8949 I have entries in row 1b (Box A Checked) with a total gain of $40.
I don’t think I need to make an adjustment or make any changes to how I manage my ESPP. Can you please confirm?
Thank you!
Harry Sit says
If you are sure the discount is added to the purchase price as the cost basis on 1099-B in box 1e then you don’t have to make another adjustment.
Joni S says
FY. My discount is not added to the Fed portion of the W2, only for PA for ESPP purchases. Turbotax Premiere for 2016 automatically adjusted the basis for PA, so I did not have to do this manually. When I entered all of the info for the ESPP sale (and when I sold it, I was no longer at that employer), Turbotax was evidently able to calculate the correct basis. I actually spoke to them a couple of years ago, before my employer figured out PA taxes the discount, and they told me it would be automatically handled when sold. It was. However, I had to bifurcate my ESPP info from RSU info in my electronic 1099-B from UBS (imported to Turbotax). They put both types of sales in the same Lot and the questions are different in Turbotax for ESPP and RSU sales (no discount or subscription period for RSUs). Thanks for posting, however, because it caused me to edit the sales in PA and it showed me the correct basis.
Daniel Olshansky says
This was extremely useful. Thank you for sharing!
Tom says
Thank you for posting this detailed walk through.
I had an ESPP sale in 2017 and Turbo Tax Premier 2017 appears to have properly guided me through the basis adjustment using the form 3922’s from the years when I acquired the ESPP shares. The updated cost basis actually reduced the long term gain and hence my tax bill.
I had a similar situation (ESPP sale in 2015) and I don’t believe Turbo Tax Premier 2015 asked for any information from form 3922’s to do the adjustment.
Does anyone know if the same basis adjustment feature for ESPPs was present in prior Turbo Tax versions?
Arnel St. John says
I have filed my 2017 taxes and late to find out about this issue that I made a mistake and did not adjust my cost basis, basically got taxed twice for the 15% espp discount. Can I still change and modify thru my turbo tax, any possible audit repercussion?
Harry Sit says
You can amend your return. I don’t know about any possible audit repercussion.
shyam mohan says
I recently moved to US.
When I was in India, I received ESPP and RSU of company listed on Nasdaq.
I sold these all my ESPP in 2019.
In return, How should I declare capital gain for ESPP.
I’ve already paid tax on difference between (market price and vest price) on vest day in India. As gains were added to my payslips as perquisites on vest day.
Should I declare current gain based only on Selling price – Vest day market price?
Or i’ve to declare difference of market price and vest price as well.
Do i need to divide gain between India and US based on holding period as well?
How can i do this on turbotax?
Harry Sit says
First you have to determine whether you are considered a resident alien or non-resident alien for tax purposes in 2019.
https://www.irs.gov/individuals/international-taxpayers/determining-alien-tax-status
Non-resident aliens are taxed on only U.S. income during the year. Income already recognized in India doesn’t count. Resident aliens are taxed on worldwide income during the year, but you get a credit for taxes paid to another country.
Kaun says
Man!! This seriously saved me like $2000. Thanks mate I wouldn’t have realized I was missing out on this money. It was my first time filing tax with ESPP sales and didn’t know about this. I wonder if this can be a strong case of why softwares can never replace human work. Cheers!
Jason says
I’ve had shares of stock in my former employer’s ESPP for some time. I am no longer employed there. When I finally decide to sell, who will issue the W-2 for the discount amount? The firm holding the shares, or my former employer?
Harry Sit says
Your former employer.
Jason says
If I were to transfer my ESPP shares out of the firm my former employer uses to administer their plan (Computershare) to another broker, would I be issued a W-2 at the time of transfer so the income aspect of the share sale proceeds is not lost?
Harry Sit says
Ask both of them how that works. It may trigger the W-2 right away when you transfer whereas you’ll get the W-2 income only when you sell if you keep the shares at Computershare.
Andres says
Jason, I am in the exact same situation. Did you figure out if Computershare or your previous employer issued a W2? I never received anything in the mail once I actually sold after transferring to another broker.
Neal Joffee says
This is extremely helpful – thank you so much for sharing! However, I am wondering if TurboTax has corrected this issue for 2021 filing. My downloaded version of TurboTax seems to have automatically adjusted my disqualified ESPP purchase from 2021. I see the adjustment on Schedule D, without me manually entering anything. I also see the adjustment on the “Capital Gain (Loss) Adjustments Worksheet”.
Harry Sit says
It probably depends on what the broker sent in the download. If you confirmed that the necessary adjustment is already there, great! Some others may still need to adjust manually.
JSH says
I’m using TT Premier to do 2021, and need to adjust cost basis for a different reason – a company buyback for above FMV. My understanding from company HR is that the gain on (FMV – our exercise price) should be taxed as long-term gains, then the gain on the (company’s purchase price – FMV) is taxed as income. However, the 1099b we got reports the gain as (company’s purchase price – our exercise price), so if we just entered the 1099b as is, we’d be paying both long-term and income tax on the upper gain.
The “less common adjustments” was on the very last screen, and there was not a “cost basis adjustment”, but the last box was “adjustment required for reason not covered” and I used that to enter the upper gain number.
Hope this is helpful to someone out there.
jcm says
If the company is matching 1 share for every 3 bought, how do you handle the discount in Turbo Tax? From reading articles it seems this is a non-qualified ESPP. When selecting ESPP Turbo Tax wants a discount percentage entered, but this isn’t a true discount. Should I just not report this as an ESPP in Turbo Tax (even though I have a 1099-B and the ESPP is noted on my W-2) or put the discount as 0% and just report what I paid for the stocks with the total I received (the 3 paid for and the 1 matched)? Thanks!
Harry Sit says
Receiving four shares while paying for three is buying them at 75% of the fair market value or a 25% discount.
Joseph says
Thanks for the great info! I received my ESPP stock at a discount, but held it for less than one year, and it has now gone down in value. I understand if I sell it about the price paid going into my W-2 wages. What happens to the capital loss aspect? Would you follow the same process you describe in the article whether it is a capital gain or loss (put the 1099-B into the tax software and adjust the basis), or is there anything else? Thanks again!
Harry Sit says
The same process. Note the example used in this post already shows a small loss — $12/share used to compute income in the W-2, sold at $11.95/share minus commission and fees. The same applies if the shares were sold at $5/share.
Han says
Hi there,
Thanks for this post.
I’m using a Turbotax Home & Business, and have a few questions.
1. Where can I find your “$3500” in my W2?
2. Your “Correct Cost Basis” section pops up ONLY WHEN I select “No, this is not employee stock”. Now this doesn’t make sense, because ESPP IS employee stock.
3. When I DO select “yes this is stock that was acquired through an employee stock plan”, I’m prompted to enter the “Adjusted cost basis”, which I can easily find in the supplement, but don’t have a clue, what I should enter in sections like “Net proceeds”, “Gain or less”, “Amount of Compensation Income for this Sale”. Have you had experience with this?
Harry Sit says
Your employer should’ve provided supplemental information on how much they added to your W-2 for your sale of ESPP shares. Your employer provided “adjusted cost basis.” The difference between the adjusted cost basis and the cost basis on the 1099-B form is the amount added to your W-2.
Sometimes the extra help confuses you more than helping you. The process shown here is more straightforward.
carol says
Your examples all presume someone still works for an employer that they receive a W-2 from. In my case, I left my employer and sold my ESPP shares later. Can you offer guidance on the implication of that in terms of calculating the cost basis since I am not receiving a W2?
Harry Sit says
You should still receive a W-2 after you sell your ESPP shares. Ask your former employer’s stock plan administrator.
carol says
You state that I should record the closing price on the stock grant date for ESPP shares. Since I enrolled in the ESPP, I don’t know what date you are referencing as a “stock grant date”. I didn’t receive a grant. I just enrolled in the ESPP plan through payroll deduction. Can you clarify?
Harry Sit says
It’s also known as the beginning of the offering period. This date is used in part to determine whether you have a qualifying disposition when you sell. If you’re not sure when your current offering period began, ask your stock plan administrator.
John says
Thanks for the great info!
1. Turbotax is asking if I receive Incentive Stock Options (ISOs) through my employer – should I answer yes if I received ESPP or is that something different?
2. My W-2 box 14 shows an amount with “DQD” which I imagine is for a disqualified disposition that I sold. Is that the basis adjustment that I should make in the program, or should I ignore this W-2 number and just actually calculate it as you showed? I was not sure what to do with this amount.
Thanks!
Harry Sit says
Incentive Stock Options aren’t the same as ESPP. The DQD amount in your W-2 Box 14 may be the basis adjustment included in your W-2 income but each employer can choose to include whatever amount in Box 14 as an FYI to the employee. Calculate the basis adjustment yourself anyway and if it matches the amount reported in Box 14, then you know you can rely on it next time.
John M says
Thanks so much for the great info! I have some 1099-B sales that are for disqualifying dispositions and some that are qualifying for the ones that I held on for a long time. For the qualifying ones, I just need to type in the 1099-B information exactly and there is nothing else to do? In other words, no need to select “cost basis is incorrect or missing” and no need to adjust anything with the cost basis?
Harry Sit says
There’s still a “bargain element” in a qualifying disposition. It may be smaller than the bargain element in a disqualifying disposition but it’s still there. This bargain element is taxed as compensation income, which may have already been on the W-2. If it’s not on the W-2, you need to calculate it and report it as wage income yourself. Either way, you still need to adjust your cost basis for the sale. See Tax Reporting for Qualifying Dispositions of ESPP Shares from Fairmark.