Methodology
Currency methodology
ECB daily rates, Frankfurter API, ISR cache, hourly refresh.
The Currency clusterships 50 live FX pairs against the European Central Bank’s published mid-market rates. The data path is intentionally simple: ECB publishes daily reference rates; the open-source Frankfurter API republishes them as JSON; we cache the result with Next.js ISR for one hour. No proprietary spread, no aggregation across providers, no “our pricing” layer.
The data source: ECB daily reference rates
The European Central Bank publishes reference exchange rates for the euro against ~32 currencies each banking day at 16:00 CET. These are mid-market rates derived from a concertation between EU central banks; they aren’t transactable but they are the canonical reference benchmark.
For non-EUR pairs (USD → GBP, JPY → TRY) we triangulate via EUR: USD/EUR × EUR/GBP gives USD/GBP. The triangulation is algebraically exact and is what Frankfurter computes internally.
The caching strategy
Currency rates update at most once per day (ECB doesn’t publish weekend rates), so a 1-hour cache is generous. We use Next.js incremental static regeneration:
- First request to a currency page: server fetches Frankfurter, renders, caches.
- Subsequent requests within 1 hour: cached HTML, sub-100ms.
- After 1 hour: next request gets the stale page immediately, triggers a background refresh.
This means the rate you see is up to one hour stale. For retail conversion that’s irrelevant — bank spreads change the answer by far more than an hour’s drift. For high-precision contexts (algorithmic trading, large wire transfers) get the rate from your bank, not from any public reference.
Spread vs the rate you’ll actually get
The mid-market rate is the rate two banks would transact at. You — a retail customer — won’t get this rate. Your actual cost includes a spread on top:
- Card networks (Visa, Mastercard): typically 0.2-1% above mid-market.
- Issuer banks adding their own spread: common in the US; 1-3% added on top of network rate.
- Currency-conversion fees at ATMs and POS terminals (DCC): 3-8% spread. Always decline if asked to pay in your home currency abroad.
- Specialised forex providers (Wise, Revolut): 0.3-1% above mid-market, no DCC. Closest to the reference rate of any retail option.
- Traditional banks for wires: 2-5% spread. Worst of all common retail options.
What we don’t do
We don’t aggregate rates across providers (so we can’t tell you who’s offering the best deal right now). We don’t support cryptocurrency pairs in the Currency cluster (those live under /crypto/). We don’t back the rate with a transactional API — Convertitive shows you the number, your bank or provider handles the actual money movement.
Frequently asked questions
- Why ECB rates and not the Federal Reserve?
- ECB rates are public, well-documented, free of access restrictions, and updated daily at 16:00 CET on the bank's website. The Fed's H.10 release is similar but biased toward USD pairs. ECB's coverage is broader for cross-currency pairs.
- How accurate is the rate I see on the site?
- It's the ECB mid-market reference rate, refreshed hourly. That's the rate two banks would transact at — not the rate you'd get from a retail bank, money-changer, or card-network conversion, all of which add a spread of 1-4%. Use Convertitive's rate as the baseline and check what your payment provider actually charges separately.
Related
Published May 14, 2026