The month’s Spent total and the export show every cost in euros, whatever currency the receipt is in. A receipt can get its euro amount from four places, and the app always says which one it used. This page explains the order and the reasoning behind it.
The order of precedence
For each receipt, the first of these that exists is used:
- Your own euro amount. You typed it in as In euros on the receipt page, with a reason (Why). This wins over everything, because you know something the app does not (a statement from a card it has not seen, a fee your bank added).
- The matched bank payment, if it was in euros. The amount that actually left your euro account.
- The receipt itself, if it is in euros. No conversion needed.
- An ECB reference rate. The receipt’s total converted at the European Central Bank’s reference rate for its issue date.
If none of these exist, the receipt has no euro amount yet. It is flagged, and it is left out of the month’s euro total until one of the four arrives. Under Spent, Home says how many receipts that affects.
The export’s eur_source column records which source each row used: manual, bank, native, ecb or missing. For ECB rows, fx_rate_date says which day’s rate was applied. See Export CSV.
Why the bank match wins
What you can deduct, and what your books show, is normally what you actually paid. When a US dollar subscription is charged to a euro card, the euro amount on your statement includes the card scheme’s exchange rate and any fee your bank added. That is the real cost. A reference rate is only an estimate of it.
So a foreign-currency receipt starts with an ECB estimate, and when you import the statement and the payment is matched, the bank’s euro amount replaces it. The receipt page says where its euro amount came from, for example “ECB rate” with the rate’s date, or “from your bank”. When you have more than one part, the month’s By part table on Home says how much of the total is still at the ECB rate.
A match only replaces the estimate when the bank account is in euros. A payment from a dollar account is still in dollars, so the receipt keeps its ECB conversion.
How the reference rate is found
Rates come from Frankfurter, a free service that republishes the ECB’s daily reference rates. The app asks for the receipt’s currency against the euro, for the issue date and the six days before it. It uses the most recent rate on or before the issue date. The ECB publishes no rates at weekends or on its holidays, so a receipt dated Sunday gets Friday’s rate.
The request carries only a currency code and two dates. No amounts, sellers or receipt content are sent. Each rate is stored in your database after the first lookup, so the same currency and date is only asked for once.
If Frankfurter cannot be reached, the receipt has no euro amount yet and asks Why is there no euro amount? The lookup is tried again the next time the receipt is read or saved, and a bank match fills the gap without any lookup at all.
What a reference rate is not
The ECB reference rate is a published daily rate, used here because it is free, stable and widely recognised. It is not the rate your bank used, not necessarily the rate your tax authority asks for, and it is fixed to the issue date rather than the payment date. Whether it is acceptable for your books is a question for your accountant. If they want a different rate or a different date, type your own euro amount with a reason, and the export will show it as manual.
Supported currencies
The app reads and converts ten currencies: EUR, USD, GBP, CHF, SEK, NOK, DKK, CAD, AUD and JPY. A receipt in any other currency is flagged, because there is nothing to convert it with. You can still give it a euro amount by hand. How symbols such as “$” are turned into a currency code is covered in How reading works.