Currency Converter

Convert an amount at the European Central Bank's published reference rate, for today or a past working day.

Secure server processingConvertersWorkingNo account needed

What this tool does

Currency Converter takes one amount, a currency to convert from and a currency to convert to, and returns the figure together with the rate that produced it and the date that rate was published. The numbers come from the European Central Bank's euro foreign exchange reference series, retrieved by the OmniKitly server through frankfurter.app. No rates are bundled into the page, so the browser never invents a figure when the service cannot be reached.

A reference rate is not a price anyone will trade at, and that distinction is the whole point of reading this page before trusting the output. The ECB publishes one value per currency once each working day, in the afternoon Central European Time, as a statistical benchmark. A bank, a card issuer or a bureau adds a spread on top of it and usually a fixed fee as well, so the money that actually arrives tends to be a little under what this tool shows. Use the result to check an invoice, budget a trip or measure the margin in an fx quote — not to predict the exact sum that will land in an account.

A conversion carries no document with it. The amount you type, the two currency codes and the rate date travel to the OmniKitly server over an encrypted connection as job settings, and the server makes the outbound rate request on your behalf, carrying only the pair and the date. That job row — the settings together with the address the request arrived from — and the small JSON result are deleted by the same sweep once the retention window passes, six hours after the run by default. The cost of that arrangement is that this is one of the few converters on the site that cannot run offline: with no network it refuses rather than quoting a stale number.

Three rough edges deserve a mention before you rely on a result. The From and To menus list forty currency codes, but only twenty-eight of them have a published reference rate — ARS, CLP, COP, TWD, VND, AED, SAR, EGP, NGN, KES, PKR and BDT are offered and will always answer with a message saying no rate is published. The input box takes a single amount: the whole box is read as one number, so a second line makes it unreadable and the run is refused before any rate is fetched. And the box argues with itself on exactly that point, because its placeholder hints at one amount per line and the Load sample button fills it with two — follow either and you get "Enter an amount to convert" over a box that visibly contains amounts.

How to use it

  1. Type the amount. One number per run, such as 1250 or 1250.75 — clear the loaded sample first, since it arrives as two lines that cannot be read. A negative value, or anything that is not a plain number, is rejected before the server contacts the rate service.
  2. Pick the pair. From and To open with USD and EUR. Both menus carry the same forty codes, and twenty-eight of those are the ones with a published rate behind them.
  3. Set a rate date, or leave it empty. Empty gives the most recent publication. A past date has to be written exactly as YYYY-MM-DD; any other format is ignored without a warning and you quietly get the latest rate instead.
  4. Read the result. The output pane shows the converted amount rounded to four decimal places, the rate applied, and a rate_date field naming the working day that rate was actually published on.

Processing & privacy

Secure server processing. This operation requires temporary server processing.

Common use cases

Recording a foreign invoice

A supplier bills in EUR while your books are in GBP. Converting at the reference rate for the invoice date gives a figure you can defend in the ledger, separately from whatever your bank later charged.

Budgeting a trip

Turn a hotel night or a rail fare into your own currency to see roughly what it costs, keeping in mind that a card will settle slightly worse than the benchmark.

Measuring the spread on a quote

A broker or a bureau offers you a rate. Comparing it against the same day's reference value turns the margin you are being asked to pay into a number instead of a feeling.

Re-reading an old agreement

A sum agreed on a particular date can be expressed again at that day's published rate, so a historical amount is compared on the terms it was written under.

Questions

Where do the rates come from?
The European Central Bank's euro foreign exchange reference rates, fetched by the OmniKitly server through frankfurter.app. Every result names its source and the publication date it used, so the number can be checked against the ECB's own release.
Is this the rate my bank will give me?
No. Reference rates carry no spread and no fee. A transfer, a card payment or a counter exchange all settle somewhat worse, and how much worse is the provider's margin — something this tool has no way to see or estimate.
Why did my currency come back with no rate?
The menus offer forty codes while the reference series publishes twenty-eight of them. AED, PKR, VND, NGN and the others listed above have no ECB reference rate, so a pair using one is refused with a message rather than answered with an invented figure.
Can I convert several amounts at once?
One run handles one amount. The input is read as one number, so a second line makes it unparseable and the job is refused — the two-line text loaded by the sample button included. Convert one amount at a time, or take the rate from the result and multiply the rest yourself.
What happens if I ask for a weekend or a public holiday?
Rates are published only on working days. A request for a non-publication date is answered with the most recent publication before it, and the rate_date field tells you which day that was. Dates before the series began in 1999 have no rate at all, though the refusal names the currency pair rather than the date, so read that message as a flat no to the request as a whole.
Is anything about my conversion stored?
The amount, the rate date and the two currency codes are sent to the server over an encrypted connection and written into the job record, along with the IP address the request came from. That row and the JSON result are removed together by the sweep that runs once the retention window ends. There is no file involved and no account is required to run one.
Does it work without a connection?
No, and it is the exception among the converters here. Length Converter and its neighbours hold their factors in the page, but an exchange rate changes daily and cannot be shipped with the site, so this one refuses instead of guessing.

Related tools