I'm looking to use GnuCash for investment tracking and while I evaluate the software, I am specifically interested in how to get it to properly calculate the ACB of foreign investments in CAD.

For Canadian tax rules (as far as I understand them), reporting capital gains or losses on foreign stock (e.g. US) must take into account the exchange rates on the dates the transactions occurred.

For example, if I wanted to purchase US$100 in XYZ Corp, and the CAD/USD is 1.1, then my cost basis should be CA$110. Later on, XYZ Corp shares increase to $120, but the CAD/USD falls to 1.05, my proceeds from the sale are CA$126. Therefore, my capital gain is CA$16.

Is it possible to get GnuCash to record the exchange rates to be used for calculating cost basis and proceeds? It appears that the reports only use the most recent prevailing exchange rate.

  • If you designate the CAD as the account currency, doesn't it not use the exchange rate for each transaction based on its date? – littleadv Jun 9 '13 at 4:24
  • I suppose I could use CAD as the account currency for all accounts, but then it's wouldn't be completely accurate in cases where CAD was not actually used to purchase the stock. In those cases, cost basis must still be converted to CAD on the day of purchase even if the actual currency was exchanged on a different date. – fideli Jun 9 '13 at 16:54
  • Why for all accounts? You can chose currency per account – littleadv Jun 9 '13 at 20:12
  • I wasn't clear. Let's say this is for a USD account I own. If I set the currency to USD as it should be, I cannot properly keep track of the ACB in CAD, as is required by the CRA. That is the problem. It is undesirable to denote a USD account in CAD just to solve this issue as I may be interested in knowing exactly how many USD I have in the account, and I don't always need to know the CAD equivalent. Only at tax time. – fideli Jun 9 '13 at 23:59
  • I'm confused. You said CAD is the primary currency, how its a USD account? – littleadv Jun 10 '13 at 0:02

You would need to use Trading Accounts. You can enable this, File->Properties->Account settings tab, and check Use Trading Accounts.

For more details see the following site: http://wiki.gnucash.org/wiki/Trading_Accounts

| improve this answer | |
  • Trading accounts are just there to keep to book balanced all the time. It contains all transactions, grouped by commodity. Which is not very useful for OP's sitation if the has many open positions. – Calmarius Mar 20 at 14:22

You should account for everything in your local currency (that is the currency your taxes are collected in). At the end of the day you have bought those shares for 110 CAD and sold it for 126. The fact that there were currency conversion is irrelevant.

And once you have done this you can use GNUCash's "View Lots..." menu to manage the sale of the stocks and create the orphan transcations in the asset view you can transfer to your capital gains income account.

I had to learn this the hard way. The company I work for was bought by another company: it's stocks were in the London Stock Exchange, accounted in GBP. The US company that bought us paid USD for the stocks, then the proceeds were paid to me in HUF right to my bank account. You can imagine the mess this have caused in GnuCash... Which i could have avoided if I just account for everything in HUF.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.