# Multiple Currencies

This chapter will show you how to setup your GnuCash accounts to use multiple currencies.

## Basic Concepts

GnuCash supports the use of multiple currencies in different accounts. For example, you can have a bank account setup in Euros, and another using Hong Kong Dollars.

Some of the issues which arise when using multiple currencies is how do you transfer funds between accounts with different currencies? How do you calculate the overall value when you have mized currency accounts? How do reports deal with mixed currencies?

## Account Setup

Your default account currency is set in Edit -> Preferences -> Accounts -> Default Currency. You should set this parameter correctly, as it will save you much time when building your account structure.

When you create a new account, you have the option to define the commodity. For currency accounts, you can specify any one of the hundreds of currencies supported by GnuCash by simply selecting it from the currency commodity list. You will notice that the default currency is always whatever you have defined in the preferences. So, if you mostly work with Euros, but have the occasional Ethiopian Birr account, be sure to set your preferences to Euro.

As an example, let's set up a typical bank account scenario where you mostly work in US Dollars, but do also have a European bank account using the Euro currency, as well as one bank account in Hong Kong using Hong Kong Dollars. So, setup 3 bank accounts, one using the Euro currency, one in US Dollars, and another in Hong Kong Dollars. One possible account structure for this would be:

    -Assets                          (USD)
       -Current Assets           (USD)
          -US Bank                 (USD)
          -European Bank       (EUR)
          -HK Bank             (HKD)
    -Equity                          (USD)
       -Opening Balances
          -USD            (USD)
          -EUR            (EUR)
          -EUR            (HKD)

    Note: the currency of each account is shown in parenthesis.

Since in this example you mostly work in USD, all of the parent accounts are set to USD. Of course, if you mostly work in Euros, you could change the currency of these parent accounts to EUR. To totals shown in the account tree window will always be converted to the currency of each particular account. Notice, we also setup 3 Starting Balances equity accounts, used to initially populate the 3 banks.

You could also setup just a single Starting Balance account and use a currency transfer to populate the "different currency" accounts. However, this is more advanced option, which is explained in a later section (currency_purchase2.

Below you see the result of this example, in which you start with USD 10,000, EUR 10,000 as well as HKD 10,000 in the three bank accounts. Notice that the total of the parent accounts only show the value of the currency of subaccounts with matching currencies. In the future you can setup the exchange rates between the currencies, and the parent accounts will calculate the converted value of all subaccounts. See the later section (currency_howto1) on how to do this.

Initial multi currency Account Bank Setup

Initial setup of 3 bank accounts with different currencies.

Notice that the "Total (Report)" column is being displayed. This is configured in the column header row, select Arrow down and select Total(USD).

## GnuCash Currency Support

GnuCash supports over a hundred currencies, from the Andorran Franc to the Zimbabwe Dollar. You will also find supports for some lesser popular currencies like the US Dollar, Canadian Dollar, European Euro, and British Pound.

## Setting International Preferences

GnuCash allows you to specify the following international related preferences

- Default currency you want the newly created registers to have

- Default currency for the reports

- Date and Time formats

- Euro support

For a full explanation of the International Preferences available, see basics-prefs1

## Recording/Updating Currency Exchange (How-To)

GnuCash allows you to update the Currency Exchange Rates in two different ways, manual and automatic. In the following two sections we will work through both ways.

Before we start, lets have a quick look at the Chart of Accounts

Initial multi currency Account Bank Setup

Initial setup of 3 bank accounts with different currencies.

### Manually Updating Exchange Rates

Open the Price Editor by going to Tools -> Price Editor.

Price Editor window

Price Editor Window.

Click on the Add button to add a new currency exchange. A window will appear to allow you to select the commodity you wish to define the exchange rate for. Click on Select and set the Type to Currency and the Currency/security to EUR (Euro). This window should appear like this:

Select Euro Commodity

Price Editor Select Commodity Window

Click Ok and in the Select Commodity window, set the exchange rate between the selected commodity and the selected currency. In this example, you will set the exchange rate to 1 EUR to 1 USD.

Select Commodity

Price Editor Select Commodity Window

Price Editor Window

The Price Editor window after setting the exchange rate between Euros and US Dollars

Chart of Accounts

Chart of Accounts after setting the exchange rate between Euros and US Dollars.

Observe that since you have no exchange rate for HKD, GnuCash do not convert the HKD accounts to USD. This will be added in the next section.

### Automatic Updating Exchange Rates (How-To)

In the previous section you saw how you could manually define a new currency exchange rate, but there must be an easier way to do it. And there is.

Open the Price Editor by going to Tools -> Price Editor.

Price Editor window

Price Editor Window before you obtain online quotes.

Click on the Get Quotes button to automatically load the various exchange rates you need.

If the Get Quotes button is disabled, that means that the perl module Finance::Quote is not installed. For information on how to install it, please see invest-stockprice-auto2

Price Editor window

Price Editor Window after we obtained online quotes.

You noticed that GnuCash will download exchange rates for all currencies you are using in your various accounts. This will happend everytime you click on Get Quotes or have GnuCash downloading quotes/exchange rates automatically as per invest-stockprice-auto2

And if you check the main Chart of Accounts you now see that GnuCash has automatically converted the HKD amount to USD amount on the parent accounts that are in USD, as well as on the Total (USD) column. Also the Euro accounts have been been updated with the latest exchange rate.

Price Editor window

Chart of Accounts after we obtain online quotes.

### How to disable currency retrieval

Currency Quote retrieval will start from the time you create an account with a non-default currency. However, it will not stop when you delete these accounts from GnuCash.

When you have deleted the last account for one particular currency, and you do not wish to get currency updates for this currency anymore. Do the following;

- Tools -> Price Editor

- Expand the CURRENCY row

- Double click on the Currency you want to disable Exchange Rate retrieval for.

- Unselect the Get Online Quotes

## Recording Purchases in a Foreign Currency (How-To)

You can do it in two different ways.

1) Use GnuCash build in currency exchange between accounts when you do your transactions. This is mainly used for one time transactions, and nothing which happens regurarly.

2) Use separate accounts for this Purchase, where all involved accounts use the same currency. This is the recommended method, since it allows much better tracking and follow up. In this way, you do one currency exchange transaction, and after that you do normal transactions.

The rest of this section will explain more based upon option 2)

### Purchase of an asset with foreign currency

Your normal place of residence is in Florida, therefore you are using USD as your default currency. But, you do like to travel to Bahamas and go fishing. You like it so much so you decided to purchase a boat there. To do this, you opened a bank account in Jamaica, moved some money from US, and then purchased your dream boat (smallest version)

To record this in GnuCash we use the following basic account structure

    -Assets                          (USD)
       -Current Assets           (USD)
          -US Bank                 (USD)
          -Jamaican Bank       (JMD)
       -Fixed Assets           (USD)
          -Boat                (JMD)
    -Equity                          (USD)
       -Opening Balances
          -USD            (USD)

    Note: the currency of each account is shown in parenthesis.

First you need to transfere some money ($10,000) to Jamaica, and you use your normal US bank account (whith balance of $100,000) for that. The bank give you an exchange rate of USD 1 = JMD 64, but charges you USD 150 to do transfer the money.

Currency transfer

Transfer money to Jamaica

Select the Jamaica transaction line ($9,850.00), right click and select Edit Exchange Rate

Edit Exchange rate

A dialog window where the exchange rate in a currency transaction is specified

As Exchange Rate you enter 1 USD = 64 JMD, since this is the rate your bank gave. Press ok in the Transfer Funds (Edit Exchange Rate) window, and then save this split transaction. Below is how it now looks in the main Chart of Accounts.

Chart of Accounts before purchasing the boat

Chart of Accounts before purchasing the boat

You find the boat, and since it's a bargain at JMD 509,000 you decide to buy it. To record this transaction in GnuCash, you will need to enter a simple transaction in Assets:Current Assets:Jamaican Bank withdrawing 509,000 and transfering it to Assets:Fixed Assets:Boat

Chart of Accounts after purchasing the boat

Chart of Accounts after purchasing the boat

The Chart of Accounts now reflects that your bank account has been reduced with the value of the boat (JMD 509,000), and that your Fixed Assets boat account has been increased with the same amount. If you also have turned on the CoA (Column Choice) "Total (USD)" you will see the corresponding value in USD. The USD value will always reflect the latest currency exchange rate you have either automatically or manually updated GnuCash with.

### Purchasing foreign stocks

A more complicated example

This example will show how to deal with having stocks in a different currency than your normal currency.

In this example you live in America and therefore you have set the default Currency to USD. You decide to purchase some stocks in Hong Kong.

You would also like to be able to track the various income and expenses per stock and broker.

The stock you want to purchase are Beijing Airport (Hong Kong) (Afterall the 2008 Olympics in Beijing should bring in a lot of business to the airport)

The above stock (Beijing Airport) are just choosen for this particular example, and should not be taken as any kind of stock purchase advice

You need to find out what the stock ticker is for this stock. To do this, you do a bit of investigation on the Internet, and in particular on Yahoo! Finance - Ticker Symbol Lookup (http://finance.yahoo.com/lookup). This gives you the following:

- Beijing Airport has the Stock Symbol 0694.HK at Yahoo

Since we wanted to be able to track all various incomes and expenses, we come up with the following Account structure

    Assets:Investments:Brokerage Accounts:Boom:0694.HK     (Beijing Airport)
    Assets:Investments:Brokerage Accounts:Boom:Bank        (HKD)
    Equity:Opening Balances:HKD                            (HKD)
    Expenses:Commissions:Boom.0694.HK                      (HKD)
    Income:Investments:Dividend:Boom:0694.HK               (HKD)

The Chart of Accounts looks like this after creating all the needed accounts

Chart of Accounts for international stocks

Chart of Accounts for international stocks

The various commodities (Tools -> Security Editor) looks like this

International commodities

International commodities

There is currently a small bug ( 335101 ) in GnuCash, that makes it impossible to buy a stock in a different currency than the default directly from the commodity account. The simple workaround is to open the associated bank account and enter the transaction from here.

If you have not moved some cash (HKD50,000) to the corresponding stocks bank account, do so now. Either using the Equity (HKD) account, or by transfering money from an existing bank account (Currency Transfer).

To record this stock purchase, you have to open the stocks associated bank account (Assets:Investments:Brokerage Account:Boom:Bank), and there enter the following information

    Buy Stocks
    	Assets:Investments:Brokerage Account:Boom:Bank  Withdrawal 50,000
    	Expenses:Investments:Commission:Boom_HKD	Deposit 500
    	Assets:Investments:Brokerage Account:Boom:0694  Deposit 49,500 (16,500 shares)

If the "Exchange Data" dialog popup do not appear, open it manually by right click on the last row, and select Edit Exchange Rate In the following pop up window, enter the actual number of stocks (16,500) as the To Amount:

Transfer Funds

Setting To Amount in the Transfer Funds dialog

When you exit the exchange dialog, and Enter this transaction GnuCash will update the stock purchase transaction with all relevant data.

If you now go back to the main Chart of Accounts, you will see something like this

Purchased international stocks

Chart of Accounts with some international stocks

As you can see, everything is in its own Currency, and this is because GnuCash do not have any exchange rates between USD and HKD. To remedy this go to Tools -> Price Editor and click on the Get Quotes button to automatically load the various exchange rates you need.

## Tracking Currency Investments (How-To)

Currency investment is when you decide to invest in different countries currency, and hope that their currency will raise in value relative your own currency.

When you enter these transactions into GnuCash, you will have to decide on how much details you would like to have.

If you are not interested in details at all, a very simple account structure would be enough. Something like this;

        Assets:Investments:Currency:Bank (USD)
        Assets:Investments:Currency:XXX (XXX)

But, if you do want to be able to track the Capital Gains or Losses, as well as the various fees, you do need a bit more complexed layout. Something like this;

        Assets:Investments:Currency:Bank                    (USD)
        Assets:Investments:Currency:Currency Bank:XXX       (XXX)
        Expenses:Investments:Currency:Currency Bank:XXX     (XXX)
        Income:Investments:Currency Bank:Capital Gains:XXX  (XXX)

Where XXX is the currency you are investing in.

There is currently (30 April 2006) a small bug ( 340041 ) in GnuCash, that makes it impossible to track currency investments capital gains.

### Purchasing a currency investment

A typical purchase order might be something like this, seen from the Assets:Investments:Currency:Bank.

### Buying a currency with a Split Transaction Scheme

Account | Deposit | Withdrawal
Assets:Investments:Currency:Bank |  | Invested Amount
Expenses:Investments:Currency:Currency Bank:XXX | Exchange Fee |
Assets:Investments:Currency:XXX | Invested Amount - Exchange Fee |

You should get an Exchange Rate window popping up when you leave the last row in the split above (Currency Transaction). If this window do not pop up, right click on the row, and select Edit Exchange Rate. In the Exchange Rate window you specify the exchange rate you got from the bank.

### Selling a currency investment

Entering an currency you are selling is done in the same way as buying one except the you are now transfering money from the Currency account to your Savings account (very much similar to (invest-sell1).

The proper recording of the currency sale *must* be done using a split transaction. In the split transaction, you must account for the profit (or loss) as coming from an Income:Capital Gains account (or Expense:Capital Loss). To balance this income, you will need to enter the Currency asset twice in the split. Once to record the actual sale (using the correct amount and correct exchange rate) and once to balance the income profit (setting the amount to 0).

In short, a selling Currency transaction should look something like below, seen again from the Assets:Investments:Currency:Bank.

### Selling a currency with a Split Transaction Scheme

Account | Deposit | Withdrawal
Assets:Investments:Currency:Bank | Sold Amount - Exchange Fee |
Expenses:Investments:Currency:Currency Bank:XXX | Exchange Fee |
Assets:Investments:Currency:XXX |  | Sold Amount
Income:Investments:Currency Bank:Capital Gains:XXX | [LOSS] | PROFIT
Assets:Investments:Currency:XXX | PROFIT (with To Amount = 0) | [LOSS (with To Amount = 0) ]

There is currently (30 April 2006) a small bug ( 340041 ) in GnuCash, that makes it impossible to track currency investments capital gains.

## Reconciling Statements in a Foreign Currency (How-To)

Reconciling foreigh statement are done in the same manner as when you reconcile your local bank statement. If you have created a Chart of Accounts structure which allows you to have the same Currency per account as your Reconcile Statement, it is actually exactly the same as reconciling your local bank statement, apart from the fact you might need a dictionary

If you have different currencies you might have to manually convert the amounts from one currency to another while you reconcile the accounts.

## Putting It All Together (Examples)

In this Putting It All Together you will use quite a bit of what you have learned so far in this guide with a bit of a twist. The twist beeing a lot of different currencies.

### Basic scenario

The following are the basic scenarios.

- You live in Australia and use AUD as our default currency

- You win the lottery as well as inherit some money

- You pay of your existing house loan

- You purchase some stocks in Sweden using SEK (Ericsson B-Fria)

- You purchase some stocks in HK using HKD (Beijing Airport)

- You purchase some stocks in US using USD (Amazon)

- You lend some EURO to a friend (Peter)

- You borrow some money from a Japanese bank

- You buy a house in New Zealand

- You use a credit card in Australia

- You would like to have maximum control of your expenses

Again these samples are not to be consider a valid and accurate advice. They are only to be considered as an sample for the techniques used in GnuCash, and not as a Invenstment Advice. Please consult a proper financial advisor for more information regarding international investments/loans.

### Configure Accounts

This time lets start with a fresh and new GnuCash data file, so File -> New, and edit preferences (Edit -> Preferences) to set Default Currency as AUD. Since you have decided to be able to track as much of your various expenses and incomes as possile, the following account hierarchy could be used;

    Assets:Current Assets:Savings Account         (AUD)

### Opening Balance

You open the mail one morning, and to your enormous surprise find that you are the last living relative of a very distant relative who happend to be very rich. And also $500,000 AUD richer. That was not the last though, another mail states you won the lottery, and got $250,000 AUD for that.

To record these transaction we need the following accounts

    Equity:Lottery         (AUD)
    Equity:Inheritance     (AUD)

The transactions you enter into your Income:Current Assets:Savings Account should look like this.

### You come into some extra money

Account | Increase | Decrease
Income:Lottery | $250,000 |
Income:Inheritance | $500,000 |

And the Chart of Accounts looks like this after above transactions have been entered.

Chart Of Accounts

Chart Of Accounts after receiving some money

### Purchase a house

Atlast you can afford to pay of that house loan you had to take some years ago (with a $50,000 deposit).

    Assets:Fixed Assest:House                  (AUD) $300,000
    Liabilities:Loans:Mortgage                 (AUD) $250,000
    Expenses:Interest:Mortgage Interest        (AUD)
    Equity:Opening Balance                     (AUD) $50,000

After you have had a small chat with your Mortgage bank, they agree to let you pay it all of in one go, plus some interest (AUD 30,000). You should enter the following split transaction into Assets:Fixed Assest:House account.

### Paying of the house mortgage

Account | Increase | Decrease
Assets:Current Assets:Savings Account |  | 280000
Expenses:Interest:Mortgage Interest | 30000 |
Libilities:Loans:Mortgage | 250000 |

The Liabilities:Loans:Mortgage Transaction Ledger looks like this after the transacations have been entered

House Mortgage

Transaction Ledger of the House Loan

### Stock Purchasing

Since you quite suddenly have a lot of money in your bank account, you decide to visit a Financial Advisor, and after his recommendation (remember, this is fictional - Not a genuine stock purchase advice) you decide to purchase Telecommunication (Ericsson in Sweden), Beijing Airport (Hong Kong), and Amazon (USA).

The needed accounts to track these investments looks like this.

    Assets:Investments:Swedish Broker:ERIC.ST                 (STOCK ERIC.ST Yahoo)
    Assets:Investments:Swedish Broker:Bank                    (SEK)
    Assets:Investments:HK Broker:0694.HK                      (STOCK 0694.HK Yahoo)
    Assets:Investments:HK Broker:Bank                         (HKD)
    Assets:Investments:US Broker:AMZN                         (STOCK AMZN Nasdaq)
    Assets:Investments:US Broker:Bank                         (USD)
    Expenses:Investments:Commissions:Swedish Broker:ERIC.ST   (SEK)
    Expenses:Investments:Commissions:HK Broker:0694.HK        (HKD)
    Expenses:Investments:Commissions:US Broker:AMZN           (USD)
    Expenses:Investments:Currency Transfer                    (AUD)

You decide to invest $100,000 into each stock, and to do this we first do a currency transaction to the various bank accounts associated with the stock.

The transaction you enter into your Income:Current Assets:Savings Account should look like this.

### Transfer money to overseas with a multiple currency transaction split.

Account | Deposit | Withdrawal | Exchange Rate | Transaction Fee
Assets:Investments:Swedish Broker:Bank | 100000 |  | 5.5869 | 35
Assets:Investments:HK Broker:Bank | 100000 |  | 5.8869 | 30
Assets:Investments:USD Broker:Bank | 100000 |  | 0.7593 | 25

Now when there is some money in the various stock brokerage accounts, you ask each broker to buy stocks for the certain amount. Remember to execute the transaction from the stocks associated bank account, and if the Exchange Rate window do not pop up, right click the row and manually start it. Enter the number of stocks you purchase in the last entry (To Amount:).

### Purchasing oversea stocks

Stock Symbol | Number of shares | Amount | Commission
ERIC.ST | 15000 | 270000 | 400
0694.HK | 70000 | 280000 | 300
AMZN | 1000 | 32000 | 25

As you can see in the Chart of Accounts, you have now purchased stocks in three different currencise (HK, USD, as well as in SEK), but the Chart of Account (as seen below) do not indicate how much it is valued in your home currency, AUD.

Chart of Account after Stocks

Some of the accounts in Chart of Accounts after the stock purchase

Next section will ensure you get the various exchange rates so GnuCash can show your total worth in the local currency (AUD in this case)

### Get the online quotes

To get the current exchange rates and stock quotes, go to Tools -> Price Editor and then click on Get Quotes.

### Lending money to a friend

Peter has run into some difficulties all the way over in Europe Land. Since he is a very dear pal of yours, you decide to help him out with a personal loan of 40,000 Euro.

    Assets:Money owed to me:Euro:Peter            (Euro)
    Income:Interest Income:Peter                  (Euro)
    Expenses:Bank Charge                          (AUD)

This is a simpe currency transaction from your Savings Account (AUD), to your Assets:Money owed to me:Peter (EURO) account. You got the exchange rate of 0.606161, which means you need to withdraw AUD 65,989.10, as well as pay the service fee of 35 AUD.

### Buying property in New Zealand with a loan from Japan

Your long time Japanese friend offers you a Japanese house loan if you purchase a property overseas, with only AUD 50,000 as deposit. After having discussed this with your Financial Advisor in Australia and gone through the various risks and benefits related to your situation, you decide to accept his offer.

Again, this should not be taken as a financial advice. Please consult with a registered financial advisor before undertaking investing (or spekulating) in overseas markets, or local markets for that matter.

A word of warning might be of interest here, taking a loan overseas for a very low interest rate might seem like a very good deal. Do keep in mind though that the exchange rate might change and can change drastically. If you take a loan in your local currency, you only have to worry about the interest rate. Taking a loan overseas, then you have to worry about the interest rate and the exchange rate.

You found a nice small cottage in a small coastal town near Auckland which would be a perfect summer house, and you decide to use the money from Japan for this purpose.

We need the following accounts for this example;

    Liabilities:Loans:Japan Loan                  (JPY)
    Expenses:Interest:Japan Loan                  (JPY)
    Expenses:Mortgage Adm Fees:Japan Loan         (JPY)
    Assets:Current Assets:Japan Bank              (JPY)
    Assets:Fixed Assest:NZ House                  (NZ)

### Buying a NZ House Split Transaction

Account | Increase | Decrease
Assets:Fixed Assets:NZ House | 300000 (NZD) |
Assets:Current Assets:Savings Account |  | 50000 (AUD) (1.18926)
Liabilities:Loans:Japan Loan |  | 28000000 (JPY) (0.0137609)
Expenses:Mortgage Adm Fees:Japan Loan | 300000 (JPY) (0.0137609) |

### Whats next?

As you have seen in the above examples you have only done the initial purchases. The rest, that is various selling, and unrealized gains tracking is left for you to ponder upon.