Methodology

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

DataSourceCadence
Live and recent daily ratesCentral-bank reference rates aggregated via Frankfurter; ECB is the primary EUR sourcePolled hourly; daily fixing
Website annual seriesFederal Reserve H.10 release, via FREDWeekly source release
API daily history (/v1/history)Central-bank provider feed (Frankfurter), seeded into the history storeDaily
Pre-float GBP and INRDocumented Bretton Woods and sterling-area paritiesStatic
PPP conversion factorsIMF 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.

DatasetBuild or snapshot dateLatest 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.

FAQ

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.