Currency returns are not calculated correctly


I have an asset wich is denominated in USD. The portfolio is set up in EUR.
I have added a transaction on 15.04.2024 in USD. My question is where does the 5.33 eur (“currency returns”) comes from because if we look on yahoo finance for usd/eur evolution for this period 15.04.2024 -10.05.2024 we have -0.0431% which is not 5.33 eur for 438 USD invested on 15.04.2024.

Hey @Adam_V!

The currency return is calculated asreturn - capital_return, where total return is market_value - principal + realized_returns.

The capital_return is calculated the same as return, but it uses a constant FX rate from the opening date for all calculations.

At this point returns do not include fees or taxes. The return you see in the UI may include it (you can change it). The capital & currency returns never include fees or taxes - only market rates and realized returns.

I don’t see the price appreciation above, but in your case it should be:

  • assuming current USD market price as $4.4449
  • I assume you had ~€4.42 of costs - at least this is the difference in total return I’m getting from your screenshot
  • total_return = market_price * 0.9269 * 100 - 411.28 = 0.717781
  • capital_return = market_price * 0.939 * 100 - 411.28 = 6.09611
  • currency_return = 0.717781 - 6.09611 = -5.378329

There’s a slight difference because Capitally has slightly different fx rates for these dates.

So in general, the Currency Return shows the difference in returns if you would freeze the fx rate over time and does not include fees or taxes.

Does this makes sense?

Yes. it makes sense.
I have one question though. The capital return exchange rate it is applied with the currency foreach day for every transaction ?


All metrics in Capitally are calculated for Position Units - and only then aggregated together.

So in this regard, it is applied to every transaction - simply every Buy opens a new Unit, and every Sell either closes the Unit(s) or splits it in two.

As for “every day”, it always compares the opening value to the current value. Because we use units, there are no transactions in between. When you look at the chart, every point on it is calculated the same - as opening value compared to the date’s value.

Not sure if it answers your question?

I’m moving this to Questions as it’s working as expected.