tutorial on multi-currency accounting

Mike Alexander mta at umich.edu
Wed Mar 7 17:02:09 EST 2007

--On March 7, 2007 4:17:39 PM -0500 Derek Atkins <warlord at MIT.EDU> 

> 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.

It probably would make the optimal adjustment (or at least an optimal 
one, people might disagree on what should be done).  I just didn't want 
to promise that without trying it.

> 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).

You can use lots if you want to, and you likely will.  That's sort of 
an orthogonal question.  It's the capital gains splits that are really 
not necessary with this set of changes.  Lots may still be useful for 
identifying which subset of a commodity is involved in a sale, but the 
lot scrubbing gets much simpler if capital gains splits go away.  It 
might even work.

Actually, now that I think about it, there may be more work needed to 
correctly account for realized gains when multiple lots are involved. 
I need to think about this some more, but I don't think it is a 

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

Yes, that's right.  I used Currency since that's what Peter called it. 
Actually that name isn't in the code anywhere yet so changing it is 
certainly trivial.

> Also, I wonder if we want to use an account hierarchy under Equity
> for these balances?   Equity:Commodities:<Namespace>:<Mnemonic>.

Putting them under Equity doesn't work since Equity and Income accounts 
enter the accounting equation in a different way and things don't 
balance if you put them there.  They really are like income accounts, 
but (as Peter said) they perhaps should be separated out into a new 
type of account to avoid confusion.  However, this new account type 
should be treated like an income account for balance sheet purposes.


More information about the gnucash-devel mailing list