Envelope budgeting with multiple currencies
Say you're paid in rupees, you're saving in pounds, and you think about money in dollars. Most budgeting apps give you two choices: pretend it all lives in one currency, or keep a separate budget for each and do the conversion in your head. Rudopo takes a different path. Your budget runs in one currency, the one you think in. Your accounts keep the currency they're really in, when both that currency and your budget's are on Rudopo's rate list. And every purchase, whichever account it came from, lands in the same envelopes.
One budget, accounts in several currencies
Here's how that looks for the person above. Their budget is in dollars. Their salary account is in rupees, their savings account is in pounds, and their card is in dollars. All three currencies are on Rudopo's list, so all three accounts can sit in the same budget. Each account shows its real balance first — rupees on the salary account, pounds on the savings — with the dollar value marked ≈ beside it. The same is true wherever an entry appears: the ledger on your phone or your desktop, search, and the quick view all lead with the account's own currency.
Rent paid from the rupee account and a coffee on the dollar card go into the same Rent and Coffee envelopes. There is no second Ready to Assign and no second set of categories, and nothing to reconcile between two budgets at the end of the month.
Which rate, and when it's fixed
Every conversion uses the official reference rate for the day the transaction happened: the ECB's daily reference rates, and the official US-dollar pegs for the UAE dirham, Saudi riyal and Qatari riyal. When you save a transaction, Rudopo writes that rate down on the transaction itself and keeps it. A dinner in March stays at March's rate whatever the rupee does in July, so last year's budget reads exactly as it did then. An account's opening balance works the same way: it converts at the rate of the date you say the balance is as of.
Rudopo fetches the rates itself when they're needed. There is nothing for you to update and nothing to check each day.
Never a quiet one-to-one
If there's no official rate for a currency on a date, Rudopo doesn't guess. It refuses the entry and says why. You can then type the converted amount yourself — the number your bank actually gave you, fees and all — and Rudopo stores the rate that implies. The same box is there on any transaction you enter by hand: where the official rate isn't the rate you got, enter what you got.
Moving money, and closing an account
A transfer between currencies keeps both real amounts: the rupees that left and the pounds that arrived. In the budget it nets to zero, because moving money between your own accounts doesn't change what you have. Closing an account held in another currency brings it to zero in both currencies, and any exchange-rate difference between the two is written as its own entry you can see, never folded away.
Bills, forecasts and the bigger picture
Scheduled and recurring items on an account in another currency are shown in that currency. They are not added into the budget-currency totals of what's coming up; instead the total tells you how many items in other currencies it left out, so a figure never quietly mixes two kinds of money. When one of them posts, it converts at the rate of its own due date.
If your currencies belong to genuinely separate lives, keep them as separate spaces and switch between them in a click. Their combined net worth is shown as one figure at today's rates, in the currency of the space you're viewing, wherever an official rate connects the currencies — and Rudopo says when a space couldn't be included rather than leaving it out silently.
How it works today
Rudopo carries official rates for 33 currencies. A space's budgeting currency and an account's currency both need to be on that list for the account to hold a different currency, and you never have to guess which: when you add an account, the currency menu offers exactly the ones that work in your space. Choosing a currency for a space that Rudopo has no rate for shows a one-line note at that moment, so nothing surprises you later. Once an account in another currency has history, the space's currency is fixed; to budget in a different currency, start a new space. How far back rate history reaches is per currency: 1999 for most, 2009 for the rupee.
A work in progress
Multi-currency in Rudopo is a work in progress. We're working hard on adding more currencies to the rate list, and as more are enabled we'll say so here on the blog, on Bluesky at @rudopo.app, and in #announcements on our Discord. If your currency isn't on the list yet, tell us in #feature-requests on Discord or on r/rudopo — it helps us decide what to work on next.
The full detail, including the questions people ask before they start, is on our multi-currency envelope budgeting page.
— The Rudopo Team