Recording realized gains for (currency) trading accounts

R. Victor Klassen rvklassen at gmail.com
Wed Mar 26 12:12:57 EDT 2014


My approach, which I use only for expenses, since we don’t have cross-currency income, is to have a separate account for Accounts Payable USD.

In your case that would be Assets:Accounts Receivable USD.

When the funds come in in USD, they get applied to Assets:Accounts Payable USD, and to whatever account you deposit the USD into.  If that’s a US dollar account, they stay in USD until you withdraw/transfer them into EUR.   If that’s a EUR account, the exchange happens at the time of the deposit.

That way when you want to know your net worth, it shows up in mixed currency, and can be converted to single currency at any given point in time.

I’m not sure whether there is a way to tease out of GnuCash any currency-related gains or losses resulting from this accounting method, though.

On Mar 26, 2014, at 10:16 AM, Matthijs Kooijman <matthijs at stdin.nl> wrote:

> Hey folks,
> 
> I've been digging into this a bit more and found a few ways to implement
> this, though none are really to my satisfaction. To illustrate them, let
> me start by giving an example.
> 
> Say I have a company that performed some services for a customer. The books and
> bank account are kept in EUR, but this customer is charged an amount in USD.
> 
> At the moment the services are performed, I should record income, and at the
> same time record a receivable asset (note that you'd normally use Gnucash'
> business features for this, but I'll just use regular transactions for
> simplicity here). Let's say that the exchange rate is €0.50 = $1.
> 
> 2014-01-01      Services performed
>                                  debit           credit
>        Assets:Receivable       $ 200,00
>        Trading:CURRENCY:EUR    € 100,00
>        Income:Services                         € 100,00
>        Trading:CURRENCY:USD                    $ 200,00
> 
> A day later, half of the amount is payed. The exchange rate changed to €0.60 = $1.
> 
> 2014-01-02      First half of payment
>                                  debit           credit
>        Assets:Bank             €  60,00
>        Trading:CURRENCY:USD    $ 100,00
>        Assets:Receivable                       $ 100,00
>        Trading:CURRENCY:EUR                    €  60,00
> 
> Now, the balance sheet looks like this. Note that I used the "Nearest in time"
> price source here, to properly show unrealized gains. However, I also noticed
> that the "Average cost" price source doesn't seem to work (no exchange is shown
> and no EUR amounts are shown for USD accounts), but that's probably a
> completely unrelated problem.
> 
> Assets
>        Bank                             €  60,00
>        Receivable              $ 100,00 €  60,00
> Total Assets                                            € 120,00
> 
> Trading
>        CURRENCY
>                EUR                      €  40,00-
>                USD             $ 100,00 €  60,00
> Total Trading                                           €  20,00
> 
> Income
>        Services                         € 100,00
> Total Income                                            € 100,00
> 
> Since the first half of the payment is €10 more than originally recorded, meaning
> we now have a realized gain of €10, which is what I'd like to record into the
> Income account. At this moment, we have an unrealized gain of another €10 for
> the other half of the payment, but I'd like to keep that part in the trading
> accounts.
> 
> So, ideally, I think I want to record this:
> 
>                                  debit           credit
>        Income:Realized Gains                   €  10,00
>        Trading:CURRENCY:EUR    €  10,00
> 
> I've found a few ways to (effectively) achieve this, but I'm not sure if
> any of them are sane and safe, so I'd like your thoughts on this.
> 
> 
> Zero exchange rate
> ------------------
> I can enter a transaction in the "Assets:Receivable" account, having just a
> split for "Income:Realized Gains", leaving the "Assets:Receivable" split empty.
> When GnuCash asks for the exchange rate, I enter an amount of 0. When saving
> the transaction, the "Trading:CURRENCY:EUR" split gets created automatically.
> 
> 2014-01-31      Realized Gains January
>                                  debit           credit
>        Assets:Receivable
>        Income                                  €  10,00
>        Trading:CURRENCY:EUR    €  10,00
> 
> I'm not quite comfortable entering a zero exchange rate. Is there any
> harm in this? I also have to delete the exchange rate in the price
> editor, since an empty rate confuses the balance sheet if that one
> becomes the selected price.
> 
> Empty and re-fill Assets:Receivable
> -----------------------------------
> This is another alternative. I can empty out the Assets:Receivable
> account, entering the exchange rate exactly so that the Trading accounts
> will also become empty (in this case, remove $100 from Assets:Receivable
> and set the exchange amount to €40). Then, I re-add the amount to
> Assets:Receivable, but set the exchange rate to the real exchange rate.
> The difference between these two EUR amounts is the gain which
> gets put into the Income account. Note that I just realized that this
> approach as-is also includes the unrealized gain into the income
> account, which probably makes it unsuitable.
> 
> 2014-01-31      Realized Gains January
>                                  debit           credit
>        Assets:Receivable       $ 100,00
>        Income:Capital Gains    €  20,00
>        Trading:CURRENCY:USD
>        Assets:Receivable                       $ 100,00
>        Trading:CURRENCY:EUR                    €  20,00
> 
> Cumulative Asset
> ----------------
> Instead of trying to actually modify the trading accounts, an option would be
> to keep an cumulative asset account with all previously realized (currency)
> trading gains. Now, realizing a gain is as easy as creating a
> transaction between the income account and this new asset account.
> 
> 2014-01-31      Realized Gains January
>                                  debit           credit
>        Assets:Realized Gains   € 10,00
>        Income:Realized Gains                   €  10,00
> 
> Now the balance looks like:
> 
> Assets
>        Bank                             €  60,00
>        Receivable              $ 100,00 €  60,00
>        Realized Gains                   €  10,00
> Total Assets                                            €130,00
> 
> Trading
>        CURRENCY
>                EUR                      €  40,00-
>                USD             $ 100,00 €  60,00
> Total Trading                                           €  20,00
> 
> Income
>        Services                         € 100,00
>        Realized Gains                   €  10,00
> Total Income                                            € 100,00
> 
> However, the balance now looks weird, since Trading + Assets:Realized Gains
> together form the unrealized gains, which you should together either subtract
> from the the assets (if you don't want to count unrealized gains in
> your income yet), or add to the retained earnings (if you do want to count them
> already). AFAIU you'd normally do this with just the Trading accounts, but
> having an extra Asset account in there makes things somewhat confusing.
> 
> Ideally, this Assets:Realized Gains account would live under Trading:CURRENCY,
> but right now you can only add a Trading account type there, to which you
> cannot manually add transactions like this, which would bring us back to square
> one again.
> 
> 
> 
> 
> Right now, I'm puzzled as to approaching this. I think the first option
> I described has the best result, but I'm also worried it might break
> things in unexpected ways. Any advice?
> 
> Gr.
> 
> Matthijs
> _______________________________________________
> gnucash-user mailing list
> gnucash-user at gnucash.org
> https://lists.gnucash.org/mailman/listinfo/gnucash-user
> -----
> Please remember to CC this list on all your replies.
> You can do this by using Reply-To-List or Reply-All.




More information about the gnucash-user mailing list