"Just wanted to say we love your new Web Site! Keep up the great work!" - R. Cady, VA

Powered by TradeLog
IRS Schedule D and the active trader

The schedule d is the IRS tax form where active traders and investors of stocks, options, and single-stock futures file their capital gains and losses for tax purposes.

The IRS schedule d is by far the most complex form of any of the IRS tax forms for filing your taxes!

Please read the above sentence again!

Therefore, if you need help filing your taxes from trading, then you have come to the right place. TradeLog is the best schedule d software program on the market for active traders and investors. This page will help you see the many problems associated with filling out this complex form, and how TradeLog can greatly simplify this process.

One exception is if you have elected the Mark to Market accounting method with the IRS. For those who have elected MTM, their trade activity will be listed on the IRS from 4797 - Sales of Business Property. However, many of the complexities of filing a schedule d, also apply to form 4797.

Basic Layout of the schedule d:
Click on the form below to view a full size PDF copy:

Click here to view the IRS instructions for schedule d

The d form schedule is laid out in two parts:

  • Part I - for Short-Term Capital Gains and Losses - Assets Held One Year or Less
  • Part II - for Long-Term Capital Gains and Losses - Assets Held More Than One Year

The holding period of the trade is what determines whether it is long or short term. Anything held one year (365 days) or less is considered short term, and anything held for more than one year (366 days or more) is considered long term. Therefore one of the primary functions that needs to be done is to determine whether each trade is long or short term.

Each part is identical when it comes to listing your trade activity for the current tax year. There are six columns in each part as shown below:

(a) Description of property (b) Date acquired (c) Date sold (d) Sales price (e) Cost or other basis (f) Gain (or loss)

One additional column has been added for the 2003 tax year: (g) Post-May 5 gain (or loss). This additional column is to total trades that were completed on May 6 or later.

TradeLog's Gains & Losses report was designed to match the columns as shown above and is suitable as an attachment to the IRS schedule d.


Matching and entering your trades on schedule d:

Entering your trades on the schedule d presents quite a challenge for the active trader, as no matched list of your trades is provided by your brokerage as mentioned in the Capital Gains Overview section. Your broker provided 1099 which gets mailed to you and the IRS generally lists your sales, but in many case does not list your purchases, and if it does, they are listed separate from your sales.

If you take a close look at the columns above, you will notice that each line item consists of both a purchase and a sale as part of a matched transaction. It is up to you to do the matching. For every sell transaction made in the current tax year, there must be a corresponding purchase transaction.

First In, First Out (FIFO):

If you do not specify a method, the IRS will assume you used the First In, First Out (FIFO) method. When using the FIFO method, the first shares purchased are considered the first shares redeemed. The oldest shares still available are considered the first ones sold.

It takes quite a bit of work to go back and forth with each sale to find the correct purchase shares. Add to that the fact that you probably did not buy and sell an equal number of shares. Now your trade matching problem gets really complicated!


Consider the following schedule d example:

Your trade history shows the following trade transactions:
01/05/2004 Buy 100 shares MSFT @ $25.00 $2,500.00
01/06/2004 Buy 50 shares MSFT @ $24.00 $1,200.00
01/08/2004 Sell 50 shares MSFT @ $26.00 $1,300.00
01/09/2004 Sell 100 shares MSFT @ $27.00 $2,700.00

This would result in the following 3 line items on your schedule d:

(a) Description of property (b) Date acquired (c) Date sold (d) Sales price (e) Cost or other basis (f) Gain (or loss)
1) 50 sh. MSFT 01/05/2004 01/08/2004 $1,300.00 $1,250.00 $50.00
2) 50 sh. MSFT 01/05/2004 01/092004 $1,350.00 $1,250.00 $100.00
3) 50 sh. MSFT 01/06/2004 01/092004 $1,350.00 $1,200.00 $150.00
  • Please notice that the 50 shares sold on 01/08/2004 were not matched to the 50 shares bought on 01/06/2004, but because of the IRS FIFO rule, these were matched to those bought on 01/05/2004 (First bought get matched to first sold). So part of the cost basis of the 100 shares goes to trade # 1 and part goes to trade #2.
  • Trade #2 is only for 50 shares because their were 50 shares left of those bought on 01/05/2004 and these have to be matched to 50 of the 100 shares sold on 01/09/2004.
  • The same is true for trade #3 where the 50 shares left that were sold on 01/09/2004 now get matched to the 50 shares bought on 01/06/2004.

Now try matching the following securities transactions:

01/05/2004 Buy 100 shares MSFT @ $25.00 $2,500.00
01/06/2004 Buy 50 shares MSFT @ $24.00 $1,200.00
01/06/2004 Buy 75 shares MSFT @ $23.00 $1,725.00
01/06/2004 Buy 25 shares MSFT @ $22.00 $550.00
01/08/2004 Sell 50 shares MSFT @ $26.00 $1,300.00
01/08/2004 Sell 35 shares MSFT @ $24.00 $840.00
01/08/2004 Sell 65 shares MSFT @ $23.00 $1,495.00
01/09/2004 Sell 60 shares MSFT @ $28.00 $1,680.00
01/09/2004 Sell 40 shares MSFT @ $29.00 $1,160.00

It starts out quite simple, but quickly gets complicated because each trade is made up of buys and sells of unequal numbers of shares. So things need to be broken up in the smallest number of shares, either on the buy side or the sell side. This is quite common for the active trader, even for the investor. How long would this rather simple list take you to match if you were doing so manually? Or how complicated would your spreadsheet have to be to accomplish this? We originally used an Excel spreadsheet for this but found that even Excel is pushed to the limits when presented with such a challenge.

Did you give up? Does your list of matched trades look anything like the following?

(a) Description of property (b) Date acquired (c) Date sold (d) Sales price (e) Cost or other basis (f) Gain (or loss)
1) 50 sh. MSFT 01/05/2004 01/08/2004 $1,300.00 $1,250.00 $50.00
2) 35 sh. MSFT 01/05/2004 01/08/2004 $840.00 $875.00 ($35.00)
3) 15 sh. MSFT 01/05/2004 01/08/2004 $345.00 $375.00 ($30.00)
4) 50 sh. MSFT 01/06/2004 01/08/2004 $1,150.00 $1,200.00 ($50.00)
5) 60 sh. MSFT 01/06/2004 01/09/2004 $1,680.00 $1,380.00 $300.00
6) 15 sh. MSFT 01/06/2004 01/09/2004 $435.00 $345.00 $90.00
7) 25 sh. MSFT 01/06/2004 01/09/2004 $725.00 $550.00 $175.00
    Totals: $6,475.00 $5,975.00 $500.00

This list took less than 1 second for TradeLog to generate.

But wait, because there were some loss trades which were bought back within the 30 day window, shouldn't there be some wash sales? You are correct, and these wash trades need to have wash sale adjustments. Can you figure out how to make the necessary wash sales entries on your schedule d as well as adjusting the cost basis of the trades causing the wash sales? Please take a close look at the following:

(a) Description of property (b) Date acquired (c) Date sold (d) Sales price (e) Cost or other basis (f) Gain (or loss)
1) 50 sh. MSFT 01/05/2004 01/08/2004 $1,300.00 $1,250.00 $50.00
2) 35 sh. MSFT 01/05/2004 01/08/2004 $840.00 $875.00 ($35.00)
Wash Sale Adj - 15 sh. 01/05/2004     ($15.00) $15.00
Wash Sale Adj - 20 sh. 01/06/2004     ($20.00) $20.00
3) 15 sh. MSFT 01/05/2004 01/08/2004 $345.00 $390.00 ($45.00)
Wash Sale Adj - 15 sh. 01/06/2004     ($45.00) $45.00
4) 50 sh. MSFT 01/06/2004 01/08/2004 $1,150.00 $1,200.00 ($50.00)
Wash Sale Adj - 50 sh. 01/06/2004     ($115.00) $115.00
5) 60 sh. MSFT 01/06/2004 01/09/2004 $1,680.00 $1,380.00 $300.00
6) 15 sh. MSFT 01/06/2004 01/09/2004 $435.00 $345.00 $90.00
7) 25 sh. MSFT 01/06/2004 01/09/2004 $725.00 $550.00 $175.00
    Totals: $6,475.00 $5,975.00 $500.00

Also took less than 1 second for TradeLog to generate.

Please notice that the loss on trade #2 had two different trades where shares were repurchased within 30 days. This caused two wash sale adjustments and adjusted the cost basis of trades # 3 and 4. In addition, the left over 30 shares of trade #4 triggered still another wash sale adjustment on the 15 shares from trade #3. Please note that all of this moving forward of wash sale adjustments had no affect on your bottom line.

But what if this sequence had occurred at year end with trades 5-7 being completed in Jan of 2005?


How valuable is your time?

Imagine doing this for 1,000 or more transactions! Or worse yet, 5,000 transactions. Oops, I almost forgot, you also would have to go through each and every trade to segregate your long term trades from your short term trades, because long term trades get reported in Part II while only short term trades get reported in Part I. (whew!)

Who has time for this? Certainly not your accountant, especially at anywhere from $50 to $250 per hour. And certainly not you, when you could be spending your time on your trading business rather than on tax problems. Could there be an easier way to get this necessary work done? You bet there is: TradeLog trade accounting and tax software from Armen Computing Ltd.


Please note: This information is provided only as a general guide and is by no means to be taken as official IRS instructions or tax help. As always, please consult your tax advisor or accountant for details.

Return to Tax Software



Partner Center