Financial Manager (FinMan)

Table Of Contents

Introduction
QIF2CSV

Back to Table Of Contents

Introduction

FinMan is a project to write a replacement for the Intuit Quicken product that I have been using for probably 30 years (if Quicken is actually that old).

I filed a question with the intuit Quicken Community titled Why has one-step-update suddenly ask for an intuitID that is has never asked for before, and something that I have never had?. This was the result of the last straw for me about Quicken.

Whether or not I ever finish the product remains to be seen. Even if I were to finish the product to my satisfaction, I have no idea, at the moment, if I could make it general enough to release to the public.

However, there is some software that I am developing as interim steps. to meet my emergency needs. You can imagine that having used Quicken for so long, I have it thoroughly imbedded in my personal financial management methods. At the very least, I need checkbook software to keep my checkbook up-to-date.

Page maintained by Steven Greenberg. Last modified June 11, 2015 08:56:14 EDT (GMT-0400)..

This page has been read 345 times from 226 internet addresses.

Back to Table Of Contents

QIF2CSV

QIF2CSV is an interim step so that I can get the Quiken exported file which is in the form of Q(uicken) I(nterchange) F(ormat) converted into a Comma-separated values file. The CSV file is commonly a format read by spreadsheet software such as Microsoft Excel.

This is not a formal product, and I offer it on an As Is basis in the off chance that people with some computer expertise will be able to use it to solve their problems with Quicken. It does not have much of a user interface, let alone a fancy one or a graphical one. In fact it is a script written in PERL. You will need to be able to execute a PERL script on your computer to be able to use it.

I use a virtual linux operating system on my Microsoft Windows 7 computer. The examples will show how I do it there. There are ways to install PERL directly on Windows, but I am going to leave that up to you, if that is the way you want to try it.

Look on the PERL web site for how to get PERL if you don't have it. For a version you can install directly on a Microsoft Windows machine visit the Strawberry PERL web site. If you use an Apple computer, you are entirely on your own.

Now let's get to downloading the script I am offering AS IS.

When you use the button above to download the file, you should see window like the one below.

Save the file, and rename it to qif2csv.pl. The .pl extension means it is a PERL file.

The above script was developed around the PERL package Finance::QIF. In fact the script is nothing more than a modified version of one of the examples from the package. If you don't have this package installed in your PERL environment, use this or the previous link to get it.

Here is an example of the results from running this script on a small example. The start of each data line identifies which print statement in the script created that output. It is only there to aid you if you want to debug or modify the script (or even understand it).

405: perl ./qif2csv.pl smallExtract.qif
 qif2csv converting 'smallExtract.qif' to 'smallExtract.qif.csv'
Opened CSV file smallExtract.qif.csv for writing
Print Header:Header: Account
Print Keys:     name: The Bank Checking Account
Print Keys:     description: Linked Checking Account
Print Keys:     type: Bank
Print CSV record      "","","","","","",""
Print Header:Header: Account
Print Keys:     name: The Bank Checking Account
Print Keys:     description: Linked Checking Account
Print Keys:     type: Bank
Print CSV record      "","","","","","",""
Print Header:Header: Type:Bank
Print Keys:     status: X
Print Keys:     date: 1/14' 9
Print Keys:     total: 0.00
Print Keys:     category: [The Bank Checking Account]
Print Keys:     transaction: 0.00
Print Keys:     payee: Opening Cash Balance
Print CSV record      "X","1/14/2009","","Opening Cash Balance","[The Bank Checking Account]","0.00",""
Print Header:Header: Type:Bank
Print Keys:     transaction: 2,000.00
Print Keys:     payee: Transferred From     xx xxx-xxxx
Print Keys:     total: 2,000.00
Print Keys:     category: [The Bank Another Account]
Print Keys:     number: EFT
Print Keys:     memo: TRANSFERRED FROM     xx xxx-xxxxxx-x
Print Keys:     date: 1/15' 9
Print Keys:     status: X
Print CSV record      "X","1/15/2009","EFT","Transferred From     xx xxx-xxxx","[The Bank Another Account]","2,000.00",""
Print Header:Header: Type:Bank
Print Keys:     date: 1/30' 9
Print Keys:     status: X
Print Keys:     memo: INTEREST EARNED
Print Keys:     total: 0.16
Print Keys:     category: Interest Inc
Print Keys:     transaction: 0.16
Print Keys:     payee: Interest Earned
Print CSV record      "X","1/30/2009","","Interest Earned","Interest Inc","0.16",""
Print Header:Header: Type:Bank
Print Keys:     number: 1001
Print Keys:     memo: Budget Plan
Print Keys:     status: X
Print Keys:     date: 2/ 9' 9
Print Keys:     transaction: -455.05
Print Keys:     payee: An Oil Company, Inc.
Print Keys:     total: -455.05
Print Keys:     category: Utilities:Oil
Print CSV record      "X","2/09/2009","1001","An Oil Company, Inc.","Utilities:Oil","-455.05",""
Print Header:Header: Type:Bank
Print Keys:     total: -393.08
Print Keys:     category: [A Car Brand Financial Services]
Print Keys:     transaction: -393.08
Print Keys:     payee: A Car Brand Financial Services
Print Keys:     date: 6/ 9'11
Print Keys:     status: *
Print Keys:     number: EFT
Print Keys:     memo: 2009 A Car Brand A Model
Print CSV record      "*","6/09/2011","EFT","A Car Brand Financial Services","[A Car Brand Financial Services]","-393.08",""
Print Splits:     Split: amount: -332.18
Print Splits:     Split: category: [A Car Brand Financial Services]
Print Splits:     Split: amount: -60.90
Print Splits:     Split: category: Interest Exp
Number of CSV records processed was 7
    

Here is the output file smallExtract.qif.csv.

status,date,number,payee,category,transaction,balance
"","","","","",""
"","","","","",""
"X","1/14/2009","","Opening Cash Balance","[The Bank Checking Account]","0.00"
"X","1/15/2009","EFT","Transferred From     xx xxx-xxxx","[The Bank Another Account]","2,000.00"
"X","1/30/2009","","Interest Earned","Interest Inc","0.16"
"X","2/09/2009","1001","An Oil Company, Inc.","Utilities:Oil","-455.05"
"*","6/09/2011","EFT","A Car Brand Financial Services","[A Car Brand Financial Services]","-393.08"
    

To create the QIF input file, I had Quicken do a file export. I checked off everything that could be checked off for exporting. I'd go to my Quicken installation to verify this, but I cannot get into Quicken anymore.

In order to process one checking account, I had to use a text editor to extract the account that I wanted to process with qif2csv.pl.

Below is an even smaller extraction that I used to debug the script and to use in this demonstration.

!Option:AutoSwitch
!Account
NThe Bank Checking Account
TBank
DLinked Checking Account
^
!Clear:AutoSwitch
!Account
NThe Bank Checking Account
DLinked Checking Account
TBank
^
!Type:Bank 
D1/14' 9
U0.00
T0.00
CX
POpening Cash Balance
L[The Bank Checking Account]
^
D1/15' 9
U2,000.00
T2,000.00
CX
NEFT
PTransferred From     xx xxx-xxxx
MTRANSFERRED FROM     xx xxx-xxxxxx-x
L[The Bank Another Account]
^
D1/30' 9
U0.16
T0.16
CX
PInterest Earned
MINTEREST EARNED
LInterest Inc
^
D2/ 9' 9
U-455.05
T-455.05
CX
N1001
PAn Oil Company, Inc.
MBudget Plan
LUtilities:Oil
^
D6/ 9'11
U-393.08
T-393.08
C*
NEFT
PA Car Brand Financial Services
M2009 A Car Brand A Model
L[A Car Brand Financial Services]
S[A Car Brand Financial Services]
$-332.18
SInterest Exp
$-60.90
^
    

Be careful how you copy lines from the original QIF file to the one you want to process through the script. I had copied an extraneous ^ (up carat), and the program worked with no error messages and no output from processed QIF records. The ^ (up carat) character terminates an entry. It does not start an entry. Look at this excerpt from the top of the example QIF file to see what I mean.

!Option:AutoSwitch
!Account
NThe Bank Checking Account
TBank
DLinked Checking Account
^
    

If you have troubles with any of this, I am not sure I will have the time to help you, but you can try to send me an email. I'll be so busy working on the rest of the software and trying to manage my finances without Quicken that I may not have time to even look at my email very often.

Back to Table Of Contents