Performance vs exchange rate

Hi,
I think there is an issue with performance calculations if you specify custom exchange rate when buying stocks and you switch app currency.
I found in this forum that some people experience problems with custom exchange rates in currencies but this is not that case.

I created a demonstration

  • I have 2 currencies (USD, CZK)
  • I have 2 accounts, one for each currency
  • I buy 1 stock for 1000 USD directly from USD currency
  • same day, I buy 1 stock for 1000 USD from CZK currency with custom exchange rate (it should be 22.5, I use 22 for demonstration)
  • I set purchase date 365 days ago to make it easy to calculate

Now I set app currency to CZK and check statement - calculations are OK

  • market and purchase value in CZK and base currency (USD) is OK
  • absolute performance in % is OK
  • trade entry value is OK, one is 22 * 1000 USD (custom exchange rate), the other is exchange rate from that day 22,25 * 1000 USD

Let’s switch to USD - calculations NOT OK

  • market and purchase values are OK
  • absolute performance is incorrect … 2364/2000 = 18,2 % but it shows 18,9 %
  • entry value of the trades is incorrect. Both should be 1000 USD but the one from CZK is 988 USD

It seems that it does not make any sense to track cash transactions and exchange rates in time (track deposits in base currency and transfers to another currency) because the app can’t assign the right currency exchange rate to stocks purchase (FIFO) - I mean when you exchange money in January and buy stock in February.
And it does not make any sense to add correct exchange rate with a purchase because there is a difference in calculations.

So the only option is to avoid using exchange rates and use just the default exchange rate from European Central Bank. Right?

Thanks for any suggestion.

You don’t show the selected reporting period anywhere. I would guess that the buy transactions are outside of it.

That should be fine I think.
Reporting period is 1 year. That’s why I mentioned the purchase was 365 days ago. It is exactly 1 year, so performance is calucalted directly.

The problem is that I have 2 purchases for 1000 USD but with different base currency value (CZK). I understand that it has to use exchange rate for that day when the purchase is in USD. But if the purchase is in CZK, the program knows the value for USD (1000) and also for CZK (22000). But it shows that the entry value is 990 USD which causes all the trouble.

Just for the fun of it, follow chirlus suggestion. Extend the reporting period to 366 or better 367 days.

Actually not, as 2024 is a leap year.

Ok, I moved those transactions 2 weeks later and it did not help.
I still think that the problem is the “Entry value”. Both should be 1000USD but one is 980USD. That is the difference in calculations in absolute performance.

Here is the testing XML with data.
Portfolio-test.xml (776.6 kB)

You are right that if the purchase is 366 days before and I have 1 year period, the performance is even bigger mess :slight_smile: and I have to switch to 2 years.
Thanks. I will investigate more how the calculation formula works and also the other metrics.

I found more similar topics where people complain about absolute performance but with no solution yet.