A multi-currency expense tracker that keeps your real rates.
Most apps silently replace the rate your bank actually charged with a generic reference rate. BudgetLuma stores yours, protects it with database-level triggers, and reuses it on every edit — until you explicitly change it.
- 50 currencies with hourly reference rates
- Refreshed hourly from Frankfurter + ExchangeRate-API
- Both original and converted amounts stored
- Custom rate to match your bank statement (Premium)
Free to start. No credit card.
Transparent multi-currency, not silent conversions.
Every conversion has a source, a provider, and a timestamp you can see.
50 currencies, refreshed hourly
Reference rates sourced from Frankfurter and ExchangeRate-API and refreshed every hour. Conversions are computed server-side and stored with the transaction.
Original amount never lost
Every transaction keeps both the amount you entered and the converted value in the wallet’s base currency, with the rate used, its source, the provider, and the timestamp. Nothing is inferred.
Custom exchange rate (Premium)
Enter the real rate your bank or card applied. BudgetLuma stores it as the rate for that transaction — and database triggers protect it from being silently overwritten on later edits.
Display override (Premium)
View a wallet or the Insights screen in a different currency, without mutating any stored value. The underlying truth stays intact; only the lens changes.
50 world currencies, refreshed hourly.
Every code below is active in production and refreshed hourly.
JPY, KRW, HUF, ISK, CLP, VND, XAF and XOF are stored with 0 decimals; KWD and TND with 3; all others with 2. Reference rates are sourced from Frankfurter and ExchangeRate-API.
Original in, converted beside — never swapped.
The transaction you enter in ¥ stays in ¥. The wallet total in € uses the rate that was applied the day you recorded it. On edit, you decide whether to keep or refresh the rate — nothing silent, nothing sneaky.
Transaction
Tokyo — Ramen dinner
Original amount
¥ 1 850
Wallet base (EUR)
≈ € 11,72
Stored rate — source
1 EUR = 157.83 JPY — system reference (Frankfurter), 14 Jan 2026
Illustrative. Real transactions store the same fields exactly.
Multi-currency — questions answered honestly
Which 50 currencies are supported?
EUR, USD, GBP, JPY, AUD, BRL, CAD, CHF, CNY, CZK, DKK, HKD, HUF, IDR, ILS, INR, ISK, KRW, MXN, MYR, NOK, NZD, PHP, PLN, RON, SEK, SGD, THB, TRY, ZAR, AED, CLP, COP, DZD, EGP, GHS, KES, KWD, MAD, NGN, PEN, PKR, QAR, SAR, TND, TWD, UAH, VND, XAF and XOF. JPY, KRW, HUF, ISK, CLP, VND, XAF and XOF are stored with 0 decimals; KWD and TND with 3; all others with 2.
Are exchange rates real-time?
No. Reference rates are refreshed hourly from Frankfurter and ExchangeRate-API. They’re provided for informational purposes; BudgetLuma is not a currency exchange service. For a rate that matches exactly what your bank charged, use the Premium custom exchange rate on a transaction.
If I edit a transaction, do you silently change its exchange rate?
No. The stored rate is protected. On edit, you explicitly choose whether to keep the existing rate, auto-fetch a fresh reference rate, or enter a new custom rate. A bare amount edit on a custom-rated transaction preserves the custom rate.
What happens when I combine wallets with different base currencies?
Cross-wallet views in Insights use reference rates (not your custom rates) to combine wallets, and the UI labels this explicitly with an “≈” signal and a “Combined across N wallets · reference rates” note. You can always reconcile with your bank statement.
Is there a historical exchange-rate feature?
Not today. Rates are applied at transaction time and stored. Point-in-time historical lookups are on the backlog but not shipped. We don’t present unavailable features as if they exist.
Related guides
Custom exchange rate
Deep dive into the Premium feature that preserves the exact rate your bank charged.
Read the guide GuideTravel budget app
A wallet per trip, in the local currency you think in, with real-rate reconciliation.
Read the guide GuideBudget tracking
Real-transaction budgets that inherit the same stored rates your wallet trusts.
Read the guideTrack what you spent. Not what an app guessed.
Free to start on iOS. Premium unlocks custom rates and display overrides.