# Transactions

This chapter will give you the basic information you need to understand and use transactions in GnuCash. Whereas accounts are the framework and structure of a chart of accounts, transactions are the data which fills each account.

## Basic Concepts

A transaction in a double entry accounting system such as GnuCash is an exchange between at least 2 accounts. Thus, a single transaction must always consist of at least two parts, a "from" and a "to" account. The "from" account is passing value to the "to" account. Accountants call these parts of a transaction Ledger Entries. In GnuCash, they are called Splits.

For example, you receive a paycheck and deposit it into your savings account at the bank. The transaction that occurs is that your bank savings account (an asset) received money from your income account. Two accounts are affected, and in this case there is a net increase in your equity.

Working with transactions in GnuCash is performed using what is known as the account register. Every account you create has an account register. It will appear familiar to you as it looks very similar to the log used to track checkbooks.

## The Account Register

The account register is the GnuCash window which allows you to view or edit preexisting transactions, or add new transactions for a particular account. To enter the account register, simply highlight the account name in the account tree window and double-click to open it. You can also click the Open button in the tool bar or use the right mouse button menu to open the account. GnuCash will display the account register window.

### Simple Transaction

For example, starting with the chart of accounts we created in the previous chapter, double click on the checking asset account. Let's add a simple transaction to the checking account. When you first create your accounts in GnuCash, it is common to start them off with an initial balance.

In the first transaction row, enter a date (eg: June 1, 2003), a description (eg: "Opening Balance"), click on the Transfer pop-up menu and select Equity:Starting Balances, add a deposit value of $1000, and press the Enter key. The account register should now appear similar to this figure:

The Checking Account - Register

This image shows Asset:Checking - Register after inserting a starting value transaction.

Setting the starting balances of an account is an example of a simple two account transaction. In this case, affecting the Asset:Checking and the Equity:Starting Balances accounts.

As another example of a simple 2 account transaction, add another transaction to describe the purchase of $45.21 worth of groceries. From within the Asset:Checking account, you would set Transfer to Expenses:Groceries. The account register should now appear:

The Checking Account - Register

This image shows Asset:Checking - Register after adding a transaction for groceries.

### Split Transaction

The need for 3 or more account transactions occurs when you need to split either the "from" or the "to" account in a transaction into multiple accounts. The classic example of this is when you receive a paycheck. Your take home pay from a paycheck will typically be less than your net pay, with the difference being due to taxes, retirement account payments, and/or other items. Thus, the single transaction of you receiving a paycheck involves other accounts besides simply Assets:Checking and Income:Salary.

To add a paycheck transaction from the Assets:Checking account register window, click on a new transaction line, and click on Split. First enter the description of this transaction on the first line (eg: "Employers R Us"). In the "split" line below this, the the gross total of your paycheck (eg: $1000) as a withdrawal transfer from Income:Salary. Now, individually insert deposits to Asset:Checking (eg: $670), Expenses:Taxes:Federal (eg: $180), Expenses:Taxes:Medicare (eg: $90), and Expenses:Taxes:Social Security (eg: $60). The final split should look like this:

Account Register - Split Transaction

This image shows Asset:Checking - Register after adding a split transaction for salary.

### Features of the Account Register

The title bar of the account register displays the account name, which in this case is Asset:Checking. Below the title bar, the menu bar displays the menu items available within the account register, and the tool bar contains handy buttons that help you work with the account register.

Although each transaction has at least two splits, all you see in the basic register is a summary of the splits affecting the current account. In the Transfer column, you can see the other account from which money is transferred into or out of this account. If the transaction affects more than two accounts, GnuCash displays -- Split Transaction -- to show it is a multiple-split transaction. You can see the individual splits of each transaction by clicking the Split button in the tool bar while selecting the appropriate transaction.

For split transactions, the first line of the transaction is the transaction line. It contains a Date, optional Num (such as a check number), transaction Description, total amount affecting the current account (Tot Deposit here), and updated account Balance after the current transaction. Note that in the expanded view, the Transfer column heading disappears, and there is no account name listed in that field. This line shows you only a summary of the transaction's effect on the current account. For more detailed information, you need to look at the individual splits that make up the transaction.

The partial lines below the transaction line are the split lines, and they are separated by gray lines. As you highlight one of the split lines, the column headings change to show the split-related fields:

How split headings change

This image shows how split headings change.

Each split contains an optional Action, or type of split, which you can either type in or choose from a pull-down list. The split also contains an optional Memo which describes the split. Each split affects an Account, which can be selected from a pull-down list of your accounts. The R field indicates whether the split has been reconciled. The last two columns show the amount of the split and whether money is coming into or going out of the account.

As we discussed in section 2.1, total debits (left-column entries) must equal total credits (right-column entries) for each transaction. In the example shown above, the total debits equal the total credits, so this transaction is balanced. If you notice, the transaction line contains the same debit amount as the Checking split line. Why is this shown twice? Because the transaction line is merely a summary of the transaction's effect on the current account. The same transaction in a different account will have a different transaction line, one that shows the effect on that particular account. You can see this by highlighting another split line and clicking the Jump button on the tool bar.

In this example, if you jump to the Income:Salary account, GnuCash brings up the same transaction in the Income:Salary - Register:

A jump to the Income:Salary account

This image shows a jump to the Income:Salary account.

Note that the transaction line total now summarizes the effect on the Income:Salary account instead of the Checking Account, because you are looking at the Income:Salary account register. The splits are exactly the same, but the transaction line now reflects the credit to the Income:Salary account.

At the bottom left of the register window, GnuCash displays helpful messages as you move about the register. To the right, you can see the current account balance and the total of cleared splits.

## Choosing a Register Style

GnuCash offers several options for viewing your registers. The default style is Basic Ledger mode, which displays only the summary of splits affecting the current account. This is the style that most closely resembles other popular personal financial packages.

You can choose a different register style by selecting View -> Style from the menu. The Auto-Split Ledger style expands the current transaction automatically. As you highlight a new transaction in the register, the transaction automatically expands to show all splits. The Transaction Journal style is more like an accounting journal, in which all splits are shown for all transactions.

All styles permit you to view your data in either single-line or double-line format. In the View -> Style menu item, check the box next to Double Line, and you will see your transaction line expand to two register lines.

## Using Entry Shortcuts

GnuCash provides several time-saving shortcuts for entering your data. When you type the first few characters of a description that you have used before, the QuickFill feature automatically fills in the rest of the transaction as you last entered it. When you type in the first characters of an account name in either the Transfer field of the transaction line or the Account field of the split line, QuickFill will automatically complete the name from your account list. It also helps you with entering sub-accounts in these fields: simply type the first characters of the parent account name followed by a colon and the first characters of the sub-account name. For example, to enter Assets:Checking, you might type `A:C` and let GnuCash fill in the rest.

Register keyboard shortcuts also save you time, and GnuCash provides several of them. In the date field, you can type:

- + or = to increment the date and - or _ to decrement the date

- ] or } to increment the month and [ or { to decrement the month

- M or m to enter the first date of the month

- H or h to enter the last date of the month

- Y or y to enter the first date of the year

- R or r to enter the last date of the year

- T or t to enter today's date

In the Num field of the transaction line, you can type + to increment the transaction number from the last one you typed in. Typing - will decrement the number. This will also work in the Action field of the split line, if you choose to enter split numbers there. The Action field also supports QuickFill - if you type the first characters of a common action (such as Deposit), GnuCash will fill in the rest.

In any of the amount fields, you can use a built-in calculator. Simply type in the first value, followed by +, -, *, or /, then type in the second value. GnuCash will perform the calculation and return the resulting value to the amount field when you press the Tab key.

Most of the menu items have keyboard shortcuts, and these are marked by underlined characters in the menu names. Press Alt + [underlined character] to bring up the menu, then select an item by typing its underlined character. For example, typing Alt T brings up the Transaction menu, then typing S will split the transaction. A few of the menu items use Ctrl key shortcuts instead, and these are listed next to the item.

To move around the register, use these keys to save time:

- Tab to move to the next field, Shift Tab to move to the previous field

- Home to move to the beginning of the field, End to move to the end of the field

- Enter or ↓ to move to the next transaction, ↑ to move to the previous transaction

- Page Up to move up one screen, Page Down to move down one screen

- Shift Page Up to go to the first transaction, Shift Page Down to go to the last transaction

In the Reconcile window you can use these keyboard shortcuts:

- Tab moves to the next box and Shift Tab moves to the previous box

- Space bar toggles the status between reconciled and not reconciled

- ↑ and ↓ navigate through the entries within the current box

## Reconciliation

Transactions are typically checked against bank statements - a process known as "reconciliation". GnuCash keeps track of the reconciliation status of each transaction.

The reconciliation status of a transaction is shown by the reconciliation (R) field. 'y' indicates that a transaction has been reconciled, 'n' indicates that it has not, and 'c' indicates that it has been cleared, but not reconciled. You can toggle the reconciliation status between 'n' and 'c' by clicking in the (R) field; you can set it to 'y' by using the Reconciliation Window.

At the bottom of the account window, there are two running totals: 'Balance', and 'Cleared'. 'Cleared' should correspond to how much money the bank thinks you have in your account, while 'Balance' includes outstanding transactions.

### Reconcile Window

The Reconciliation Window is used to reconcile a GnuCash account with a statement that a bank or other institution has sent you. Reconciliation is useful not only to double-check your records against those of your bank, but also to get a better idea of outstanding transactions, e.g. uncashed checks.

At the bottom of the account window, there are two running balances: the "cleared and reconciled" balance, and the "total" balance. The "cleared and reconciled" balance should correspond to how much money the bank thinks you have in your account, and the "total" balance includes outstanding transactions.

For example, when you write a check for something, you should enter the transaction into GnuCash. The reconciliation (R) field of the transaction will initially contain n (new). Your new entry will contribute to the "total" balance, but not to the "cleared and reconciled" balance. Later, if you think that the check has been cashed, you might click on the transaction's R field to change it to c (cleared). When you do this, the "cleared and reconciled" balance will change to include this amount. When the bank statement arrives, you can then compare it to what you've recorded in GnuCash in the Reconciliation window. There, you will be able to change the R field to y (reconciled). You cannot reconcile in the register window, you must use the reconciliation window. Once a transaction has been marked "reconciled", it can no longer be easily changed.

To use the Reconciliation Windows, select an account from the account tree and click on Actions -> Reconcile. A window will appear in which you can enter the reconcile information.

Reconcile Window

The initial reconcile window.

- Reconcile Info: Statement Date - this is the date of the statement you will be reconciling against.

- Reconcile Info: Starting Balance - this is a non-editable item which displays the balance from the previous reconciliation. It should match the starting balance in your statement.

- Reconcile Info: Ending Balance - this is the ending balance as it appears in the statement.

- Reconcile Info: Include Sub-accounts - select this if you want to include the sub-accounts of the currently selected account in this reconciliation.

- Enter Interest Payment - click here to enter an interest payment to XXX (??).

Click on the Ok button, and you will see the transactions listing reconcile window:

Reconcile Window

The transactions listing in the reconcile window.

The two lists called Funds In and Funds Out lists all the unreconciled transactions. The 'R' columns show whether the transactions have been cleared or reconciled.

Now, examine each item on the bank statement, and look for the matching item in the Reconcile window.

If you cannot find one, then perhaps you forgot to enter a transaction, or did not know that the transaction had happened. You can use the New button on the tool bar, or the New menu item in the Transaction menu, to open a register window and enter the missing transaction. The new item will appear in the Reconcile window when you press enter after entering the transaction.

When you find the item in the Reconcile window, compare the amount in the item to the amount on the statement. If they disagree, you may have made an error when you entered the transaction in GnuCash. You can use the Edit button on the tool bar, or the Edit menu item in the Transaction menu, to open a register window and correct the transaction.

If the amounts agree, click on the item in the Reconcile window. The 'R' column will change to 'y' (reconciled) from 'n' or 'c'.

You then repeat this for each item that appears on the bank statement, verifying that the amounts match with the amounts in GnuCash, and marking off transactions in GnuCash as they are reconciled.

At the bottom of the "Reconcile" window is a "Difference" field, which should show $0.00 when you are done reconciling. If it shows some other value, then either you have missed transactions, or some amounts may be incorrect in GnuCash. (Or, less likely, the bank may have made an error.)

When you have marked off all the items on the bank statement, and when the difference is $0.00, press the Finish button on the tool bar or select Finish from the Reconcile menu (the latter method will work even if your "Difference" isn't $0.00). The Reconcile window will close. In the Register window, the R field of the reconciled transactions will change to 'y'.

## Scheduled Transactions

Scheduled transactions is made to help entering repetitive money operations, like subscriptions, insurances or taxes. By using scheduled transactions, you only have to enter the concerned transaction once, set a few parameters like start date, frequency and a little description, and then GnuCash will tell you whenever a scheduled transaction is ready to create, and create it for you.

In this howto, we'll take a monthly Internet subscription of 20 EUR as example, which is taken on the first day of each month.

In GnuCash, there are two ways of creating scheduled transactions, from the ledger or from the scheduled transactions editor.

### Creating from the Ledger

Enter the first occurence of your to-schedule transaction in the ledger. Step one creating scheduled transaction from the ledger

Step one creating scheduled transaction from the ledger

Then you right click on your transaction and select "Schedule..." Step two creating scheduled transaction from the ledger

Step two creating scheduled transaction from the ledger

A window like this will appear: Step three creating scheduled transaction from the ledger

Step three creating scheduled transaction from the ledger

Let's fill the values, we know that the subscription is taken on the first of each month, and the next one is for next month (since we entered the one for this month manually) : Filling in data to a scheduled transaction

Filling in data to a scheduled transaction

Click the OK button, and the transaction will be scheduled. GnuCash now has memorized this scheduled transaction and on the first of next month, it will pop up a window asking if it should create it (see far below for a screenshot of this window).

### Creating from the Editor

Another way of entering a scheduled transaction is from the Scheduled Transaction Editor, it may be faster if we have several scheduled transactions to create at once.

From the main accounts windows, go in the Actions menu, select Scheduled Transactions, a submenu will open in which you'll click Scheduled transaction Editor. Step one creating scheduled transaction from the editor

Step one creating scheduled transaction from the editor

A window like this will pop up : Step two creating scheduled transaction from the editor

Step two creating scheduled transaction from the editor

This window contains a list, now empty, of all the scheduled transactions. Let's create a new one by clicking on the "New" button, another window will pop up : Step three creating scheduled transaction from the editor

Step three creating scheduled transaction from the editor

This window mays seem complicated but it's fairly eay to understand. First, let's enter a name for this new scheduled transaction, this name will only identify it in the Scheduled Transaction Editor, it will never appear in the ledger.

Then we'll enter the transaction's parameters. We know that the subscription is taken on the first day of each month, so the start date will be Nov 1, 2003 (assuming november is the next month), the frequency will be "Monthly", it will be taken every month on the 1st.

In the "Options" tab you have three options :

- "Create automatically" will insert this transaction in the ledger without asking you before (see below)

- "Create n days in advance" is explicit

- "Remind me n days in advance" is explicit and used for example when you have to pay something by check, GnuCash can remind you one week before so you send your check before the deadline.

The End tab allows you to tell GnuCash that this scheduled transaction won't last for ever, for example if you are repaying a loan, you can enter the loan end date.

Since in our example the internet subscription is automatically taken from the account, we have no need to create it in advance, nor give an end date.

Finally, enter your transaction in the lower part as you would do in the ledger, with the only difference of having no date.

Warning: don't use the ENTER key like in the ledger, as it will activate the default button of the whole window : Cancel. Instead, use TAB to go to the next field, and when you have finished entering your transaction, click on the "Enter" button to validate it.

Note: In the version I have (1.8.5) the "Debit Formula" and "Credit Formula" are swapped, so I typed 20 as debit for my bank account, but you'll see below that it will be recorded as funds in. Look in your version if the bug is still here, and remember that the debit column is the right one, and the credit the left one.

Now, you should have a window like this: Validate a scheduled transaction from the editor

Validate a scheduled transaction from the editor

You have to validate the transaction you just entered, like in the ledger, before clicking the OK button. Many users reported problems creating scheduled transactions because they were not validating the template, and the scheduled transaction was not created.

Now click OK, it takes you to the previous window, now with one item in the list : Validate a scheduled transaction from the editor

Validate a scheduled transaction from the editor

If you click in the calendar part on the first day of one month, a small window, following your mouse, will show you what is planned for this day.

You can now close the Scheduled Transaction Editor window, and save your work.

From now on, on each first day of month (or the next time you launch GnuCash after this day) a windows will pop up to remind you to create this transaction : Scheduled transaction popup reminder

Scheduled transaction popup reminder

You can click on the list entry to see the detailed transaction in the lower part, then just click on Next to advance.

When you click Next, a window summaring all transactions to be created will appear : Scheduled transaction summary

Scheduled transaction summary

In this window you can adjust the transactions that will be created. For example, this month my ISP made a special offer and my subscription only costed 10EUR, so I just modified the amount from 20 to 10.

When you have finished with this window, just click "Finish". The window will disappear and the transactions will be created.

Then if you take a look in your bank account, you'll see the transaction has been created : Scheduled transaction created transaction

Scheduled transaction created transaction

## Putting It All Together

In the previous sections of this chapter the concepts and mechanics of working with transactions in GnuCash has been discussed. This section will expand upon the chart of accounts initially built in the previous chapter.

Start by opening your chart of accounts file. Assuming you have been following the progress of this example chart of accounts, you should have 3 transactions already saved within the checking account. The main window should look something like this: Starting point for Putting It All Together

This image shows the starting point for this section.

### Opening Balances

As shown earlier with the Asset:Checking account, the starting balances in an account are typically assigned to a special account called Equity:Starting Balances. To start filling in this chart of account, begin by setting the starting balances for the accounts. Assume that there is $1000 in the savings account and $500 charged on the credit card.

1. Open the Assets:Savings account register. Select View -> Style from the menu and check to make sure you are in Basic Ledger style. You will view your transactions in the other modes later, but for now let's enter a basic transaction using the basic default style.

2. From the Asset:Savings account register window, enter a basic 2 account transaction to set your starting balance to $1000, transferred from Equity:Starting Balances. Remember, basic transactions transfer money from a source account to a destination account. Record the transaction (press the 'enter' key, or click on the 'enter' icon).

3. From the Asset:Checking account register window, confirm that you have already set the starting balance to $1000, transferred from Equity:Starting Balances. This should already have been done previously from the example earlier in this chapter, but if not, do so now.

4. From the Liabilities:Visa account register window, enter a basic 2 account transaction to set your starting balance to $500, transferred from Equity:Starting Balances. This is done by entering the $500 as a "decrease", since it is money you borrowed. Record the transaction (press the 'enter' key, or click on the 'enter' icon).

You should now have 3 accounts with opening balances set. Assets:Checking, Assets:Savings, and Liabilities:Visa.

### Additional Transaction Examples

Now add some more transactions to simulate a month's expenses. During the month, $78 is spent on electricity, $45 on phone, and $350 on rent. All paid by check. Finally, let's move $100 from the savings account to the checking account.

1. Open the Expenses:Electricity account register and enter a simple 2 account transaction to pay the $78 electrical bill at the end of the current month (eg: June 30, 2003). Enter a description (eg: Light Company) and the check number (eg: 101). The Transfer account should be Assets:Checking.

2. Open the Assets:Checking account register and enter a simple 2 account transaction to pay the $45 phone bill at the end of the current month (eg: June 30, 2003). Enter a description (eg: Phone Company Name) and the check number (eg: 102). The Transfer account should be Expenses:Phone. Notice that you can enter expense transactions from either the credit side (the expense accounts) or the debit side (the asset account).

3. Open the Expenses:Rent account register and enter a simple 2 account transaction to pay the $350 in rent at the end of the current month (eg: June 30, 2003). Enter a description (eg: June Rent) and the check number (eg: 101). The Transfer account should be Assets:Checking.

   Duplicate this transaction using the Duplicate button in the tool bar. Start by clicking on the current rent transaction, and click on the Duplicate icon. Enter the transaction date a month out in the future (eg: July 31, 2003) and set the check number (eg: 102), and notice the blue line separator that GnuCash uses to separate future transactions from current ones. In this way, you can enter transactions before they occur.

   You could also set up a scheduled transaction to pay your rent, since the value of the rent is likely to be constant for the foreseeable future. FIXME, add scheduled transaction stuff.

4. To transfer money from you savings account to your checking account, open the Assets:Savings account register, add a new transaction setting the Transfer to Assets:Checking in the amount of $100.