By now you may have noticed that there is an open source application for just about anything you could want to do with a computer. Managing finances is one of the most common computer tasks, so it should not come as a surprise that an open source application exists to do just that; it's called GnuCash .

GnuCash is the open source world's answer to popular personal financial applications like Microsoft Money and Intuit's Quicken. While it doesn't have all the bells and whistles of those applications, GnuCash has everything you need to keep track of your money. You can keep tabs on your income, expenses, checking and savings accounts, debts, investments, and assets like cars and houses. Once you master GnuCash's easy interface, a simple investment of a few minutes each day will keep you on top of your financial life. You will be able to see into the past to figure out where your money has been going, keep an eye on your balances in the present to make sure you don't suffer any nasty surprises, and forecast your financial well-being into the distant and not-so-distant future.

If you use an off-the-shelf application like Money or Quicken, you're in for a few surprises when you try GnuCash. Compared to those applications, GnuCash's interface is extremely straightforward. There are no fancy embedded web pages or advisors. You won't find endless options dialogs and wizards, and you can't pay your bills electronically from inside GnuCash. Instead, when you start GnuCash you are presented with a simple list of accounts. Double-clicking on an account opens an account register, which looks exactly like the one in your checkbook. You enter transactions in the account register, and the balance of each account is shown in the accounts list. You can view several reports to get an at-a-glance view of your financial life. And that's almost all there is to GnuCash. When it comes to finances, simpler is better, so this simplicity is an asset, not a liability. The other major difference between GnuCash and those other applications has to do with the way you keep track of your money. I'll cover that in detail in Section 10.2 later in this chapter.

Getting Started

Starting GnuCash is easy. After logging into KDE, just select K Menu→ Organize→ Manage your finances. The GnuCash splash screen appears, showing you which modules are loading. The splash screen is then replaced by the Tip of the Day screen and the Welcome to GnuCash! dialog box.

The Tip of the Day screen presents a different piece of information each time you start GnuCash. You can also peruse the tips one at a time by clicking the Prev or Next button. It might be a good idea to keep this screen around for a while because the information can be useful, but if you prefer not to see it you can disable the feature by unchecking the "Display this dialog next time" checkbox. You can close the window by clicking the Close button, but not until you answer the question in the Welcome dialog.

The Welcome dialog (Figure 10-1) is only displayed the first time you use GnuCash. It gives you the option of creating a new set of accounts, importing data from Quicken (via QIF files), or opening the new user tutorial. You are going to create a new set of accounts. This should be the default option, so just click OK.

This launches the New Account Hierarchy Setup druid. A druid in Linux is analogous to a wizard in Windows, and lets you click through a series of questions and setup screens to perform a complicated task. The first screen you see is an explanation of the druid; click Next to go on to the important parts.

Figure 10-1. The GnuCash Welcome dialog

Choosing a Currency

Figure 10-2 shows the dialog for currency selection for new accounts. The default currency is USD (US Dollar). If you use a different currency, select it from the available options in the drop-down list. Click Next to continue.

Figure 10-2. The Choose Currency page

Choosing Accounts

Figure 10-3 shows you the list of preset account structures. Each of these options creates one or more accounts for you. You can select multiple options (for example, if you want both a checkbook and a car loan), but for now just select A Simple Checkbook. Once you select that option, you'll see a description and a list of the accounts that will be created. Don't worry about the number of available accounts; it may look confusing, but all will become clear by the end of this chapter. Click Next to continue.

Figure 10-3. The account creation page

Entering Opening Balances

The dialog in Figure 10-4 allows you to give each account an opening balance, that is, the amount of money in the account when you first begin tracking it in GnuCash. If you want to put an opening balance in your checking account, just click that account to select it and enter the opening balance in the textbox to the right. Click Next to continue.

Figure 10-4. The opening balances page

Finishing Your Account Setup

And that's all there is to setting up an account hierarchy in GnuCash. Just click Finish and the druid will close.

Note

If you are using Move with a USB key you will probably want to save your account setup to a file that will contain all your financial records. Click the Save button in the toolbar, enter a filename, and click OK to save the accounts to that file. GnuCash will open this file automatically the next time you run the application. If you don't have a USB key, all of your account information and data will be lost each time you reboot the computer.

The Account

Fundamental to GnuCash is the account. An account is just what you think it is: a place where money comes in and money goes out. When most people think of accounts, they think of their bank accounts and credit card accounts. GnuCash treats these as accounts, but it treats everything else as an account too. You get a paycheck from work; where does the money come from? It comes from your Income account. You spend $30 at the grocery store; where does the money go? It goes to your Food account.

GnuCash uses the double-entry accounting method to keep track of your money. This is the same method that professional accountants and CPAs use to keep track of billions of dollars in corporate and government assets, and now you're going to use it too. (Don't you feel important?) In double-entry accounting, money always comes from one account and goes to another account. Always. The value of any account at a given time is either how much money is actually in that account or how much money has passed through it.

Not all accounts are treated equally in GnuCash. Five types of accounts will be covered in this introduction: Assets, Liabilities, Income, Expenses, and Equity.

Asset accounts

Think of asset accounts as keeping track of things you own. Your checking account is an asset. If money is in this account, you own it. A house is also an asset. The value of that account is the current value of your home. In general, you want asset accounts to increase.

Liability accounts

You can also think of liability accounts as keeping track of things you own. The only difference is that you don't want to own them! If you have a house, you probably have a mortgage. You "own" this promise to pay your lender a certain amount. The amount you have left to pay is the balance of your mortgage account. Credit card balances, car loans, and IOUs are examples of liabilities. In general, you really want liability accounts to decrease.

Income accounts

Unlike asset and liability accounts, income accounts don't represent money you own (at least not directly). Think of an income account as a window into someone else's (usually your employer's) check register. When your boss writes a check to you, it gets recorded on the withdrawals side of his register. If you can imagine those records also showing up in your income account (giving you a glimpse into the portion of his checkbook that concerns you), then you have some idea of how income accounts work. Money doesn't usually stay in these accounts; it immediately goes into one of your asset accounts (usually your checkbook). The value of this account at any time is the total amount you have been paid. It probably goes without saying that you always want these accounts to increase.

Expense accounts

Expense accounts also don't represent money you own. You can think of them as a glimpse into the deposit side of the checkbook of whomever you are paying. The value of each expense account is the total amount you have paid to that person, business, or activity so far. While you can't decrease the value of expense accounts (except via refunds and rebates), you do want to manage them well.

Equity accounts

Equity accounts are the odd man out in this group. While there is a formal definition of equity in the accounting world, it is beyond the scope of this introduction. The easiest way to think of an equity account is as the place where opening balances come from. Remember that, in GnuCash, money must always come from some account and go to some other account. So where did your opening balance come from? It didn't come from income, since it's not like you got a paycheck for that opening balance. Instead, it came from the equity account.

The GnuCash Accounts Window

The main window of GnuCash, shown in Figure 10-5, is the accounts window. This shows all of your accounts in the currently open file. The accounts are listed in tree form because accounts can contain sub-accounts (more on this later). For now, all you need to know is that a plus sign to the left of an account name indicates that is a parent account of one or more sub-accounts, and that clicking on the plus sign expands the listing so you can see all accounts under the parent.

Figure 10-5. The GnuCash accounts window

The accounts listing shows the account name, a description, and the current account total by default. If an account is a parent to one or more sub-accounts, the account total is the combined total of all its sub-accounts as well as the parent account itself. Clicking once on an account selects it. Right-clicking an account shows a context menu with options to create a new account, delete an account, edit an account's properties, and perform numerous other tasks. Double-clicking an account brings up the associated account ledger, or register. You will learn more about ledgers later.

Creating New Accounts

There are several ways to create a new account. The easiest is to simply right-click on an empty area in the accounts window. You can also select New Account under the File menu. Create a new account now by selecting the Income account and right-clicking it. Select New Account from the context menu to begin.

Figure 10-6 shows the New Account screen. The first thing to do is give the account a name. Since you're going to record all the money you get from your job in this account, type Paycheck in the Account Name field.

Figure 10-6. The New Account screen

The Account Code and Description fields are for your personal use if you need to record an account code (like an account number from your bank) or a description of your account. You can set the commodity of this account just as you did for the main accounts file. By default it uses the commodity (USD, euro, GBP, etc.) and commodity type (Currency) of the main file, but you can change this to use other commodities (for example, if you're a spy and have a numbered bank account in Zurich) or other commodity types. This is useful for tracking stocks, bonds, and other financial instruments. The available commodity types are determined by the account type you select below.

In the Account Type box, you'll find the five account types introduced earlier as well as other types used for special purposes. The point of our Paycheck account is to keep track of income, so scroll down to the Income entry and select it. After Account Type is the Parent Account box. Accounts can be nested, which means that one account can exist as part of another account. You already have an account called Income, so click on the plus sign next to New Top Level Account, which expands the tree to show your existing accounts. Scroll down until you see the Income account and select it. This puts your Paycheck account under the Income account.

Note

If you don't see the Account Type and Parent Account fields, try resizing the window to be taller. If the window is already as tall as your screen allows, you probably need to adjust your resolution as outlined in the Appendix.

If you were using this account for stocks and other special commodities, you could set up a way to get price quotes (say, to check the value of a stock) online in the Price Quote Source section. However, this is beyond the scope of this chapter. The Notes field just lets you add notes to yourself which you can see later if you go back to this screen.

Finally, there are two checkboxes near the bottom: Tax Related and Placeholder. The Tax Related checkbox links this account with tax information so that certain tax values are automatically calculated. Using this property is beyond the scope of this chapter. The Placeholder box is for accounts that serve only as organizers for other accounts. For example, you may have three sources of income: Job, Parents, and your weekend Web Design business. In this case, you would place all three accounts under the Income account. Now the Income account shouldn't have any activity of its own, because all of your income comes from one of these three sources. To enforce this rule, you would check the Placeholder option in the Income account's settings window. This disallows entries in the Income ledger, so you can be sure that income is properly recorded in one of the three sub-accounts. You don't want this option for your Paycheck account, however, so keep the box unchecked.

Now click OK and you are taken back to the main account window page. You can see that the newly created Paycheck account has been highlighted. Also notice that it has been placed under the Income account, just like you wanted.

If you want to edit the properties of an existing account, simply click on that account to select it, then right-click it to bring up the context menu. Select Edit Account under the context menu to bring up the properties screen.

Deleting Accounts

If you create an account erroneously, select that account and right-click it to bring up the context menu. Select the Delete Account menu item to delete that account from your file. Be aware that this affects all records pertaining to this account and may leave your accounts in an unbalanced state.

Warning

Do not delete an account just because you have closed it (for example, you paid off a credit card and cut it up or you closed an account at an old bank). Even though the account is closed, you do not want to lose all records of the transactions contained in that account, and deleting it may unbalance your other accounts.

Unfortunately, there is no real way to hide closed accounts so they no longer appear in your accounts window. There is a cheat, though: simply create a new top-level account called Closed as a placeholder account, and move all closed accounts under that account by setting it as the parent account. Since you can click the minus sign to collapse the closed accounts, all you see is the parent account. This trick isn't particularly elegant, but it works.

Transactions

If the account is the heart of GnuCash, transactions are the blood. Without transactions, you simply have a bunch of accounts listed in a window. This isn't terribly useful—you want to do something with all these accounts. Recording transactions is exactly what makes GnuCash useful.

A transaction in GnuCash is a record of a specific event. This event is usually money being transferred from one place to another, but it could also be the equivalent value in stocks, bonds, or real estate. For a concrete example of a transaction, look no further than your own checkbook. If you keep a register, the individual entries in that register are records of transactions. When you use GnuCash, you simply record those transactions in the computer instead of in your checkbook. (Of course, a prudent person would do both.)

Entering Transactions

To enter transactions, you must open an account's register window, shown in Figure 10-7.

Figure 10-7. The account register window

You can access the register window for any account by double-clicking on the account in the accounts window. Let's start by recording a simple income transaction. Say you just mowed the lawn for Aunt Mary and she paid you $25 for your troubles. Here's how to record the transaction in GnuCash:

Expand your Assets account, followed by the Current Assets account, and then double-click on Checking Account to bring up the register.

Today's date is already in the Date field. Hit the Tab key to move to the next field (Tab moves you forward through fields; Shift-Tab moves you backward). The Num field lets you enter your check number or any other tracking number you need for this transaction. In this case, we'll say that Aunt Mary gave you check #100, so put 100 in the field.

Tab to the Description field and enter something, well, descriptive. Mowed Aunt Mary's Lawn would work.

Tab to the Transfer field. This is one of the most important fields. Remember that in GnuCash, money always comes from one account and goes to another. In this case, you want money to go from your income account into your checking account. The good thing about this (and every other) field is that it auto-completes for you. Just enter In, and GnuCash should display an account list and select the Income account automatically.

Since you are receiving money from Aunt Mary, tab to the Deposit field and enter 25.00.

When you press Enter the transaction is recorded. When you close the register window and look at your accounts, you can see that both the income account and the checking account have increased to 25.00. Notice also that the parent accounts of checking account also show 25.00. Parent accounts show the sum of all accounts below them. At a glance, you can see that you have made 25.00 in income so far and that you have 25.00 in your checking account.

Note

To delete a transaction, go to the register containing the transaction, right-click on the transaction, and select Delete. Doing this removes the transaction from all affected accounts. In the case of the check from Aunt Mary, the transaction is removed from the income account and the checking account.

Recording Split Transactions

So let's say you have a paycheck in hand, ready to enter into GnuCash. If you're like most people, the amount you get paid is different from the amount you earned. The rest of the money goes to federal, state, and local taxes. You could just enter the amount for which the check was written, but what if you wanted to keep track of total income and expenses, including gross income and taxes? You can do this in GnuCash by using the split transaction.

Split transactions provide a way to record multiple sources and destinations of money as a single transaction. In this example, one single transaction can record that you earned 500.00, and 100.00 went to federal tax, 50.00 to state tax, and 50.00 to local tax, leaving you with a 300.00 deposit to your checking account. Split transactions work by balancing money in versus money out among multiple sources and/or destinations. GnuCash allows you to have an unbalanced split, but it will complain loudly.

To enter a split transaction, follow these steps:

Open an account register. Split transactions are usually recorded at the logical source or destination. For a paycheck, it is common to record the transaction inside your checking account.

Enter the date and description as you would any transaction.

Click the Split button on the account register's toolbar.

Press Tab to advance to the first sub-transaction.

Enter each part of the transaction as you would a normal transaction. Here's the tricky part: Deposit and Withdrawal apply to the account you're transferring money to/from at the time. For this example transaction, you are withdrawing 500.00 from your Income:Paycheck account in the form of wages, and splitting that into several deposits in your Expenses account and your Assests:Current Assests:Checking Account. At first it may seem counterintuitive that taxes are a deposit in an account, but if you go back to the earlier definition of an expense account it should make sense. Use Figure 10-8 as a guide for filling out this transaction. When you finish with a sub-transaction, press Tab to go to the next one. I find it convenient to perform transactions like this by making my first sub-transaction the withdrawal from the Income account. This helps with the balancing that GnuCash automatically performs on the splits that follow.

Figure 10-8. Example of a split transaction

Press Enter to finish the split transaction. If the transaction is not balanced (money in does not equal money out), GnuCash warns you and offers several solutions. GnuCash realizes that you're not as good at math as the computer is, so it displays the amount remaining on the last sub-transaction line. Once everything balances correctly, the split transactions collapse into a single line.

To see an already recorded split, select that transaction and click the Split button on the toolbar.

Note

The example in Figure 10-8 shows a good reason to create sub-accounts under Expenses. If you create sub-accounts called Federal, State, and Local, you can see at a glance the amount you have paid so far into each respective category. This technique works just as well for categorizing other expenses and incomes.

Scheduling Transactions

You probably pay certain bills at about the same time every month, and entering those transactions every time can become a chore. GnuCash's transaction scheduling feature allows you to create transactions that automatically recur at a certain interval. To schedule a transaction, follow these steps:

Enter the name of the scheduled transaction (e.g., Electric Bill), the start date, the frequency, and the end date (if applicable).

There is a template transaction at the bottom of the window. This is where you tell GnuCash how much money to transfer at the specified intervals. Click in the Description field and create a transaction just like you would any other in your checking account. Remember, when you are paying a bill you are probably depositing money into an expense account and withdrawing money from your checking account. The template transaction needs to reflect both sides of the transaction. At the specified time interval, this transaction will occur in the accounts involved.

Note

A quick way to make any transaction a scheduled transaction is by right-clicking on the transaction and selecting Schedule. If you are having trouble figuring out how to manually enter a template transaction, you can cheat by creating one this way, clicking the Advanced button, and seeing how GnuCash automatically fills out the template transaction.

Reports

Once you have spent a few months entering your financial details into GnuCash, you will start to appreciate the power that comes from having detailed records of your money habits. It's one thing to have all this information available, but it's quite another to organize it in a way that can help you spot trends or solve problems. Fortunately, GnuCash has a wide selection of reports to give you a firm grasp on almost every aspect of your financial life. The following table shows a list of some of the most common reports and what you can expect each to tell you. You can access any of these reports by navigating through the Reports menu in the accounts window.

Report

Description

Account Summary

Gives you an at-a-glance view of the balances for each account.

Asset Barchart/Piechart

Lets you see how your net worth is divided. For most people, their net worth is primarily in their house, bank accounts, and retirement funds.

Liability Barchart/Piechart

Breaks down your liabilities by percentage. For most people, houses and cars are the greatest liabilities, followed by credit cards and consumer and student loans.

Net Worth Barchart

Net Worth = Assets - Liabilities. This is a graphical representation of that formula. In general, you want the blue and green bars to get higher, and the red bar to get lower.

Expense Barcart/Piechart

Shows you where your money is going. If you spend 80% of your money each month on clothes, this will tell you that (assuming you have structured your expense accounts correctly).

Income Barchart/Piechart

Shows you where your money comes from. You may think that most of your money comes from your job, but this report may surprise you with how much of it comes from other sources, such as mom and dad and contract work (once again, assuming you have set up your accounts correctly).

To be truly informative, most of these reports require you to have an intricate account tree set up. For example, if you have one big Expenses account to which you send all of your money, then the Expense Report will show that 100% of your money goes to Expenses—not very helpful. To get the most out of the reports, you must structure your account tree so that each category of expenses has an account under the main Expenses account, and ditto for Income, Liability, and Assets. In general, the more structured your accounts, the more you will get out of GnuCash.

Note

By default, GnuCash reports from the start of the current year to the current date. You can change this (e.g., to show expense allocations for April) by clicking the Options button in the toolbar.

When you activate a report, it creates a tab to the far left of the window; above that tab you should also see Accounts. Use this to switch back and forth between the accounts window and your reports. Click the Close button on the toolbar to close a report.

Note

Clicking Exit will not just close the report window—it will exit GnuCash entirely!

Real-Life Examples

Learning the basics of GnuCash is one thing; actually using it in day-to-day scenarios is quite another. You have already seen how to enter a paycheck so that total income and tax expenses are recorded. Here are several other real-life examples to get you started on the most common tasks.

Going to the Grocery Store

I've mentioned the importance of setting up a sufficiently detailed account structure before, but what I didn't tell you is how easy it is to do it. First of all, you don't have to set up all those accounts in advance. Knowing that you can create them as you go along gives you the motivation to do it right.

Here's what to do:

Open the Checking Account register.

Create a new transaction with today's date and Grocery Store as the description.

In the transfer field, enter Ex, and Expenses will be selected automatically. Use the right arrow key to complete the auto entry. Now type :Food. The colon tells GnuCash to make Food a sub-account of Expenses.

Press Enter to accept your new category and Tab to leave the transfer field. A dialog box will appear, asking you if you would like to create the Expenses:Food account. Click Yes.

The New Account window appears. The defaults should be fine, so click OK.

Skip the Deposit field, enter 50.00 in the Withdrawal field, and press Enter.

Congratulations! You have not only created a transaction recording your food purchase, but you've also created the expense account for it. Future food transactions can now go into this account, and a quick glance at the accounts window will show you exactly how much you have spent on food.

Note

GnuCash's auto-complete feature is very helpful. Once you have created sub-accounts, typing a colon after an auto-completed account will jump directly to the end of that account and begin with a listing of its sub-accounts.

Getting a Tax Refund

Most people think of tax refunds as income, but they aren't—they are rebates, because money that was taken from you earlier is now being returned. If you keep track of your taxes from each paycheck, recording a tax refund is as simple as creating a rebate from your expense account to your checking account. Here's how it works:

Open the Checking Account register.

Create a new transaction with today's date and Tax Refund as the description.

Since you recorded federal taxes from your paycheck as going to the Expenses account, enter Expenses in the transfer field.

Enter 50.00 in the Deposit field.

Press Enter to complete the transaction.

You now have another $50 in your checking account, but if you look at the accounts window, you will notice that your income has not increased. Instead, total assets have increased and expenses have decreased. This is an accurate depiction of what happens when you get a tax refund. No longer can you fool yourself into thinking that a tax refund is extra money you make every year. You already earned it; you're just getting it back!

Buying a Car

An automobile is a big expense. And if you're buying a vehicle on credit, it becomes even more costly. Luckily, GnuCash can keep track of every cent of the purchase, as well as what portion of your monthly payment goes toward principal and what portion is lost as interest. The process of setting up a car purchase is also a good example of how to handle a house purchase or other type of loan.

Here's the scenario: you've just bought a brand-new car for $20,000. You put down $5,000 and will be paying a $400 monthly payment for 60 months. You may have received an amortization table from your lender showing you how much money goes to principal and interest each month. If you didn't get an amortization table, you might want to ask your lender for one or create one yourself using tools available at web sites such as http://www.bankrate.com. You will probably be surprised at how much money you spend on interest. To record a car payment transaction:

Begin by creating a new account. Call it Car Loan, set its parent account to New top-level account, and its account type to Liability.

Create a second new account called Car, set its parent account to Assets:Current Assets, and its account type to Asset.

Open the account register for the Car account.

Start a new transaction. Enter Buy Car as the description and then click the Split button on the toolbar.

The first sub-transaction records the car's value. Enter Car Value as the description, Assets:Current Assets:Car as the account, and 20000.00as the increase value.

That 20 grand has to come from somewhere. The first place is your down payment. Enter Down Payment as the description, Assets:Current Assets:Checking Account as the account, and Decrease the account by 5000.00. (Yes, this makes your bank account negative. Don't try this at home!)

Unfortunately, tax, title, and license cost you another $1,500. Enter TT&L as the description, Expenses as the account, and Increase the account by 1500.00.

You now have a $16,500 balance for the transaction; this is your loan amount. Enter Loan Principal for the description, Car Loan for the account, and Decrease the account by 16500.00.

Complete the transaction. The accounts window should show the results of your hard work.

You've had the car for about a month now and it's time to make the payment. A quick look at the lender's amortization table shows that $300 of your payment goes to interest and $100 goes to principal. Here's how to record that:

Open the Checking Account register.

Start a new transaction. Use today's date and enter Car Payment in the description field. Click the Split button to begin a split transaction.

Your payment is $400, so enter Payment as the description, Assets:Current Assets:Checking Account as the account, and Withdraw 400.00.

$300 goes to interest, so enter Interest as the description, Expenses:Interest as the account (click Yes and OK after tabbing off the field to create the sub-account), and Deposit 300.00 into the account.

The rest goes to principal. The $100 balance should already appear in the Deposit field, so just enter Principal in the description and Car Loan for the account. Press Enter to complete the transaction.

Looking at the accounts window, you'll see that the Car Loan account has decreased by $100 and the Expenses account has increased by $300, exactly as it should be. No longer will you have to consider all of your car payment as an expense, as some of it goes to decreasing liability (and therefore increasing net worth). And now you can see it happening every month!

This transaction is an excellent example of one that should be scheduled to recur every month, saving you the hassle of typing it in every time. With each payment, be sure to change the interest and principal amounts as the amortization table indicates.