Money and currencies
Keep amounts in several currencies, choose where exchange rates come from, and see how each row and each total is converted.
A business that invoices in euros and is paid in lei needs each amount kept in its own currency, and totals it can trust. Sterodata keeps every amount as it was entered and converts it when it is read, at the workspace's exchange rates.
Currency fields
A Currency field holds amounts in one currency (setting one up is described in Fields). Tick Multi-currency in its settings and each row can have its own currency; a row without one is in the field's Default currency. Currencies offered limits what can be picked, and Convert at the rate of says which day's rate each row takes:
- one of the table's date fields, such as the invoice date;
- Created at, the day the row was added;
- Today, the latest rate, worked out when read and never stored.
Multi-currency is only for tables kept in Sterodata. A table of a connected database keeps one currency per field.
Where the rates come from
A workspace converts at one source of rates, set in the workspace's Settings, under General, in Exchange rates. Only a workspace admin can change it. See Settings.
| Source | What it holds | The rate a date takes |
|---|---|---|
| BNR, the National Bank of Romania | Lei for one unit of each currency, built in and updated every hour | The last rate published before the date: the previous banking day's, as Romanian invoices use |
| ECB, the European Central Bank | Units of each currency for one euro, built in and updated every hour | The last rate published on or before the date |
| Custom, rates you enter | An Exchange rates table you type, import or connect: one row per date and currency, the rate in your home currency for one unit | The last rate on or before the date |
A new workspace whose locale is Romanian starts on BNR, and any other on the ECB. Settings shows up to which date the rates are in. A date the bank has not published yet, such as a date in the future, takes the latest rate until its own arrives. Changing the source changes every converted amount at once, so it is refused while a period is locked.
How a row converts
Cells, lists and cards show each row in its own currency. Open a record to see, under a multi-currency amount, what it is worth in the field's currency and which day's rate it took. A row in the field's own currency converts one to one.
A row that has no rate is not converted yet: its date is empty, the source has no rate for its currency, or the date is older than the source's history. Totals count such a row aside, never adding it in at a wrong value.
A filter such as Amount greater than 1000, and a sort by the amount, compare what each row is worth: 650 EUR is above 1000 lei, 650 RON is not. A filter for Amount is 650 finds 650 in any currency.
How totals convert
A sum or an average, in a table's totals, a page's numbers, a running total or a rollup's sum, adds each currency on its own and converts each currency's total once, at today's rate, as the accounting standard IAS 21 does. So 600 EUR invoiced and 600 EUR paid on days whose rates differ total exactly 0: the difference is an exchange gain or loss, not a balance anyone owes. The smallest and the largest compare each row at its own day's rate.
Choose the information icon (ⓘ) beside a converted total, How this total was converted, to see each currency's own total, anything not converted yet, and which rates were used.
Money in formulas
- One amount times or divided by a number keeps each row's currency:
Amount * 1.19,ROUND(Amount / 12, 2). - A calculation that mixes currencies, such as
Amount - Paidwith lei beside euros, converts every amount first, each row at its own day's rate, into the one currency the formula answers in. Choose it under Display as, Currency; when the formula names none, it is the workspace's home currency, the currency of its locale. - An amount divided by an amount, such as
Paid / Amount, is a plain number or a percentage. - Two amounts multiplied are not converted: keep an exchange rate as a Number field, not as an amount.
- A formula shown in one currency, such as an
Amount in RON, totals what each row was worth on its day. - A value worked out from a row that is not converted yet is empty.
A formula is refused when an amount in it cannot be converted: one shown through a link in another currency, or one in a workspace with no exchange rates. A formula in a view cannot keep each row's own currency; add that formula to the table instead.
The rental system in How to build a rental management system keeps rent in one currency and payments in another.
Last updated 29 October 2026