Linux DevCenter    
 Published on Linux DevCenter (http://www.linuxdevcenter.com/)
 See this if you're having trouble printing code examples


A Day in the Life of Dave the Dollar

by Breckin Loggins
10/07/2004

Few things about GnuCash are as hard to understand--or as important to master--as the double-entry accounting method. If you took accounting in college, GnuCash's way of managing your money probably induces heart-palpitating flashbacks of debits, credits, and mean old accounting profs. If you didn't take an accounting class, you may be completely lost, because the way GnuCash does things is the same way professional accountants do it. Used correctly, the double-entry method reveals where every cent of your money comes from and where every cent of it goes. Fortunately, it takes very little to master the basics of the GnuCash way. Once you do master them, the increased flexibility and power with which you can manage your cash flow will pay enormous dividends.

In this article, I assume that you know the mechanics of GnuCash. In other words, you've figured out how to create accounts and you may have entered a transaction or two. If you don't know how to do that, I recommend the built-in GnuCash tutorial. This article does address, however, the typical response after you've figured out all the mechanics: "Now what?"

First, if you think you're going to spend the rest of this article (re)learning debits and credits, let me spare you the horror: because of GnuCash's default settings, I won't spend another word talking about them. Instead, I'll talk about accounts, and what happens in a typical day in the life of a one-dollar bill named Dave.

What Is Money, Anyway?

I'll spare you the technical definition about money being an agreement between two or more parties and blah, blah, blah. For our purposes, think of the lowly dollar bill sitting in your wallet right now as a member of a nomadic tribe. What do nomadic tribes do? They go somewhere; they stay awhile; and then, when the time is right, they head off to someplace else. That's what money does.

From your perspective, that dollar bill in your pocket is a little nomad who came from somewhere, stays in your pocket for a little while, and then grows restless and decides to move on. Figuring out where this little guy came from, how long he'll stay in your pocket, and where he eventually goes next is the key to success in managing your money. Not coincidentally, it's also GnuCash's main job.

A Day in the Life of Dave the Dollar

Our little nomadic one-dollar bill--we'll call him Dave the Dollar--has quite a complex life. That's OK; GnuCash can keep track of where he is (as well as thousands of others just like him).

Remember that Dave is nomadic, like all of his cousins. The double-entry accounting method is the best way to track the guy's movements. The main entity in GnuCash is the account. That's where GnuCash keeps Dave's records.

Meeting Dave

First, where did Dave come from? Suppose you picked up Dave in a (lousy) tip at the restaurant where you work. Dave came from the customer who gave you the tip. You don't really care which particular customer he came from; all you care about is that he came from the restaurant, like most of your other Dave look-alikes. With that in mind, we have an idea for a source account: Restaurant.

You can set up an account in GnuCash called Restaurant, which will be the source of all the little Daves that come from the restaurant. From here, you can keep it simple or get a little more complex. This is where GnuCash's nested accounts come in handy. For example, you typically receive both tips and hourly wages from the restaurant, so you could set up the Restaurant account, and then a Tips account and a Wages account under Restaurant. That way, you could tell at a glance whether Dave came from a tip or from your lofty $2.19 per hour. For now, just set up an income account called Restaurant. It isn't difficult; the important thing is to select the account as an Income account (versus, say, an Asset account or a Liability account).

Dave Stays for a While

Dave may have found you in the restaurant, but he didn't stay there; he wound up in your pocket. Similarly, Dave won't stay in the Restaurant account for very long. Technically, he won't stay there at all. Instead you'll immediately move him to his destination (your pocket). Now, just like you don't care which customer Dave came from, you also don't care which pocket he's in or even that he's in your pocket. He may be on the top of your dresser; it doesn't matter, as long as he's in your possession. Now create an asset account called Cash, because the destination for Dave and his friends is the cash you have in your possession (all of it, no matter where it is physically).

We have a source and a destination for Dave. All we need now is a way to document the journey that Dave took from the restaurant to your stash o' cash. The way to document this journey is with a transaction.

A transaction in GnuCash is a recording of where Dave came from and where he went. How do you create this transaction? You create it inside one of these accounts. Which account doesn't really matter for now, but just to be consistent, create it in the Cash account. Double-click on the account named Cash in the GnuCash accounts window. What will appear is a register (or ledger)--simply a listing of all the transactions that involve this account.

Right now the ledger is empty, because you haven't created a transaction yet. Thankfully, GnuCash makes this pretty easy. Click once on the first empty line under the field titles. If you click under the Date field, a blinking cursor will appear to let you know you can type there. To create the transaction, enter information field by field. (The Tab key is the easiest way to move between fields. Use Shift-Tab to move backward.) After you have finished a transaction, Tab repeatedly until your cursor advances to the row below, or press Enter, whichever strikes your fancy.

Click on the Date field and enter today's date. When you look back on the history of Dave's life, you'll want to know what day you acquired the little guy. GnuCash is pretty smart about this, so the quickest way to enter the date is to type in the month and the day separated by a forward slash (10/24, for example). When you Tab off the date field, GnuCash will enter the current year automatically. Great time-saver, huh?

The next field you encounter is Num. This is usually useful for checks, so ignore it for now. After the Num field is Description. This is just what it sounds like; enter some text that describes the transaction, perhaps Lousy Tip.

The next field is important. The Transfer field lets you specify Dave's source or destination account. Remember that you're currently in the Cash account, and you want Dave to move from the Restaurant account to here. Type Restaurant in this field. Actually, you won't have to type that much, because GnuCash auto-completes fields for you. How convenient.

Next is the Reconciliation field. Skip that for now.

Here comes the important part. If you've set up Cash as an asset account, the next two fields will be Receive and Spend. Obviously, you're receiving Dave from the restaurant, so enter 1.00 in the Receive column. Once you've done that, press Enter. The cursor will move to the next line, and the Balance field will show 1.00. You've now entered your first transaction with the double-entry method!

Here's Dave, sitting in the Cash account. You can look at the Restaurant account and see that Dave has been transferred to the Cash account. In prehistoric times, accountants had to enter the transaction in both ledgers manually, but GnuCash does it for you. Aren't computers wonderful!

Dave Moves On

Dave's now sitting in your account, but for how long? That, my friend, is your decision. You see, Dave is a curious nomad. He comes into your possession by means (somewhat) beyond your control, but once he's there, you control him. Dave may be a nomad, but he's your nomad. He'll stay in your possession until you tell him to go somewhere else.

A little later in the day, you're walking home from work, and you're hungry. Dave is antsy; he's running around so fast he's starting to burn a hole in your pocket. Sensing that you can kill two birds with one stone, you decide to take care of Dave by inserting him into a vending machine. Once Dave is in there, he cools off a little bit. In his gratitude, he orders the vending machine to give you some M&M's.

What happened? You're a little less hungry, but more importantly, Dave is no longer in your possession. How do you record this little event in Dave's life?

It's GnuCash to the rescue again! Just like with the customers in the restaurant and all the places you could have put Dave while you had him, you don't really care too much about where he goes, just as long as he did his job and gave you something in return. (That is, after all, what money's all about.)

Create a new account that will be Dave's destination. Call it Food, since that's specific enough to tell you what happened to Dave without being too specific. The Food account is an expense account.

Having created this account, you can record another transaction. Again, create the transaction in the Cash account. Put today as the date, M&M's as the description, and the Food account as the transfer account. Remember those two columns, Receive and Spend? Well, this time you've spent Dave, so record that 1.00 in the Spend column.

What happens after you press Enter? Dave whisks away to the Food account, and your account now reads 0.00. You have no more nomads in your possession.

Notice something interesting about what just happened. In the previous transaction, Cash was your destination, but in this transaction, Cash is your source. In the double-entry accounting method, every account can be both a source and a destination, depending on the transaction. For example, suppose that before you could spend Dave on M&M's, the lousy tipper returned to your restaurant and demanded that you give Dave back. Reluctantly, you agree, and Dave's gone again. This time, Restaurant is the destination for Dave, not the source.

Now back to reality. Dave went into the vending machine, but you don't care; what you need to know is that Dave went to the Food account. Open up that account and see what's in there. It's just as you might have suspected: there's a matching transaction with today's date and $1.00 transferred from your Cash account!

Notice those two columns on the right? They're no longer Receive and Spend; now they're Expense and Rebate. If a number falls into the Expense column, this account grows. If it falls in the Rebate column, the account shrinks.

Dave Returns!

Suppose you were totally unsatisfied with your M&M's and demanded a refund from the vending machine company. Now Dave has come back to you! This would show up as a Rebate in the Food account and a Receive in the Cash account. At this point, all the former accounting majors start having dreadful flashbacks of debits and credits, but as you can see, you don't have to worry about them. GnuCash not only knows which types of accounts increase with credits and vice versa, but it also gives those columns friendly names that correspond more closely to real life.

Conclusion

I hope you can see that the double-entry accounting method really isn't difficult to understand or use. All it means is that little Daves always come from some account and go to some other account, only to be whisked away eventually to yet another account. Some of these accounts belong to you and you want them to grow; those are your asset accounts. Some belong to you and you want them to shrink; those are your liabilities. Others don't belong to you and you want them to increase; those are your income accounts. Yet others don't belong to you and you try to keep them from increasing too much; those are your expense accounts.

Once you've mastered the double-entry accounting method, managing your small army of Daves will become a much more enjoyable--and profitable--process.

Breckin Loggins needs a better bio.


Return to the Linux DevCenter

Copyright © 2009 O'Reilly Media, Inc.