Several readers asked me how to do taxes on ESPP sales in my article about doing taxes on sales from vested RSUs: Restricted Stock Units (RSU) and TurboTax: Net Issuance. It’s similar but not exactly the same. The new IRS regulation for shares acquired in 2014 or thereafter requires adjusting the basis, which works differently in RSUs and ESPP.
This article shows how to do it in TurboTax Online. If you use H&R Block or TaxACT software, please see
When to Report
Before you begin, be sure to understand when you need to report when you have ESPP. You report when you sell the shares. If you only bought shares under ESPP 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 have multiple lots, write down for each lot the purchase date, the closing price on the grant date and on the purchase date, and the number of shares you bought. This information is very important when you sell.
Let’s use this example:
You bought 1,000 shares on 9/30/2014. The closing price on the purchase date was $10/share. The closing price on the grant date was also $10/share. You bought at $8.50/share with the discount.
You would write down:
|Market Price on Grant Date||$10/share|
|Market Price on Purchase Date||$10/share|
Keep this information until you sell.
When you sell, you will receive a 1099-B from the broker in the following year. You will report your gain or loss using this 1099-B and the information you accumulated for each purchase.
Let’s continue our example:
You sold 1,000 shares from your purchase above on 10/5/2014 at $9.95 per share. After commission and fees, you netted $9,900. In 2015, you received a 1099-B from your broker showing a sales proceed of $9,900. The 1099-B shows the cost basis as $8,500, which reflects your discounted purchase price.
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 Online.
Click on My Account on the top, then Tools.
Click on Topic Search.
Find “espp sales.” Click on Go.
Answer “Yes” to “Did You Sell Any Investments?”
Import your 1099-B if your broker is on the list or just type the numbers yourself from the 1099-B you received. I continue with typing it yourself here.
Select or enter the financial institution.
Look carefully which box is checked on your 1099-B. On my form it was Box A. It could be a different one on yours.
Now enter the information from your 1099-B. Date of Acquisition is the date the shares were purchased. The cost basis on your 1099-B was reported to the IRS but it was understated. Don’t change it here directly. Check the box for “Add More Details” and then click on Start.
Check the first radio button for “I need to add or fix info.”
Now check the box for “The Form 1099-B shows an incorrect cost basis.”
Enter the true cost basis. The market price was $10/share when these 1,000 shares were purchased. Your employer added the discount as income to your W-2. Therefore your true basis is $10 * 1,000 = $10,000. If you didn’t sell all the shares purchased in that lot, multiply the number of shares you sold by $10.
Now it shows the correct basis. Even though it appears to be overwriting Box 1e, I believe it actually puts an adjustment on Form 8949. I can’t verify it because I’m using a test account. If you already paid for your TurboTax, please open Form 8949 to confirm. It should show a negative adjustment with an adjustment code B.
The summary shows you had a small loss from this sale because you sold at $9.95/share, slightly lower than the $10/share market price on the purchase date, and you had to pay commission and fees.
If you didn’t do the adjustment and you just accepted the 1099-B as-is, you would pay capital gains tax again on the $1,500 discount you are already paying taxes through your W-2. Remember to do the adjustment!