tutorial on multi-currency accounting

Peter Selinger selinger at mathstat.dal.ca
Thu Mar 8 11:55:20 EST 2007

Derek Atkins wrote:
> Quoting Mike Alexander <mta at umich.edu>:
> > --On March 7, 2007 9:50:00 AM -0500 Derek Atkins <warlord at MIT.EDU> wrote:
> >
> >> If a user later goes back and changes the exchange rate, will your
> >> scrubber update the balancing splits?
> >
> > Do you mean change the exchange rate in that transaction or the 
> > exchange rate in the price DB?  If you mean the exchange rate in that
> Sorry, I guess I wasn't clear.  I meant the former, changing the
> transaction.  Obviously the PriceDB shouldn't affect the scrubber
> at all.
> > transaction, then you (be definition) are change some of the values 
> > or amounts in some of the splits and the scrubber will try to fix 
> > things up.  This isn't something that you would expect people to do 
> > often since it means they made a mistake entering the transaction 
> > initially, and the scrubber might not make the optimal adjustment 
> > although it should make things valid.
> Well, how wouldn't it make the optimal adjustment?  If we assume that
> ONLY the scrubber makes entries into Currency:[XXX] then the scrubber
> could know about it.   But honestly this really does feel like we're
> going back to the pre-1.8 Currency accounts.
> Is there some reason we can't use Lots for this instead of creating
> accounts and polluting the account hierarchy?  (I admit that I've
> only skimmed the original message).

I think this is answered in the two documents at


The short answer is: no, it is not the same as going back to the
pre-1.8 Currency accounts. Those did not work, because they left your
books unbalanced (and it was left to the report system to clean this

> Also, are you sure that "Currency" is the right thing?  Wouldn't we want
> this for ANY cross-commodity?

Agreed, "Trading" or "Exchange" might be more appropriate generic
names. I had suggested in
to let the user select an account set via a pulldown menu in the
exchange rate editor, but that's only one possible way. It is probably
reasonable for the scrubber to make some default assumption, similar
to what it does for "Imbalance". 
> Also, I wonder if we want to use an account hierarchy under Equity
> for these balances?   Equity:Commodities:<Namespace>:<Mnemonic>.

Actually, such accounts represent unrealized (or realized) gains and
losses, so they are income, not equity. See
"http://www.mathstat.dal.ca/~selinger/accounting/#4.2.", second

I don't know if users would prefer to have them directly under the
"Income" hierarchy, or as a top-level account. By making their
location user-definable, one can leave the decision to them. This
would also allow for multiple trading accounts if desired.

Best, -- Peter

More information about the gnucash-devel mailing list