💱 Currency Converter

💰 Conversion
🪙 Result

{{ formatAmount(result.amount) }} {{ result.from }} = {{ formatAmount(result.result) }} {{ result.to }}

Enter an amount and pick a pair to convert.

📌 Current rate

1 {{ fromCode }} = {{ formatRate(currentRate) }} {{ toCode }}

Inverse: 1 {{ toCode }} = {{ formatRate(1 / currentRate) }} {{ fromCode }}

Rate date: {{ currentRateDate }} · Source: {{ result.via }}

Rate will appear once a conversion is fetched.

⚠️
📊 History

Showing {{ visibleSeries.length }} EOD points ({{ visibleSeries[0].date }} → {{ visibleSeries[visibleSeries.length - 1].date }}) No data in the selected range. · change: {{ historyDelta >= 0 ? '+' : '' }}{{ historyDelta.toFixed(2) }}%

Loading history…

ℹ️ About Currency Converter

This currency converter multiplies an amount in one base currency by the latest cached daily close for the selected quote currency. It supports 31 common three-letter currency codes from the ISO 4217 currency-code standard and uses foreign-exchange data from the EODHD Forex API.

Rates are ingested once a day, stored locally, and triangulated through USD when the provider does not quote a direct pair. The result panel shows the applied rate date, inverse rate, conversion path, and an interactive history chart so the number is not separated from its source context.

Practical uses

  • Travel budgeting — estimate hotel, meal, and cash costs before a trip.
  • Cross-border invoicing — convert a quote or invoice total with the rate date visible.
  • Month-end reporting — restate balances with daily end-of-day FX data instead of an intraday spot quote.
  • Pair research — compare 30-day, 90-day, 180-day, 1-year, and 5-year rate movement before deeper analysis.
  • API workflows — call /api/tools/math/currency-converter/convert from scripts, dashboards, or spreadsheet connectors.

Conversion math

The displayed result is amount × rate = converted amount, where rate means 1 FROM = rate TO. For example, converting 100 EUR to USD uses the latest cached EUR/USD close, while the inverse panel shows the reciprocal USD/EUR rate.

You can share a starting pair by adding query parameters such as ?from=GBP&to=JPY; unsupported codes are ignored and the tool falls back to its defaults.

Rate sourcing

  1. A scheduled ingest runs app:currency:ingest after the daily FX close and fetches one EODHD candle per USD pair.
  2. Each candle is upserted into the currency_rate table keyed by (base, quote, date).
  3. The UI reads the latest cached close. If a pair has never been cached, the API can backfill at least 30 days on first request.
  4. Pairs without a direct quote, such as NZD/HUF, are computed by multiplying NZD/USD × USD/HUF.

Freshness and limits

EODHD publishes historical end-of-day forex candles, not guaranteed executable bid/ask quotes. Weekend and holiday conversions usually reuse the most recent business-day close until a new candle is available.

For settlement, tax, audit, or regulated accounting work, use the fixing named by your policy or counterparty. For example, the ECB euro foreign exchange reference rates are a separate official reference-rate source and are not the feed behind this calculator.

EODHD also notes in its historical end-of-day data documentation that market data may be delayed, indicative, and unsuitable for trade execution.

Disclaimer. Treat these conversions as informational estimates. They are useful for planning, comparison, and analysis, but they are not settlement instructions, trading signals, or financial advice.

API Usage Example:

POST /api/tools/math/currency-converter/convert
Content-Type: application/json

{
    "from": "EUR",
    "to": "USD",
    "amount": 100
}
Ready