Wednesday, November 28, 2012

Personal Finance Software for Linux

Upfront disclaimer #1: Anything that looks like a trademark probably is a trademark. That should spare me having to insert trademark symbols every line or so.

Upfront disclaimer #2: This post is about personal accounting software. If you find accounting terminally boring, feel free to stop reading now (and, trust me, I understand).

I keep tabs of my personal finances using a copy of Quicken 2004 running on Windows. At this point, it's pretty much the only reason I ever have to boot into Windows, and it's a bit of a PITA to have to exit Linux Mint and reboot into Windows to do bills, then reverse the process to get back to work (or play). Unfortunately, most versions of Quicken seem not to work very well under Wine: ratings are heavily silver (mostly works), bronze (some features work, some don't) or the self-explanatory "garbage" with a smaller number of platinum (problem-free) and gold instances. For what it's worth, Quicken 2004 Deluxe R3 is rated "bronze", but on my system the installer crashes.

So I've been tentatively planning for a while to migrate to a Linux personal finance package. Features and stability matter, but the #1 concern for me was the ability to migrate my Quicken data to the new application, and that's the focus of this post. The best (only?) way to get data out of Quicken is by exporting to a QIF (Quicken Interchange Format) file. QIF seems to be one of those industry "standards" that isn't quite standard, so you can't depend on an application that has a QIF import function to correctly import any old QIF file. I think my QIF file contained between 11,000 and 12,000 transactions. The number is probably not important, other than to explain why I had absolutely no desire to reenter data from scratch with a new application.

Without further ado, here are the Linux apps I tested and my results of trying them. I'll list them in alphabetic order to avoid offending anyone more than necessary.
  • GnuCash (open source, cross-platform): This is generally the most widely cited and best rated of the Linux personal accounting programs. It has a QIF import option. Unfortunately, when it imported my Quicken QIF file, several (most?) of the account balances were off. More critically, they were off in ways I could not repair. There were old and unreconciled "transactions" that were incorrect. (I put "transactions" in quotes because in at least one case there was a split in a transaction that was processed incorrectly.) GnuCash does not allow you to mark just any transaction as reconciled; you can only mark it by actually reconciling the account. There is seldom a good reason to retroactively mark a transaction as reconciled, but correct a software error is one of them. The only way I could see to mark the problem transactions as reconciled (after fixing them) was to reconcile as of the transaction's date; but that was a dismal failure, because GnuCash takes the balance as of the most recent reconciliation as the opening balance and will not let you specify a different opening balance. Since I couldn't find a way to fix the errors, I gave up on GnuCash.
  • Grisbi (open source, cross-platform): Grisbi also seems to be well regarded among reviewers. Sadly, it repeatedly hung up (with no error messages) trying to import my QIF file, and had to be killed from a terminal. (Killing it left an idle process that had to be tracked down and killed separately.) So Grisbi was a non-starter for me.
  • Homebank (open source, cross-platform): Homebank seems to be an attractive program, perhaps with fewer features (and an easier learning curve) than GnuCash has. When I imported my QIF file, however, quite a few of the account balances were off, in some cases way off. (Trust me: my credit union would not allow me to overdraw my draft account by more than half a million US dollars.)
  • jGnash (open source, Java-based): jGnash offers one feature not found in any of the other programs (that I'm aware of) - the ability to use multiple currencies. It's not a feature I need, but it certainly didn't turn me off. The (Swing-based?) interface is not the most aesthetically pleasing of the lot, but it is certainly good enough. Overall, I was quite impressed with jGnash, except for the all-important QIF import feature. When I imported my QIF file, some bank transactions were missed. Unlike GnuCash, you can retroactively add a missing transaction and mark it reconciled, so I seriously considered using jGnash and just adding the missing transactions ... until I discovered that none of my securities accounts had been imported. A major reason for my using Quicken was to track security purchases (including dividend reinvestments), since Uncle Sugar has funky rules for capital gains and such come tax time. So jGnash bit the dust.
  • Moneydance (commercial, Java-based): Moneydance may be the most Quicken-like of the programs I tested (give or take GnuCash). It has all the features I would want and one or two (such as grouping transactions using ad hoc "tags") that I didn't know I wanted. Most importantly, it imported my QIF file nearly correctly. All but one of my bank accounts had the correct balance. In the one account that was off, there were two or three phantom transactions scattered through its history, possibly the result of incorrectly read splits. They were easy to identify, as they were the only old transactions that were not reconciled, and deleting them fixed that account. All my securities accounts seem to have been imported correctly. Moneydance is a bit on the pricey side -- it actually costs more than the basic versions of Quicken, and you can probably find a "deluxe" version of Quicken at a lower price -- but it gets the job done.
  • Money Manager Ex (open source, cross-platform): Money Manager Ex looked like an attractive option, but the QIF import function seems to be limited to one account at a time (and the account must exist in MMEX before you import the QIF file). That's fine for grabbing data from a financial institution that offers QIF downloads, but I had no desire to do a separate QIF export of each account from Quicken, and I'm not sure what that would have done to transactions that moved money from one account to another. So after discovering that import of the all-in-one QIF file failed, I punted.
  • PocketMoney desktop (commercial, cross-platform): PocketMoney is actually a mobile application (Android and iWhatever), but Catamount Software does sell a desktop version. There is a QIF import function that, from what I read on the Web, works for the mobile versions but seems not to be implemented in the Linux desktop version. I did find a menu entry to import a QIF file. It popped up a file chooser, but the only file type it allowed was "myQIFType", and would not list my QIF file even if I changed the file extension to .myQIFType. So PocketMoney was a non-starter.
  • Skrooge (open source, cross-platform): Skrooge is based on KDE but runs well with Gnome. It has an attractive interface and likely would have been my first choice had it imported my QIF file properly. Sadly, it refused to import the QIF file at all. Unlike Grisbi, it did not hang: it immediately gave me an error message, and the GUI continued to work properly after the message. The message, however, gave me no idea as to what in the QIF file had offended it.
So I ended up purchasing Moneydance. As a postscript, to test whether the Quicken QIF file might contain something funky, I exported my accounts from Moneydance to a QIF file and tried importing that into the other programs. In all cases, the results were identical (Grisbi hung, Skrooge failed gracefully, jGnash skipped the securities, GnuCash and Homebank muffed a bunch of balances).


11 comments:

  1. Hi,

    I am the main develop of Skrooge and I saw your issue with QIF import.

    Could you send me a sample file by email (you can find it in the about of Skooge)?

    Thank you.
    Stephane

    ReplyDelete
    Replies
    1. By sample file do you mean the QIF file that would not import? That contains personal information I am unwilling to share, and it is too large for me to go through it and obfuscate everything.

      I've uninstalled Skrooge, but if you have a version that would print useful (to you) debugging information, I'm willing to install that, recreate the QIF file, and attempt the import again.

      Delete
    2. Hi,

      Yes this is exactly my request and I understand that this is not so easy to do.

      Could you tell me what is the full error message displayed in Skrooge (click on "history")?

      Thank you.
      Stephane

      Delete
    3. Stephane: I'll email the details to you.

      Delete
  2. Thanks for this summary, Paul. I opted for Moneydance several Ubuntu versions ago but The Missus took over our bill payments (and such) a couple years ago. However, she's not really been keeping detailed transaction-by-transaction records (which is a problem for people with both business and personal expenses, taxable and otherwise). I'm thinking of going back into the record-keeping, and was curious what people's recent experience has been. This is a very nice, concise window into the options.

    ReplyDelete
    Replies
    1. You're quite welcome. I'm generally pleased with Moneydance, although there are a few things that I find a bit funky. One is that, on financial transactions (such as reinvesting dividends or selling a security), the order in which fields need to be entered is not the order in which you encounter them (raster-scan). As one example, I have to be careful to enter the commission (the last field in a raster-scan) on a sale early on. Otherwise, Moneydance changes the total, and when I adjust the total it changes the price.

      I've recently done some "in-kind" transfers -- shifting X shares of a security from one brokerage to another. There are no tax implications. In Quicken, I could just do a transfer-out/transfer-in. In Moneydance, I have to do a "SellXfr" (mock sale, transfer the proceeds) in one account and a "Buy" in the other, which forces me to look up the stock price on the day of the transfer (or risk screwing up the basis). Also, before doing the "Buy" I have to add the security manually to the new brokerage account.

      As I said, though, I'm mainly pleased with Moneydance.

      Delete
  3. This comment has been removed by the author.

    ReplyDelete
  4. The written piece is truly fruitful for me personally; continue posting these types of articles.

    ReplyDelete
  5. To solve problems importing QIF, read about the format on http://en.wikipedia.org/wiki/Quicken_Interchange_Format , and then edit the QIF file to fix the problem.

    ReplyDelete
    Replies
    1. Thanks. That sounds like good advice, _if_ you know what in the QIF file is causing the new program to gag.

      Delete
  6. Just look for a fairly uncommon number in the transaction which fails, or look for the date. The format is pretty easy to read. Make that _very_ easy. I've sometimes used pdftotext to convert pdf bank statements to QIF. (pdftotext comes in the poppler package, which might even be installed by default, otherwise yum install poppler (or apt-get, etc).

    ReplyDelete

Due to intermittent spamming, comments are being moderated. If this is your first time commenting on the blog, please read the Ground Rules for Comments. In particular, if you want to ask an operations research-related question not relevant to this post, consider asking it on Operations Research Stack Exchange.