I’m importing transactions from a CSV file where the USD currency securities are bought with EUR. Although I include the Exchange Rate in one of my columns, page 2 of the CSV import says that the “Exchange rate of gross value is missing.”
I am having a hard time figuring out what to do. Why is it not recognizing these fields that I can easily edit when adding a “Buy” transaction through the app itself? Am I missing something here?
I see. Thank you for sharing. I would really like for the CSV import to work some day as it’s able to me the most control. Some brokers don’t have PDF export features and contracting statements can be a nuisance.
I’ve been really liking this software, it works very well. But I have had to add transactions manually due to this issue - I have many years of transactions so doing it all manually is very time consuming.
I’m trying to import historical security purchases from CSV. These values are given in GBP, the security is in GBX (*100).
When I try this import, the failure message indicates “Exchange rate of gross value is missing (transaction currency GBP and security currency GBX)”. If I add transactions manually it works fine.
Screenshot of the error (Ignore “transaction does already exist”, that shouldn’t affect this):
And the field mapping - I’ve tried mapping currency, gross amount, currency gross amount:
I’ve seen a few posts about this from around 2021, which seem to imply this issue was supposed to be fixed after this update: Dividend CSV update but that doesn’t seem to work - Did that only apply to dividends and not transactions (like buying shares?)
Just having a look through the code, it seems it might be due to missing transaction.addUnit for buy/sell types.
Here is the code that imports Dividends and most other transaction types:
And here is the equivilant part for buy/sell:
You can see there is not something like the t.addUnit(grossAmount.get() for buy/sell, I would imagine if somehting like buySellEntry.getPortfolioTransaction().addUnit(grossAmount.get()) was added here it might fix the issue.
Since that unit is not set, when transaction currency does not match security currency, it will try to get that unit and fail:
I haven’t got the code set up to test changes locally, so can’t check if this would fix the issue, but hopefully it points a contributer in the right direction!