FX Rates

John Ralls jralls at ceridwen.us
Sat Jan 8 13:58:50 EST 2011

On Jan 8, 2011, at 7:17 AM, Ken wrote:

> Hi Frank,
> Thanks for your reply but I am not sure I follow your point.  In your
> example the user has made two FX transactions at different FX rates.
> In terms of reporting the values of the trades one could use the
> average of the two rates as the fair market conversion or one could
> have a third GBP/USD price series which indicates the fair market
> conversion rate or something similar.  Just because the FX conversion
> at Bank A (or at a bid price) and the conversion at Bank B (or at the
> ask price) are different should not mean a jump should be impossible.
> My point is if I have prices for IBM/USD (say $150/share and I have
> 100 shares) and I have prices for GBP/USD (say $1.50/£ and I have
> £1,000), I can generate a report in reporting currency USD.  But if I
> want to generate a report in GBP, GnuCash is not capable of doing this
> even though it has all the necessary information. Is it not possible
> to add functionality?  The calculation of only a single conversion
> jump would greatly improve the reporting functionality in a
> multi-currency/asset environment.  What am I missing?
> Regards,
> Ken
> On 8 January 2011 14:52, Frank H. Ellenberger <f.ellenberger at online.de> wrote:
>> Hi Ken,
>> Am Donnerstag, 6. Januar 2011 um 20:58:00 schrieb Ken:
>>> In fact, if a developer is reading this, how difficult would it be for
>>> GnuCash to make a "single conversion jump"?
>> It would produre conflicts. Example:
>> Having 100 GBP, you buy USD at the rate of 1.5 USD/GBP and get USD 150.
>> Now you change them back at the rate of 0.6 GBP/USD and get GBP 90.
>> With your single conversion jump you get 1 GBP = 0.9 GBP, q.e.d.
>> Commodity trading is *not* linear algebra but graph theory.

If you are using a UK broker to buy a US stock in USD, then the broker sold you USD and then used the USD to buy the IBM. You should have a USD trading account in your chart of accounts and reflect the transaction as 4 splits. A transaction report in that case would correctly report your cost in GBP as the amount your broker withdrew from your GBP cash account to accomplish the trade. In that case your broker might make it easy for you by simply reporting the trade in GBP so that you can ignore the conversion part of the transaction. If not, you should be able to get to the report by not including the trading account when you run the transaction report.

On the other hand, if you have a US brokerage account denominated in USD from which you bought the IBM, then at some point you had to fund that account from a GBP account and use the USD to buy the IBM. If your US brokerage account has a cash account on it, the two transactions might be separated in time; indeed, there may be many transfers between your GBP-denominated accounts and your USD-denominated brokerage account. There's no meaningful way for Gnucash to know how to convert a particular USD transaction into GBP. I can easily think of several ways to do the calculation, but only one will be correct: The one that the English tax authorities require. It's way beyond the abilities of the handful of volunteers writing Gnucash to incorporate the accounting rules into the program -- and trying would very likely get us in serious trouble.

John Ralls

More information about the gnucash-user mailing list