Here's a sample QIF (Quicken Interchange Format) file for reference purposes... (Parenthesized Text) at the ends of lines represents a running commentary...
!Type:Bank (Header line) D6/12/95 (Date of 1st transaction) T-1,000.00 (Amount of 1st transaction) N***** (Check number) PFranks Plumbing (Payee) AFranks Plumbing (Address 1st line) A2567 Fresno Street (Address 2nd line) ASanta Barbara, CA 90111 Address (3rd line) LHome Maint (Category/Transfer/Class) ^ (End of 1st transaction) D6/15/95 (Date 2nd transaction) T-75.46 (Amount 2nd transaction) CX (Status in Cleared column) N256 (Number) PWalts Drugs (Payee) LSupplies (Category/class) SSupplies (First category in split) EOffice supplies (First memo in split) $-36.00 (First amount in split) SGarden (Second memo in split) $-39.46 (Second amount in split) ^ (Ends 2nd transaction)
Further details on the structure:
At the start of each "account register," one of the following identifiers is used to identify the account "type:"
Each transaction item appears on a separate line.
Transactions in all accounts other than Invst (investment) accounts have fields from the following selection:
Number (check or reference)
Address (up to 5 lines; 6th line is an optional message)
Category/class or transfer/class
Category in split (category/class or transfer/class)
Memo in split
Dollar amount of split
End of entry
Repeat the S, E, and $ lines as many times as necessary to represent additional items in a split transaction.
Transactions in Invst accounts has fields from the following selection:
Quantity ( of shares or split ratio)
1st line text for transfers/reminders
For MiscIncX or MiscExpX actions, Category/classtransfer/class or transfer/class
For all other actions, Category/class or transfer/class
End of entry (required)
Each transaction ends with the field/symbol.
The complaint against Intuit I described here is now no longer a fair one; they have, in the Quicken 99 release, included a fuller set of documentation of fields recently added to QIF files. At some point I should more fully describe these additional "sections." Real Soon Now.
The documentation that Intuit provides for QIF files is incomplete, as it excludes documentation on the following additional "sections" that one may encounter in a QIF file.
This looks like the following:
!Type:Cat NBonus DBonus Income T R7360 I ^ NDiv Income DDividend Income T R4576 I ^ NGift Received DGift Received I ^ NInterest Inc DInterest Income T R4592 I ^ NInvest Inc DInvestment Income T I ^ NMusic I ^ NOther Inc DOther Income T R4112 I ^ NSalary DSalary Income T R7360 I ^ N_DivInc DDividend T R4576 I ^ N_DivIncTaxFree DTax-Free Dividend T I ^ N_IntInc DInvestment Interest Inc T R4592 I ^ N_IntIncTaxFree DTax-Free Inv Interest Inc T I ^ N_LT CapGnDst DLong Term Cap Gain Dist T R7808 I ^ N_RlzdGain DRealized Gain/Loss T I ^ N_ST CapGnDst DShort Term Cap Gain Dist T R4576 I ^ N_UnrlzdGain DUnrealized Gain/Loss I ^ NAA Credit Union E ^ NACM MC E ^ NAMEX E ^ NATM E ^ NAuto DAutomobile Expenses E ^
It appears that these fields have the following meanings:
Verbose Category name
Is this category relevant to taxes?
Appears to be an indicator of a "Tax Account," or something of the sort.
This looks like the following:
!Option:AutoSwitch !Account NAA Federal Credit Union TBank ^ NChecking TBank ^ N1st USA TCCard ^ NAAdvantage VISA TCCard ^ NMedical FlexSpend TOth A ^ NSabre Group 401(k) TPort ^
This appears to involve two field types:
This looks like the following:
!Type:Memorized KP T-63.90 PLinux Journal LComputing ^
Which looks like a similar form to ordinary transactions; there appears to be a new field, "K" which either has value KP , used when transactions are payments, and KD , used when transactions are deposits.
See also other sites with relevant documentation:
The QIF format has some downsides, including:
It does not guarantee uniqueness of transactions. There is no "transaction key," thus if you import a file twice, you will get the transactions booked twice.
It uses the assumption that a transaction is associated with a "balance sheet" (asset/liability) account and an "income statement" (income/expense) account. (Possibly multiple of the latter.)
In effect, everything looks like a cash expenditure/receipt. Transfers and adjustments must be fiddled into groups of "cash" transactions.
A new and better transaction format should include things such as the following:
Every transaction needs a permanently unique "transaction identifier." This means that if data is copied from one system to another twice, this can be detected. A sensible scheme would be to construct the unique identifier using:
An identification of the source system.
QSW might be my name for the "Quicken System at Work."
A unique identifier within the source system. 12F26A78 might be the MD5 checksum of the Quicken transaction; one would then assign that as the "transaction identifier."
This would go together to generate a unique key of QSW-12F26A78.
CREATED-IN: must identify uniquely the software system "instance" used to originally generate the transaction, such as payroll@@example.org or test.gl@@example.org.
This field is arguably unnecessary if the source system is identified within the transaction ID.
CREATED-ON: identifies the date on which the transaction was originally created in the source system.
EFFECTIVE-DATE: 1997/01/01 Effective date of the transaction.
Transaction "line items" would include:
ACCOUNT: CASH or ACCOUNT: Salary Income or some such thing. Unlike the "QIF" format, income/expense accounts are not made inherently distinct from asset/liability accounts.
A RECONCILED: payroll@@example.org 1997/01/01 item that could exist for each line itme would indicate that the line item was marked as reconciled on the "payroll" system on the given date.
Note that this means that in order to have all of a transaction marked as reconciled, one would have to do a reconciliation of every account involved. One would not normally do this with income or expense accounts; normally one only reconciles the balance sheet accounts like chequing accounts and credit cards, and not income or expense accounts. Not to say that it's impossible... A large company might well do reconciliations of some expense accounts to ensure that particular kinds of frauds are not being perpetrated...
The prefixes are here being spelled out in fairly long form; this arguably reflects a degree of inefficiency. I don't care. Assuming 10 bytes wasted per field, and ten fields per transaction, then in order to waste 1MB of disk space, one has to have 10,000 transactions, which is rather a lot of data. If the information is dropped into a database that uses any sort of fixed field/block sizes, any wastage in this regard will rapidly become unnoticeable.
Moreover, if interchange files are compressed for transmission, most of the inefficiencies will disappear anyways.
PAW/et Peachtree Extension Tool - A proprietary Peachtree-to-MS-Access data conversion tool
QBooks Office - Transactions (Seems fairly useful)