---
title: "The currency effect: up 10 %, down 3.2 %"
description: "A US share rises 10 % and the position loses 3.2 % in euros. How the exchange rate gets into a return, where the rates come from, and what a missing rate does."
url: "https://stonqs.app/blog/currency-effect-in-a-portfolio/"
lang: "en"
updated: "2026-10-25"
---

[ How the figures work, and what the app does with them](https://stonqs.app/blog/)

Returns and figures

# Your share rose 10 % and you still lost money

[By Vladimir Varvorkin](https://stonqs.app/about/) Updated October 9, 2026 4 min read

A holding has a currency, the money that paid for it has a currency, and your report has a third. When they drift apart, part of your return is the exchange rate rather than the company. Here is that split, worked out, and where the rates behind it come from.

## On this page

1. [Three currencies, never merged](https://stonqs.app/blog/currency-effect-in-a-portfolio/#three-currencies-never-merged)
2. [The rate of the trade stays the rate of the trade](https://stonqs.app/blog/currency-effect-in-a-portfolio/#the-rate-of-the-trade-stays-the-rate-of-the-trade)
3. [Where the rates come from, in order](https://stonqs.app/blog/currency-effect-in-a-portfolio/#where-the-rates-come-from-in-order)
4. [Pence, cents and agorot](https://stonqs.app/blog/currency-effect-in-a-portfolio/#pence-cents-and-agorot)
5. [A benchmark brings its own currency](https://stonqs.app/blog/currency-effect-in-a-portfolio/#a-benchmark-brings-its-own-currency)

You bought 100 shares at 50.00 USD in January 2024, when one euro bought 1.10 dollars. Today the share is 55.00 USD and one euro buys 1.25 dollars.

|             | Then         | Now          | Change  |
| ----------- | ------------ | ------------ | ------- |
| Share price | 50.00 USD    | 55.00 USD    | +10.0 % |
| EUR/USD     | 1.10         | 1.25         |         |
| Position    | 4,545.45 EUR | 4,400.00 EUR | −3.2 %  |

The company did nothing wrong. The dollar did. In euros the position is worth 145.45 EUR less than it cost, and the arithmetic splits cleanly in two: the instrument contributed 1.10, the exchange rate contributed 1.10 ÷ 1.25 = 0.88, and 1.10 × 0.88 = 0.968, which is the −3.2 %. The figures here are invented for the example and computed from the four numbers in the table.

This is the first thing worth checking when a holding and its market disagree. It is also why a portfolio tracker that keeps one currency per portfolio and converts everything on the way in quietly destroys the information you need to answer the question.

## Three currencies, never merged

A single position can involve three, and mixing them produces totals that look plausible and are wrong:

- the **quote currency**, what the listing trades in;
- the **cost currency**, what you actually paid from, fixed on the day of the trade;
- the **base currency**, what your report adds up in.

A US share bought from a euro account and reported in euros uses all three. A US share bought from a dollar sub-account at the same broker uses two. Stonqs stores each of them and converts at the point where a figure needs it, not before.

## The rate of the trade stays the rate of the trade

A purchase from two years ago keeps that day’s rate forever. Later moves in the exchange rate change what the holding is worth now; they never rewrite what it cost you. Rates are read as of a date, or the last published one before it, exactly like prices, so a trade on a weekend uses Friday’s rate rather than inventing one.

## Where the rates come from, in order

The European Central Bank publishes [daily reference rates](https://www.ecb.europa.eu/stats/policy%5Fand%5Fexchange%5Frates/euro%5Freference%5Fexchange%5Frates/html/index.en.html) for roughly thirty currencies, and that is the first source asked. If the bank cannot be reached, a mirror of the same reference rates is asked. For a currency the ECB does not publish, the Russian rouble since March 2022, the Argentine peso, most emerging-market currencies, the market’s own daily close is used instead. The sources differ by a fraction of a percent at most.

Two rules about filling gaps are worth stating plainly, because they are where a tracker can quietly lie to you:

- A later source only fills days that have no rate yet. It never replaces a rate already stored.
- A currency no source knows stays missing. Every figure that depends on it shows as unavailable. Nothing is assumed to be 1.

A rate silently assumed to be 1 is the kind of error that produces a perfectly formatted total nobody can trace, which is worse than an empty cell with a reason next to it.

## Pence, cents and agorot

London quotes many shares in pence, Johannesburg in cents, Tel Aviv in agorot. A price of 5,234 in that minor unit is 52.34 GBP, not 5,234 GBP. Stonqs folds the minor unit into the major currency on the way in.

If a position in your tracker is worth exactly a hundred times too much, this is almost always why, and it is worth checking before you reach for a currency explanation.

## A benchmark brings its own currency

Comparing your time-weighted return against an ETF quoted in dollars carries that ETF’s currency movement into the comparison, in the same way your own foreign holdings carry theirs. When the gap between you and your benchmark looks strange, the exchange rate is worth ruling out before the stock selection takes the blame.

Note

The figures above are made up for the example. Stonqs computes from what you imported, with prices and rates from free third-party sources that carry no warranty, and your broker’s statement is the record. Nothing here is investment or tax advice.

## Sources

- [Stonqs: currency and FX](https://github.com/vvvlladimir/stonqs/blob/v0.5.0/docs/ai-reference/currency-and-fx.md)  · The three currencies and the order the rate sources are asked in.
- [Euro foreign exchange reference rates, European Central Bank](https://www.ecb.europa.eu/stats/policy%5Fand%5Fexchange%5Frates/euro%5Freference%5Fexchange%5Frates/html/index.en.html)  · The daily rates the app uses first, and the list of currencies they cover.
- [Stonqs: data sources](https://github.com/vvvlladimir/stonqs/blob/v0.5.0/docs/ai-reference/data-sources.md)

## More in Returns and figures

- [Your fee report says 5 EUR. Your portfolio paid 25.50\. ](https://stonqs.app/blog/portfolio-cost-two-figures/)
- [Why your two returns disagree ](https://stonqs.app/blog/time-weighted-vs-money-weighted-return/)
- [What broker CSV exports actually contain ](https://stonqs.app/blog/what-broker-csv-exports-contain/)
- [All posts ](https://stonqs.app/blog/)

---

[ Stonqs](https://stonqs.app/)

A portfolio tracker that runs on your own computer. Free, open source, no account.

## Product

[Download](https://stonqs.app/download/) [Privacy](https://stonqs.app/privacy/)

## Learn

[Guides](https://stonqs.app/guides/) [Blog](https://stonqs.app/blog/) [FAQ](https://stonqs.app/faq/)

## Project

[About](https://stonqs.app/about/) [Source code](https://github.com/vvvlladimir/stonqs) [Changelog](https://github.com/vvvlladimir/stonqs/blob/main/CHANGELOG.md) [Discussions](https://github.com/vvvlladimir/stonqs/discussions) [Report a bug](https://github.com/vvvlladimir/stonqs/issues)

Stonqs is a tool for recording and analysing your own investments. It is not financial, tax or legal advice, and neither are the answers of its assistant. Market data comes from free third-party sources with no guarantee of accuracy. This site sets no cookies and loads nothing from other servers; the only thing it keeps in your browser is the language you pick.

[Legal notice](https://stonqs.app/legal-notice/) [Privacy policy](https://stonqs.app/privacy-policy/)
