We finally locked down the cost module last week--our biggest headache so far. As you enter transactions, whether via import or data entry, FinFolio allocates your tax lots using your specified allocation.
It does LIFO, FIFO, Highest, Lowest, Average, and Specific Lot. A neat thing about Specific Lot--you set the top-level allocation type to Specific Lot, then you can set the lot type on individual transactions to LIFO/FIFO/Highest/Lowest. This means you can do fine-grained lot allocation without the headache of having to calculate the lots yourself. (and you can still allocate them manually)
We have test cases for some security types, including short positions and options. Those were very difficult to do in Techfi's software so we made sure they all worked automatically this time around. We're planning on fleshing out any remaining security types before the Developer Preview.
The tax module automatically detects and handles wash sales, qualified dividends, and constructive sales. It tracks not only long term and short term gain, but also gain from collectibles, qualified small business stock, SSBIC, Section 1256 gain, and un-recaptured 1250 gain. It will automatically analyze qualified dividends, correctly treating non-qualified dividends as ordinary income rather than short term capital gain.
After spending the last three months on capital gains reporting, I've become convinced that most other software in our industry is reporting tax incorrectly.
- An account sold a security in December at a loss, then bought an equivalent security in January. Will your software report the sale as a realized loss, or will it correctly ignore it?
- Your client owns a stock in one account, but goes short on the same stock in another account at a price higher than his original purchase. Will your software correctly list it as a gain?
- One of your accounts has a dividend on a fund they owned for less than 45 days. Will your software correctly report it as ordinary income, or will it report it as a short term gain? Does your software even have an ordinary income column on your Gains/Losses report?
We handle all of those examples correctly and many more--too many tax situations to list in a single post. We're not completely finished with cost yet, but we're locking it down until Beta 1 ships. Some things we're still missing, but are planning on adding, are the MinTax, Pro-Rate, Double-Category Average, and Mark-to-Market methods. Mark-to-market is actually already written (we needed it to handle Section 1208 index options) but we haven't exposed it as a top-level allocation method yet. We also plan to add support for straddles.
In the last month, we've been playing with Silverlight, which led to a rewrite of our core object model. And we're in the process of implementing imports, which led to another rewrite of our core object model. (sigh) We're trying to touch on everything before we release the Developer Preview, because we'd prefer to avoid major changes afterwards.