The input file can be either an excel worksheet or a csv file. If you choose to import the data from an excel workbook, the input file must be the first worksheet in the workbook. If you'd rather use a csv file as your input, each transaction must be on its own line, contain no embedded commas in the numeric fields and use a comma to separate all fields. To create a valid csv file from excel, choose File Type = 'csv' from the file type drop down on the 'Save As' screen.

Regardless of the type of input file you choose, there should be no imbedded commas, double quotes, single quotes or decimal points in any of the fields.

All dates are in a month/day/year format: mm/dd/yy or mm/dd/yyyy. examples: 02/04/04, 02/04/2004, 2/2/04, etc.


1. Security (stock) name – up to 80 characters long with no imbedded commas;
2. Unique Lot Id – unique user defined identifier up to 50 characters in length. This field is not used in the calculation but is included in the output file;
3. Merger Date – mm/dd/yy or mm/dd/yyyy or blank;
4. Option or Stock – "Call", "Put", or blank for stock;
5. Option expiration month – 2 numeric positions, 01 through 12 – or blank for stock;
6. Option strike price – Do not use decimal points; eg., 42 1/2 not 42.5 – or blank for stock;
7. Enter Date – in the format mm/dd/yy or mm/dd/yyyy;
8. Exit Date – in the format mm/dd/yy or mm/dd/yyyy; but, if the lot is still open, then leave this field blank;
9. Number of shares/lots – maximum of 10 digits with no commas;(show short sales as negatives)
10. Cost – whole dollars only, maximum of 10 digits with no commas;
11. Proceeds – whole dollars only, maximum of 10 digits with no commas – or blank if the lot is still open;
12. Gain or Loss – whole dollars only, maximum of 12 digits without decimals and commas – or blank if the lot is still open.

If Fields 9 or 12 are negative, please use a '–' and not parentheses.

Click here to download an excel template for the input file


In addition to the 12 required fields listed above, the input file may also contain up to 3 additional unique lot ids. To include these fields in the input file, merely insert them after the standard Unique Lot Id (field 2) and before the Merger Date (field 3). The program will automatically adjust itself to accommodate these new fields and they'll be reflected in all of the output reports.


Now that you've created your input file, you're ready to calculate your wash sales. The following section describes the job parameters found on the calculation screen.


1. Input File – name and directory (full path) where the input file can be found;
2. Check here to turn OFF Sub Lot Processing – Sub lot processing breaks down each lot for a more accurate calculation of both the total amount of wash sales and the Adjusted Tax Basis date.

3. Report Detail Level –

(a) "All" = shows every security processed from the input file regardless of whether it was used in or produced a wash sale;
(b) "Scope" = gives you a choice as to which wash sales to show - if the total wash sales for a security are less than the entered scope amount, the security is bypassed and does not appear in the report. A Scope = 1 is thus the same as selecting the "All" option. If, for example, 500 is entered in the Scope field, any security having less than $500 in wash sales will be bypassed and not appear in either the report or its totals;

4. Same Date = Same Lot? – Select how the program should treat separate lots that were purchased on the same day.

(a) "Yes" = all lots purchased on the same day will be combined and treated as if they are all from the same single lot;
(b) "No" = don't combine the lots automatically but compare their prices and, if they're within a certain percentage of one another, combine them. The 2 digit percentage field next to the "No" button is used to hold the variance percentage. For example, an entry of 5 for 5%, tells the program to compare the purchase prices of the 2 lots to see if they are within 5% of one another. If they are, then the 2 lots are combined and considered as one. If their purchase prices differ by more than 5%, the 2 lots retain their uniqueness and are treated as separate transactions.

5. Offset – How the program is to offset Short sales of stock:

(a) "Short vs Short" = can only offset short stocks with short stocks (no long stocks, no calls and no puts);
(b) "Short vs Short–Long" = can only offset short stocks with long stocks, long calls and short stocks (no puts or short calls).
(c) "Short vs Short–Put" = can only offset short stocks with short stocks and long puts (no calls, short puts or long stock).

6. Summary Report Breaks – Controls the summary totals to be included in the output file. Summary Reports are no longer being automatically included at the bottom of the detail report but you can override this by checking the "Add Summary to Detail Report?" box.

7. Warning Report – Asks the program to include a report in the results file showing all realized losses that would be lost if a position in the subject security is obtained prior to the end of the 30 day wash sale period specified by the As Of date;

8. Option Conversion – Used to determine how the value in the quantity field for options should be treated:

(a) "Convert to Shares" = convert into shares by multiplying entered units by 100;
(b) "Keep as Entered" = the options have already been converted to shares.

9. Straddle Calculation – Lets the program know if a Straddle Calculation report should be included in the results file and, if so, which of the following calculation methods to use for the desired year(s):

(a) "Dollar Amount" = Disallowed Losses are calculated to the extent of Unrealized Gains;
(b) "Offsetting Shares" = Disallowed Losses are calculated by matching offsetting shares and using the pro-rated Realized Loss vs. Unrealized Gain.

10. Constructive Sales – Asks the program to include a Constructive Sales report in the results file using one of the following calculation methods:

(a) "Minimum Gain" = Results will show the Lowest Gains and Highest Locked in Losses;
(b) "FIFO Gain Only" = Results are based on FIFO matching method for Gains only;
(c) "FIFO" = Results are based on straight FIFO method.

11. Processing Sequence – Controls the sequence of offsetting lots:

(a) "Original" = Offsetting lots are utilized according to how many days separate their purchase date from the primary lot's sale date within the 60 day window;
(b) "Original + Unique Lot ID" = Same as above with a secondary sequencing by Unique Lot ID;
(c) "Special Processing" = Chronologically by Purchase Date and Unique Lot ID.

12. 1233 Report – Asks the program to include a 1233 report in the results file showing those gains or losses whose holding periods can be reclassified. A choice of Processing Sequences is also available: "FIFO","LIFO", or "Special ID". A discussion of the 1233 logic can be downloaded from the TOOLS & SAMPLES tab

After you've selected your options, click the CALCULATE button to start the program. Once its completed, you'll be able to not only see and download your results, you'll also be able to create both a copy of the output file and a csv file of the wash sale results if you like.