tutorial on multi-currency accounting

Mike Alexander mta at umich.edu
Wed Mar 7 16:07:06 EST 2007

--On March 7, 2007 9:48:56 AM -0500 Derek Atkins <warlord at MIT.EDU> 

> Mike Alexander <mta at umich.edu> writes:
>>>> - xaccTransScrubImbalance now scrubs the transaction two ways.  It
>>>> makes sure the value is balanced, and it makes sure that the
>>>> amounts balance separately for each commodity in the transaction.
>>>> This makes  capital gain splits as created by scrubbing lots
>>>> unnecessary, although  existing capital gains splits won't hurt
>>>> anything.
> I'm trying to understand how do you this.  Let's say you have a simple
> transaction:
>    TXN(USD)       Debits     Credits
>    Cash(USD)                 $100
>    Cash(EUR)      EUR65
> What would your scrubber do?  Note that there is no gain or loss in
> this transaction by itself.  The gain/loss only occurs when I move
> back to USD with a second transaction in the opposite direction.

It would add splits similar to those suggested in Peter's documents:

                    Debits      Credits
  Currency:USD      $100
  Currency:EUR                  EUR65

After this the transaction is still balanced for value (assuming all 
values are $100 as they should be).

You're right that you don't have any realized gain/loss until you 
convert it back, but at any time after this transaction is entered you 
may have an unrealized gain/loss.  The value of the Currency parent 
account will be this unrealized gain/loss assuming you've entered the 
appropriate exchange rates in the price editor.  This is explained 
fairly well in Peter's documents and seems to work right in GnuCash.


More information about the gnucash-devel mailing list