How exchange rates work in YAFFA
When you hold accounts in more than one currency, YAFFA needs a way to convert between them — to show a unified account total on the dashboard, to compare spending across currencies in reports, and to calculate the value of multi-currency investment positions. Exchange rates are the bridge that makes those calculations possible.
YAFFA keeps exchange rate data in your own self-hosted instance, giving you full control over where rates come from and how they are applied. Rates are always tied to a specific date, so historical reporting reflects the rates that were actually in effect at the time.
Automatic daily rate updates
For most users, the easiest approach is to let YAFFA retrieve rates automatically. When configured, YAFFA fetches the latest rates for all tracked currencies relative to your base currency on a daily schedule. Rates are stored locally so they remain available even if the external service is temporarily unreachable.
Custom rates for specific transactions
Automatic rates reflect the mid-market rate from the source API — which may differ slightly from the rate your bank actually applied on a transfer. For cross-currency transfers between your own accounts, you can enter the amounts in both currencies directly so the actual rate is captured precisely. YAFFA stores that rate on the transaction without overwriting the general daily rate history.
How rates are used in reporting
Rates are applied when YAFFA needs to express a value in your base currency — for example, when summing account balances across different currencies on the dashboard, or when calculating the estimated value of investment holdings. Results may differ slightly from bank statements because YAFFA uses the stored rate for the relevant date rather than the exact transaction-level rate, unless you have entered a custom rate for that transfer.
Supported rate provider
YAFFA currently integrates with Frankfurter — a free, open-source exchange rate API with no account or API key required. It supports 31 currencies, including all major fiat currencies. You can see the full list of supported currencies on the Frankfurter API directly.
Cryptocurrencies
YAFFA does not have dedicated cryptocurrency support. However, you can add a cryptocurrency as a custom currency and track it manually. This works for basic tracking as long as YAFFA's decimal precision is sufficient for the values involved — automatic rate retrieval via Frankfurter is not available for crypto assets.
