Capital Gainz - Newsletter #1

                      Capital Gainz Newsletter #1
                           January 7, 1998
                              Dave Cohen
                           AlleyCat Software
This is the initial Capital Gainz newsletter (as if the '#1' didn't 
clue you in). In these newsletters, I'll try to provide useful hints 
and tips. Most of these will come from frequently asked questions, and
I'll also add information about upcoming releases. To make things easy
for email, these newsletters will be plain old ASCII text.

I plan to email these newsletters periodically, probably quarterly.

If you want to be removed from the mailing list, send me a request via 


 1) Web Site Improvements
 2) Changes for New Tax Laws
 3) Quick Portfolio Switch
 4) Fixing Up Securities
 5) Rebuild/Pack Data      
 6) Backing Up Data
 7) Get Rid of Version 5.0
 8) Import Prices
 9) Manuals
10) Report Data Chopped Off
11) Plans for Version 6.0
12) Call For Beta Testers

1) Web Site Improvements

I've added a lot of new things to the Web site:
    * You can view an HTML version of the README file, listing
      a change/fix history.
    * A message board allows you to post questions or comments,
      and also reply to questions and comments. I'll try to
      answer as many as I can as quickly as possible, but please
      be patient if no response appears for a couple days.
    * You can browse a list of frequently asked questions, taken
      directly from the Capital Gainz Help file

2) Changes for New Tax Laws

As most of you know, I've updated Capital Gainz to deal with the new
tax laws:
    * There are now 3 sections to Schedule D of the generated Tax 
      Report: Short Term (less than 12 months), Long Term (12 to 18
      months), and Long Term (greater than 18 months).
    * There is now a new Distribution Type, Long Term Cap Gains:18,
      for mutual fund distributions of 18 month Capital Gains. The
      existing Long Term Cap Gains distribution type was renamed to
      Long Term Cap Gains:12. 

I'm assuming that mutual fund companies will only split long term 
capital gains on the 1099 forms that you get - I personally haven't 
seen them broken apart on any statements this year. Unfortunately, 
this means you might want to figure out the break down of individual 
Long Term Cap Gains distributions in the Distribution Table, and split 
the records into Long Term Cap Gains:12 and Long Term Cap Gains:18. 
Or, since you already have the 1099 break down, just use that on your
tax forms, and hope that the companies provide better information this

Also, it's important to point out a change in the way Capital Gainz
processes sales for the Tax Report. Previously, it used the Long/Short
Term status applied at the time the sale was recorded, using the Long
Term Holding Period in the User Settings. Obviously, this won't work.
So, Capital Gainz now includes holding periods internally, and uses
them to generate the Tax Report. The Long Term Holding Period is
ingored. This is important, since any future changes to the tax laws
will require an update to Capital Gainz - the old method was kind
of slick in that the user could simply change the value, but with more
than 1 holding period this is no longer feasible. Finally, Capital 
Gainz does handle the window from 5/6/97 to 7/29/97, when shares held
12-18 months are sold get treated as 18 month sales. But, it only does
this for Tax Reports generated for 1997 - if the tax laws stay the 
same, then the current version will work correctly in 1998.

Let's all join hands and pray for a flat tax...
(Apologies to the accountants out there that live off the obscene 
tax code.)


3) Quick Portfolio Switch

Here's valuable tip that's buried in the Capital Gainz Help files: You
can switch among your first 9 portfolios by using Alt-#, where # is
the portfolio number, on the Local Security Table. So, if you're 
looking at Portfolio 001, and want to go to Portfolio 002, just press


4) Fixing Up Securities

Capital Gainz maintains total open shares and amounts within the Local 
Security Record. These values should obviously reflect the values in 
the Open Shares Table. However, program bugs or system failures or
inopportune power failures could cause the totals to get out-of-sync
with the values in the table. For instance, you'll see this when the
number of shares in the Local Security Table doesn't match the total
shares at the bottom of the Open Shares Table. Or, you might try to
sell shares, and Capital Gainz will fail when the number of shares 
look Ok in the Local Security but comes up short when it selects 
shares from the Open Table.

To resync such problems, you can use Security/Fixup Security on the
Local Security Table, selecting the Total button to let Capital Gainz
total things up. Or, to modify many securities, you can use 
Maint/Consistency Check and select Resync Local Security and Activity
in the Modify User Data box.

Personally, I've only had one of my securities get out of sync in 
about 8 years of using final releases. But, I have had it happen much
more in early testing - long before anyone else would use the version.
And, unfortunately, I have run across bugs that could cause it.


5) Rebuild/Pack Data      

Under Maint, you'll see the function Rebuild/Pack Data. This function
will rebuild all indexes, and recover any space from records that have
been deleted. The file drivers used by Capital Gainz don't immediately
reclaim space from deleted records, but instead use the space as new
records are added. Thus, you could check the size of the *.DAT files,
delete a whole bunch of stuff, and then check the size of the *.DAT
files again - the file sizes won't change. But, as you add new data,
the files won't grow until all the deleted space is used first. The
Rebuild/Pack function will immediately reclaim the space and shrink 
the files accordingly.

More importantly, though, the Rebuild/Pack function rebuilds indexes.
Indexes are stored in the *.K01 files, and provide quick access to
specific records, or groups of records, so the entire *.DAT file 
doesn't have to be searched for each item. In a perfect world, the
indexes will be correctly maintained as you add/change/delete data. 
But, the file drivers (finally, I get to point a finger at someone 
else!) may sometimes slip up. A usual symptom of a bad index is when
an operation, like a stock split, hangs.

An aside here: I used to work for a company where finger-pointing was
an integral practice. I joked about it, and one coworker brought in
one of those giant foam "We're Number 1" hands, and we used it for
a while to point to culprits. This company also reached a point,
right before I left, where the number of project leaders/managers 
was almost equal to the number of untitled workers. I kept a daily
count of the Chief-to-Injun ratio (no offense to any Native 
Americans!). Anyway, I digress...

I strongly recommend periodically running Rebuild/Pack. You can even
schedule it to occur automatically at program startup on a daily,
weekly, or monthly schedule. Monthly should work fine - that's what I 


6) Backing Up Data

You really, really should do regular backups. The files to be backed 
up are all those with DAT and K01 extensions. I suggest rotating 3 
diskettes, so a single one won't go bad when you really need it. So,
you'd backup to disk #1 the first time, disk #2 the second time, disk
#3 the third time, disk #1 the fourth time, disk #2 the fifth time, 
etc. Be sure to mark the dates on the disk label.

You can use Backup/Restore in Capital Gainz, under the Maint menu bar
option, to backup. You can choose either a straight copy, or a 
compressed backup using ZIP files. Unfortunately, we've seen some
systems that don't allow you to use the ZIP option. The next release
will use a better library.

Alternatively, you can backup yourself, copying the *.DAT and *.K01 
files to diskette, or using PKZIP or WinZIP to compress them onto
a diskette. It's real easy to write a little BAT file and set up a 
PIF file for Windows that automatically runs it - see the explanation
of this in Capital Gainz Help under the discussion of Backup/Restore.

You should also note that when you install a version that upgrades
your data, you are asked if you want to backup. If you choose to do 
so, and you really should, the files will go into a subdirectory of 
the main Capital Gainz directory, named CGvvDATA, where vv is the old
version number. So, if you upgrade from 5.1 to 5.2, you'll have the
old data stashed in \CAPGNZ\CG51DATA.

If you need to restore data from an old version, such as data from 
5.1 while 5.2 is installed, you need to manually copy or unzip the 
files from disk into the Capital Gainz directory, then use the 
Upgrade icon in the Capital Gainz Program Group to upgrade the data
to the new version.

Many of you feel pretty safe backing up to tape. Let me warn you - 
I've seen many problems with QIC type drives (the cheap ones). 
Especially the Colorado (now HP, I think) brand. If you use a tape
drive, periodically try to restore something from tape, just to be
sure it's working right. To do things right, I strongly recommend
DAT drives - I've had one for 5 years and it's had no problems, plus
it's very fast. Drawbacks are price - I think low-end is $800 or so -
and that most if not all require a SCSI card. If you want the 
security of DAT but are worried about the installation, check with
your local computer store about doing the whole thing.



7) Get Rid of Version 5.0

Capital Gainz 5.0 had a problem with the file driver that could (and 
did for several users - although I helped them retrieve most of their 
data) corrupt data files. This was not seen in any of my testing, nor
did it occur during the Beta testing period. 

If anyone is running 5.0, please upgrade ASAP.


8) Import Prices

While Capital Gainz Download/Import can pull in prices retrieved from
AOL, Prodigy, Telechart 2000, MetaStock, or CompuServe, it can also 
read in prices from almost any source. The trick is that the source
must provide the prices in comma-delimited format, such as:

    Symbol,Date,Open,High,Low,Last,Volume,Open Interest

In Capital Gainz, the Prices/Update Prices From File option lets you
specify the file to read in. More importantly, you must be sure to
map the fields expected using the Format button - Capital Gainz will 
remember the format that you specify. For the above example (from I specified the following for Format:

    Field  1: SYMBOL
    Field  2: DATE
    Field  3: IGNORE1
    Field  4: IGNORE2
    Field  5: IGNORE3
    Field  6: PRICE
    Field  7: VOL-TOTAL
Capital Gainz knows to skip lines that start with Symbol, or Ticker, 
or Issue. It would be slick to determine the format from the header, 
but not all data includes headers, and those that do vary widely in 
the terminology used. 

Volume is a little tricky - VOL-TOTAL means that total volume is
specified, and it will be divided by 100 before being read into
Capital Gainz, and VOL 100 means the volume is already in hundreds.

One caution: when you first define a format and read in a file, use
the View option instead of the Ok button to see if the format
selected the correct fields. You don't want to read in a bunch of
nonsense and have to hunt through prices for all securities to get
rid of the bad ones, do you? Once you know that the format works you 
can just go right to the Ok button.

Of course, wherever you get data from, the format could differ. For
upcoming releases, I plan to include a list of different services
with predefined formats to select from.

***** I need help here. If anyone reads in prices from a source other
***** than AOL, CompuServe, Telechart 2000, Prodigy, MetaStock, or 
*****, please let me know from where, and the format that 
***** the prices are in. I'd like to include as many sources as 
***** possible with defined formats in the next release. Thanks!

I've used ( for about a year, and
really like it because you can set up the service to email you
the prices at the end of every day. It does cost $9.95/mo, but
you Internet service provider might have a deal for a cut rate -
I know Mindspring does. Anyway, here's what to do with prices emailed

    * Retrieve your email
    * Open the end of day mail sent from
    * Save the message as a file, to directory \\yymmdd.txt
      (for December 30, 1996, that would be 961230.txt)
    * Open Capital Gainz
    * Select Prices/Update Prices From File.
    * If you're importing for the first time from this source,
      specify the format using the Format button.
    * Back at the window asking for the file name, change the name
      to the name of the file you just saved. Note that Capital Gainz 
      remembers the name of the last price file read in, so you 
      usually only thave to change one or two characters in the name.
    * If you're trying to import from this source for the first time,
      use the View button to see if the data is processed correctly.
    * After closing the View screen if it was opened, use the Ok 
      to read the prices into Capital Gainz.

You could of course, always use the same file name. But, I had to
restore some prices after having stupidly deleted some files, and was
glad to have all the historical data available to read in. Yes, I had
a backup, but it was a few days old.

In the next release, I plan to allow reading in prices from the
Clipboard. Thus, you could Cut or Copy the data from the email,
then tell Capital Gainz to read in prices from the Clipboard.


9) Manuals

A number of people have asked for manuals. I'm sorry, but I've killed
way to many trees and had to toss way too many manuals to make this
a sound proposition. To get any reasonable price on manuals, I have to
print 1000-2000 a pop. And fewer and fewer people even want them.
I'd guess that to make it worthwhile, I'd have to charge $50-60 
apiece - and then, of course, even fewer people would want them, and
I'd have to charge more!

The Capital Gainz online Help is the entire users manual. It's chock
full of help text and examples, plus you can easily use Help's Search
facility to find specific topics. Many companies are going the no
manual route now - Microsoft is doing this with more and more 
products. I recently bought Microsoft Visual Interdev for several 
hundred dollars, and there was no manual. However, for products like
this, you can go to your local bookstore and buy a book on it. 
No such luck for Capital Gainz yet.

I know there must be utilities out there that can generate printed 
output from Windows Help files. Some people mentioned that they've
used some, but that they mangled the text, or put things out of order.

***** If you know of a good Help-to-print utility let me know. I also
***** will try to see if I can structure the Help file better so
***** a utility won't mangle it.


10) Report Data Chopped Off

Many people report problems printing reports, especially on dot matrix
printers. The main problem with dot matrix printers is that Capital
Gains generates reports in Windows Meta File format (a graphical 
format), and Windows printer drivers for dot matrix printers are just
not up to the task of printing such files. Inkjet and Laser printers
should work just fine, although the displayed reports might show some
chopping off of data - that's because the printer resolution is
greater than the screen resolution.

Also, some people complain that reports print too many pages, and 
they'd like to conserve paper instead of having a lot of white space
on some pages.

Finally, some users would like to save reports to files, and by 
default in Capital Gainz you have to save each page. Worse, if you 
want to use filters like awk on a report, or pull a report into 
Notepad or a text editor, you can't since it is in WMF format.

Well, there is a great solution to all these dilemmas. Under Config/
Report Settings, select the ASCII FIle Output option. With this
option, reports are sent to plain old text files that print quickly
even on dot matrix printers. Also, the files created can be 
manipulated with filters or read into text editors, and since there
are no page breaks, you'll conserve a lot of paper when you do print


11) Plans for Version 6.0

The major plans for Capital Gainz 6.0 (guestimate for Summer 1998):

    * 32 bit program. This will run faster, and work for Windows 95
      and Windows NT. It should also work with Windows 3.1 if you 
      installed (or added) the Win32 subsystem.

    * Much improved cash accounts. The current practice of using 
      a regular security and shorting it for margin, well, frankly 
      stinks. It's real hard to go back and change anything. The 
      upcoming release will have Cash Assets that maintain all buys
      in the Open Shares Table and all sales in the Closed Shares 
      Table. No matching of open records when you execute a sale, 
      and no more short sales for margin. Thus, you can go back 
      and easily fix a prior buy or sale. There will be a facility
      to convert existing securities to Cash Asset types (but not one
      to go from Cash Asset to security). Essentially, this type will
      be like a checking account, where all transactions are easily 

    * Specification of Global Security breakdown for asset allocation.
      For instance, if you have a Growth and Income Fund, you can 
      specify that, say, 60% is in stocks and 40% in bonds, and the
      Allocation Report will use those breakdowns rather than just the
      general fund security type.

    * A way to specify sales as withdrawals from IRAs and buys as 
      pretax/posttax. An addition to the Tax Report will show 
      withdrawals and how much of each was pretax or posttax. You 
      will, of course, be able to go back and change any existing 

    * Report writer. This has been requested often, and frankly I'm 
      still struggling with it. Any full-blown capabilities will in
      general be hard for most users to use - you need to understand
      headers, footers, groups, totals, and subtotals, plus figure out 
      how to relate data from all of the data files. One option I'm 
      considering is providing a feature that outputs data in a 
      defined format to comma-delimited files, then calls Crystal 
      Reports or a similar report writer to format the data. This 
      will require users to purchase the report writer of course, 
      which may be upwards of $100-200. I'm pretty worried about 
      providing a full-blown report writer, then having only
      a handful of people use it, and those that do needing inordinate
      ***** If you are one of those wanting report writer 
      ***** capabilities, please give me an idea of exactly what 
      ***** you're looking for. If you just want a specific type of 
      ***** report, let me know that as well.

    * The Performance Report will include both Standard Return and 
      Rate as well as IRR and IRR Return. The current version only
      lets you use one or the other. Since the IRR calculation can 
      take a bit, the Use IRR User Setting will determine whether 
      or not to include it.

    * Importing prices from sources such as will be easier,
      as I'm going to add predefined formats for various services 
      so you don't have to set up the format yourself.
      ***** If anyone is reading in prices from a service other than
      ***** AOL, CompuServe, Prodigy, Telechart 2000, MetaStock, or
      *****, I'd really appreciate you providing me with
      ***** example data and/or the format you specified.


12) Call For Beta Testers

Although Beta testing is still a ways off, if you're interested in
being a Beta tester, contact me. Beta testers get prerelease versions
and are urged to report any problems. These prereleases will have 
already gone through significant testing, but aren't yet ready for
primetime. The Help files probably won't be ready, for instance.