FX & Commodity Almanac

Method & sources

How are the figures on this site sourced and computed?

Exchange rates come from the European Central Bank’s euro reference rates and commodity prices from the World Bank’s monthly Pink Sheet. A scheduled script downloads both, keeps the last good copy if a download fails, and every change, range and volatility figure is computed from those published numbers.

Source 1: ECB euro foreign exchange reference rates

Daily reference rates for 24 currencies against the euro are requested from the ECB Data Portal (dataset EXR, frequency D, series type SP00, variation A) from 1 January 2016. Each value is the number of units of a currency per one euro. The ECB sets the rates around 14:10 CET on TARGET business days and publishes them for information purposes only. Current snapshot: 2,763 fixings, latest 16 Oct 2026, retrieved 16 Oct 2026.

Source 2: World Bank Commodity Price Data (Pink Sheet)

The monthly prices workbook (CMO-Historical-Data-Monthly.xlsx) is located from the World Bank commodity markets page and the “Monthly Prices” sheet is parsed for 22 series from January 2000. Prices are monthly averages in nominal US dollars in the unit stated by the World Bank. The data are licensed CC BY 4.0; series definitions are taken from the workbook’s description sheet. Current snapshot: latest month 2026-09, workbook “Updated on October 02, 2026”, retrieved 16 Oct 2026.

Cross rates

Pairs without the euro are computed as the ratio of two euro rates fixed at the same moment: units of B per unit of A = (B per EUR) ÷ (A per EUR). On 16 Oct 2026: USD/JPY = 177.82 ÷ 1.1253 = 158.020.

Formulas

FigureDefinition
Change (%)(new − old) ÷ old × 100, between the two observations named on the page.
1-year / 5-year changeLatest observation against the last observation on or before the same calendar date one or five years earlier (FX), or the same month a year or five years earlier (commodities).
52-week rangeLowest and highest fixing after the 1-year reference date up to the latest fixing. Range position = (latest − low) ÷ (high − low).
Annualised volatilitySample standard deviation of log changes between consecutive observations × √(observations per year). FX: daily fixings in the window; commodities: 12 per year.
Rank / percentileShare of all observations in the record that are at or below the latest one.
Yearly change (FX)Last fixing of a year against the last fixing of the previous year.
Yearly average (commodities)Simple mean of the monthly averages published for that year; incomplete years are labelled.

The same functions power the percent change calculator and the historical converter, and are checked by automated tests against hand-computed cases.

What we do not do

Refresh and failure handling

A scheduled job runs the refresh, rebuilds the site and runs a publishing check that verifies titles, descriptions, canonical links, structured data and internal links on every page. If either source fails, the previous snapshot is kept and its own retrieval date stays on the page, so a stale figure is never presented as new.