It’s not a workaround. GnuCash has no way of knowing the exchange rate that 
applied to a multi-currency transaction any more than it does of knowing the 
price that you bought or sold a stock. When you’re working in a Stock register 
then both the amount (the Shares column, in the split account’s commodity) and 
the value (the debit or credit column, in the transaction currency) are visible 
so there’s no need for the Transfer Dialog to collect the exchange rate.

The transaction is all-USD so you’re *creating* a currency issue rather than 
avoiding one by starting the transaction in a CAD-denomintated register because 
the conversion to CAD is needed only to balance the transaction. Since there 
aren’t any splits with CAD-denominated accounts the exchange rate isn’t 
important but you could avoid it altogether by creating the transaction from 
that USD-denominated asset account so everything is in USD.

You’re dealing with foreign-currency investments and that introduces 
substantial complication. There’s an extended discussion about that on IRC 
about 6 years ago, extensively quoted in 
https://bugs.gnucash.org/show_bug.cgi?id=797796#c39 and following comments. For 
reference CDB-Man is a licensed accountant in Canada and GAAP stands for 
Generally Accepted Accounting Principles, which is the national interpretation 
of the International Accounting Standard. GAAP varies a little from country to 
country and with IAS but in broad-brush it pretty much the same in all European 
and North American countries. 

Regards,
John Ralls

> On Feb 9, 2026, at 22:42, rsbrux <[email protected]> wrote:
> 
> Thanks for the quick response.  I usually enter all transactions for a 
> security in the corresponding account, as I was taught to do to avoid 
> currency issues.
> 
> In this case the stock account has a parent account in CAD, to enable buying 
> and selling the stock in the correct currency:
> 
> Assets
> 
>       Investments
> 
>               <brokerage>
> 
>                       CAD
> 
>                               <stock>
> 
> The dividends transaction, which I entered in this register, looks like this:
> 
> Accounts:Investments....      
> 
> Expenses: Common:Taxes:USD                    27.00   1.00      C$27.00
> 
> Assets:Current Assets...USD                   153.00  1.00    C$153.00
> 
> Income:Common:Investments...USD       -180.00 1.00            C$180.00
> 
> Because the exchange rate is (incorrectly) shown as 1.00, the correct amounts 
> appear in the USD accounts.
> 
> My local currency is CHF.  I don't have exchange rates for 31 December (the 
> date of the dividend), but using the data from 30 Dec., the exchange rate 
> should have been approximately 1.3691 CAD./USD.
> 
> If I then put this value into the Investment register, it changes the CAD 
> amounts in the investment register accordingly and the correct amounts appear 
> in the USD registers. 
> 
> In the Investments register it now looks like this:
> 
> Accounts:Investments....      
> Expenses: Common:Taxes:USD                    27.00   1.3691    C$36.97
> Assets:Current Assets...USD                   153.00  1.3691  C$209.47
> Income:Common:Investments...USD       -180.00 1.3691          C$246.44
> This is an awkward and unintuitive workaround, but I can live with it.
> 
> On 09.02.2026 18:22, John Ralls wrote:
>> 
>> 
>>> On Feb 9, 2026, at 04:16, rsbrux via gnucash-user 
>>> <[email protected]> <mailto:[email protected]> wrote:
>>> 
>>> I have a Canadian stock which was purchased on the Toronto Stock
>>> Exchange with Canadian dollars (CAD). However, much to my surprise, the
>>> dividends are being paid out in USD. I followed the usual instructions
>>> when creating the stock account in GC to allow me to buy the stock in
>>> CAD (with funds from a CAD denominated current account). The result is
>>> that the amounts I enter into GC for dividends are being recorded as
>>> CAD (C$), even though I have selected USD accounts for the dividend
>>> income, the deducted taxes and the net payout.
>>> How can I properly record the USD dividends in GnuCash for a stock
>>> purchased in CAD?
>> The same way you record any other dividend: DR cash account (presumably 
>> CAD), CR income account, which can be CAD or USD. If you make it CAD then 
>> you have to compute the CAD amount yourself outside of GnuCash. I’d think 
>> your brokerage statement or the transaction history on the broker’s website 
>> would tell you how much was deposited into the CAD cash account so that 
>> shouldn’t be a problem. If you want to record the exchange rate in GnuCash 
>> then make the income account USD. If you record the dividend with trading 
>> accounts off and in basic view you’ll still enter the CAD value, but the 
>> Transfer Dialog will open to get the amount in USD so that GnuCash can 
>> calculate the exchange rate. If you create the transaction in the income 
>> account register then you’ll enter the amount in USD in the register and the 
>> CAD amount in the Transfer Dialog.
>> 
>> If you turn on trading accounts for the book and use Split View to record 
>> the transaction then the amounts in each split are in the currency for that 
>> split’s account, so you’ll enter the CAD amount in the cash split and the 
>> USD amount in the income split. The exchange rate is actually to the 
>> transaction currency so which split opens the Transfer Dialog and whether 
>> you enter the USD or CAD amount will still depend on which register you 
>> create the transaction in.
>> 
>> Always let GnuCash calculate the exact rate from the two amounts: amounts 
>> are rounded to the cent, prices are rounded to the maximum precision that 
>> GncNumeric can handle. 
>> 
>> Regards,
>> John Ralls

_______________________________________________
gnucash-user mailing list
[email protected]
To update your subscription preferences or to unsubscribe:
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.

Reply via email to