How the currency data is built
Every rate on this site comes from a published official source. This page explains which source, how the numbers are aggregated, how cross rates are derived, and where the data should not be used.
Latest daily observation: 2026-10-30 · Annual series generated 2026-11-06
Sources
| Data | Source | Cadence |
|---|---|---|
| Live and recent daily rates | Central-bank reference rates aggregated via Frankfurter; ECB is the primary EUR source | Polled hourly; daily fixing |
| Website annual series | Federal Reserve H.10 release, via FRED | Weekly source release |
API daily history (/v1/history) | Central-bank provider feed (Frankfurter), seeded into the history store | Daily |
| Pre-float GBP and INR | Documented Bretton Woods and sterling-area parities | Static |
| PPP conversion factors | IMF DataMapper, indicator PPPEX (implied PPP conversion rate) | Monthly sync; annual data |
Coverage by pair
The annual history covers 40 published pairs across 22 currencies, from 1949 to 2026. The current snapshot is wider, with 159 currencies, but has no annual series for every one. Coverage is not uniform:
- GBP/USD and USD/INR include documented parities from 1949; INR daily observations begin in 1973.
- Major USD pairs have daily market data from 1971.
- Asian pairs begin with the Federal Reserve series: 1981 for KRW, SGD, THB, HKD and CNY; 1983 for TWD; 1993 for MXN; 1995 for BRL.
- EUR pairs begin with the euro in January 1999.
Each history page states its own start year. We do not extend a series backwards beyond what the source supports.
How annual figures are calculated
For each calendar year, the average is the arithmetic mean of every daily observation published that year. The high and low are the most extreme single observations, not intraday ticks. The year-end value is the last observation of the year, and change compares that value with the previous year's close.
Weekends and holidays are absent from the source. A missing date is resolved by carrying the last published observation forward for up to seven days, which is the same rule the API applies.
How cross rates are derived
For pairs that do not involve the US dollar, such as GBP/INR, each daily value is calculated from two USD legs:
quote per base = (USD per 1 base) ÷ (USD per 1 quote)
Both legs are joined on the same calendar date, with the same carry-forward rule. This is exact arithmetic on published data, not interpolation or estimation.
Validation
Annual series are spot-checked against a second official source, the ECB reference rates. Small differences are expected because two fixings can be taken at different times of day.
The build process also refuses to publish data that fails a structural check: non-positive rates, a high below the low, an average outside the high-low band, or a pair with fewer than 500 daily observations. If a source is unavailable, the build fails rather than shipping a guess.
PPP factors
Purchasing-power parity uses the IMF's implied PPP conversion rate, expressed as local currency units per international dollar. The API covers 197 countries from 1980 to 2031; the web calculator displays a 113-country, 46-currency subset. The factor year, currently 2024, is returned with every response, and projected years are flagged. PPP is an annual, country-level estimate: it does not account for tax, city-level prices, or household composition.
Limitations
- Rates are indicative mid-market references, not dealer quotes.
- They are not suitable for settlement, trading, or valuations that require a tradeable quote.
- Pre-float years are policy parities, not market prices, and are labelled as such.
- PPP factors are country averages, before tax, and not a cost-of-living index.
- The website's Federal Reserve series is published weekly, so its newest observations can lag the ECB by a few days. The API daily history uses the daily central-bank feed.
Download and verify
Every history page offers the annual series as a CSV, with the source and observation date stated on the page. If you find a discrepancy, send the pair, year and source value to [email protected] and we will correct it.
Reproduce a figure
The annual series is also a static CSV, so the 2024 GBP/USD average needs no API key. Open /data/fx/gbpusd.csv and read the 2024 row: 1.278136, the same figure shown on the GBP/USD history page.
Trend figures come from the analysis endpoint. This request asks which currencies strengthened most against the Indian rupee since 2015:
curl "https://api.currency-core.com/v1/history/analysis?base=INR&from=2015-01-01&sort=strengthened&limit=1" \
-H "Authorization: Bearer cc_live_your_key" The response below is trimmed to the first result:
{
"base": "INR",
"from": "2015-01-02",
"to": "2026-06-16",
"mode": "movers",
"results": [
{ "currency": "CHF", "changePct": 16.4, "strengthenedPct": 38.1 }
]
} See the /history/analysis documentation for parameters, stats and error codes.
Citing CurrencyCore
Cite both the observation date and the generation date, because the annual files and the live snapshot refresh on different schedules. A ready-to-use citation is:
CurrencyCore. (2026). Currency exchange rate dataset (annual series generated 6 November 2026; latest daily observation 30 October 2026). https://currency-core.com/
Cite the observation date for a specific rate, and the generation date for the dataset as a whole. Cite the underlying series rather than this page when you need a primary source.
Revision history
These dates are read from the data files at build time, not from the date this page is viewed.
| Dataset | Build or snapshot date | Latest observation |
|---|---|---|
| Annual FX series (40 pairs, 1949 to 2026) | Generated 2026-11-06 | 2026-10-30 |
| Current rate snapshot (159 currencies) | Generated 2026-11-06 | Rate date 2026-11-07 |
Each history page and CSV states the source and observation date for that pair.
Data questions
Where do CurrencyCore's exchange rates come from?
Live and recent daily rates are central-bank reference rates aggregated via Frankfurter, with the ECB as the primary EUR source. The website annual series come from the Federal Reserve H.10 release via FRED, while the API daily history uses the same central-bank provider feed. Documented pre-float parities cover GBP and INR. PPP factors come from the IMF PPPEX indicator.
How are annual averages calculated?
The annual average is the arithmetic mean of every daily observation published in that calendar year. The high and low are the most extreme single observations, and the year-end rate is the last observation of the year.
What happens on weekends and holidays?
The last published trading day is carried forward for up to seven days. A request for a Sunday returns Friday's rate, and the response identifies the date of that fixing.
Are cross rates like GBP/INR taken from a market feed?
They are calculated arithmetically from two USD legs: quote per base equals (USD per base) divided by (USD per quote). The result is exact, not estimated, and uses the same daily dates on both legs.
How accurate is the data?
Annual series are spot-checked against a second official source, the ECB reference rates. Small differences are expected because two fixings can be taken at different times of day. The generator also refuses to publish non-positive rates, a high below the low, or an average outside the high-low range.
Can I use these rates for settlement or trading?
No. They are indicative mid-market reference rates. They are suitable for pricing, reporting and analysis, but not for settlement, accounting valuations that require a dealer quote, or trading.