Nine Centuries of Exchange Rates: What 240 Countries and 900 Years of Data Reveal

A money changer weighing coins at his desk while his wife looks on from a book of hours
The Moneylender and His Wife, Quentin Matsys, 1514

In 1252, Florence minted the gold florin. Within decades it became the dominant trade currency of medieval Europe. Merchants in Bruges, Venice, and Constantinople quoted prices against it. By the 1400s, the florin’s dominance had faded, replaced by the Venetian ducat. Then the Spanish real. Then the Dutch guilder. Then sterling. Then the dollar. Each transition involved devaluations, defaults, and crises that ruined anyone holding the wrong currency at the wrong time.

We have data on all of this. Not estimates. Actual recorded exchange rates, starting from 1106.

I assembled forex-centuries, an open dataset combining 13 sources into a unified collection of exchange rates spanning 920 years and approximately 240 countries. The goal: provide the raw material for studying how currencies behave over centuries, not decades.

#The dataset

SourcePeriodDescription
MEMDB Spufford1106-150013,197 medieval exchange quotations across 521 places
MEMDB Metz1350-180050,559 records from the Lower Rhine region
Clio Infra1500-2013Exchange rates vs GBP and USD, 181 countries
MeasuringWorth1791-202540 currencies vs USD, carefully curated for continuity
Bank of England1791-2016UK millennium dataset
JST Macrohistory1870-201718 advanced economies, 59 macro variables
Sveriges Riksbank1900-202653 SEK bilateral series, 295,000 observations
IRR Regimes1940-2021De facto exchange rate regime classifications, ~190 countries
IMF IFS1955-2025173 currencies, monthly, 158,000 observations
BIS1957-2026Bilateral and effective rates, ~190 economies, 2.66 million rows
World Bank1960-presentOfficial rates, all member countries
Global Macro Database1960-2024243 countries, USD FX and REER
FRED Daily1971-202523 daily currency pairs and 2 USD indices

The longest individual series is the United States at 526 years (1500-2025). The United Kingdom has 236 years of continuous data (1789-2025). The medieval data covers exchange quotations across Florence, Bruges, Venice, London, and hundreds of other cities across Europe, Byzantium, and North Africa.

All derived data uses a consistent quoting convention: foreign currency per 1 USD. The build pipeline normalizes, deduplicates, and cross-validates across sources. Where sources overlap, MeasuringWorth takes priority (carefully curated for continuity), then Clio Infra, then the Global Macro Database.

#What fat tails mean

Before diving into the results, a brief primer on the key concepts. If you have read the companion article on crash detection, you can skip this section.

#Log returns

Throughout this article, all return calculations use log returns (also called continuously compounded returns). If $P_t$ is the exchange rate at time $t$ and $P_{t-1}$ is the rate at the previous period, the log return is:

$$r_t = \ln!\left(\frac{P_t}{P_{t-1}}\right)$$

Log returns are the standard choice for financial analysis because they are additive over time (you can sum daily log returns to get the yearly return) and symmetric (a +10% followed by a -10% move doesn’t leave you back where you started in simple percentage terms, but log returns account for this correctly).

#Excess kurtosis

Kurtosis measures how much of a distribution’s weight sits in the tails versus near the center. A normal (Gaussian) distribution has a kurtosis of 3. Excess kurtosis subtracts that baseline:

$$\text{Excess kurtosis} = \frac{\mathbb{E}!\left[(X - \mu)^4\right]}{\left(\mathbb{E}!\left[(X - \mu)^2\right]\right)^2} - 3$$

where $\mu$ is the mean and $\mathbb{E}$ denotes the expected value. If excess kurtosis is 0, the distribution has Gaussian-like tails. If it is positive, the tails are heavier: extreme events happen more often than a bell curve predicts. An excess kurtosis of 5 means the extreme observations are far more frequent than normal. An excess kurtosis of 4,110, as we will see for Sri Lanka, means the distribution looks nothing like a Gaussian.

#Tail index and power laws

Many financial distributions follow a power law in the tails. The probability of seeing a value larger than $x$ falls as:

$$P(X > x) \sim x^{-\alpha}$$

The exponent $\alpha$ is the tail index. It tells you how heavy the tail is:

We estimate $\alpha$ using the Hill estimator. Sort the $n$ observations in descending order, take the $k$ largest, and compute:

$$\hat{\alpha} = k \left( \sum_{i=1}^{k} \ln \frac{X_{(i)}}{X_{(k)}} \right)^{-1}$$

where $X_{(1)} \geq X_{(2)} \geq \ldots$ are the order statistics. The choice of $k$ matters: too small and the estimate is noisy; too large and you include observations from the body of the distribution. A Hill plot ($\alpha$ versus $k$) helps find the stable region.

#Annualized volatility

Annualized volatility is the standard deviation of returns scaled to one year. If $\sigma_d$ is the standard deviation of daily log returns, the annualized figure is:

$$\sigma_{\text{ann}} = \sigma_d \times \sqrt{252}$$

where 252 is the approximate number of trading days per year. This gives a single number summarizing “how much does this currency move in a typical year.” EUR/USD at 10% annualized volatility means a one-standard-deviation annual move is about 10 cents on the dollar. Venezuela at 380% means the currency can lose most of its value in a single year.

#3-sigma tail ratio

The 3-sigma tail ratio compares how often extreme events actually occur versus how often a Gaussian would predict. Under a normal distribution, returns beyond 3 standard deviations from the mean should happen about 0.27% of the time. If the actual frequency is 1.08%, the tail ratio is 4x. A ratio above 1 means fatter tails than normal; a ratio below 1 means thinner tails (which can happen in pegged currencies that suppress small moves but concentrate risk in huge jumps).

#Daily data (1971-2025)

The central finding from running fatcrash on this data: fat tails are universal across all currencies, all time scales, and all centuries.

Every one of the 23 FRED daily currency pairs has heavier tails than a Gaussian distribution. For most floating pairs, three-sigma events happen about 3 to 6 times more often than a normal distribution predicts. Pegged and tightly managed pairs are a special case: they can show tail ratios below 1 even with extreme kurtosis because daily returns are compressed near zero. Even EUR/USD, the most liquid pair in the world, has excess kurtosis of 2.5 and 4x too many tail events.

The most extreme daily tails:

CurrencyAnn. VolExcess Kurtosis3-sigma Tail Ratio
LKR/USD11.7%4,1102.98x
CNY/USD8.2%3,8460.53x
VEF/USD380.7%2,5600.28x
THB/USD8.7%2795.32x
HKD/USD3.2%2615.09x
KRW/USD10.8%1404.37x

Sri Lanka (LKR) has an excess kurtosis of 4,110. For context, a Gaussian distribution has excess kurtosis of 0. The Student’s t-distribution with 3 degrees of freedom, often used as a “fat-tailed alternative” in finance, has excess kurtosis of infinity (undefined). LKR’s distribution is empirically closer to the Student’s t than to the Gaussian.

Note the paradox in the tail ratio column: CNY and VEF have enormous kurtosis but tail ratios below 1. This happens because these currencies are pegged or managed. Their daily returns are almost always exactly zero (the peg holds), so the standard deviation is very small. The rare days when the peg breaks produce moves that are extreme in absolute terms but may not exceed 3 of those tiny standard deviations as often as you would expect, because the distribution is a spike at zero with a few catastrophic outliers rather than a smooth bell curve. The kurtosis captures this shape; the simple tail ratio can miss it.

#Yearly data (1791-2025)

On yearly timescales, the tails are even more extreme. Using MeasuringWorth data:

CountryYearsExcess KurtosisWorst Year
Mexico23483.7-86%
Austria23449.9-100%
Israel23446.7-100%
Germany23437.8-100%
Peru23436.2-100%
Argentina23419.9-100%
Brazil23413.3-100%
United Kingdom2345.2-33%

Germany’s kurtosis of 37.8 reflects a single year: 1923, when the mark lost effectively all its value. But this is exactly the point. A model that treats 1923 as an outlier to be excluded is a model that doesn’t understand what kind of distribution it is dealing with. In a fat-tailed distribution, the extreme observation is the distribution. Remove it and you are estimating the wrong thing. As Taleb (2020) emphasizes, the sample mean and sample variance of a power-law distribution are dominated by the largest observation. That single observation contains more information about the tail than all the other observations combined.

#Five centuries of tail estimates (1500-2013)

Using fatcrash’s Hill estimator on the Clio Infra data (1500-2013, 138 countries with 50+ years of data):

Tail regimeCountriesPercentage
$\alpha < 2$ (infinite variance)9871%
$\alpha$ 2-4 (fat tails, finite variance)3727%
$\alpha > 4$ (moderate tails)32%

71% of countries have exchange rate distributions where the variance does not converge. The median tail index $\alpha$ across all 138 countries is 1.57. For these currencies, computing a standard deviation is meaningless. The number you get depends on how many observations you have and which ones you happened to include. Add one more observation and the “standard deviation” can double.

This is not a marginal statistical issue. It means the foundational assumption behind Modern Portfolio Theory, CAPM, Black-Scholes, and every VaR model — that returns have a finite, estimable variance — is empirically false for the majority of the world’s currencies.

#The peg paradox

The most counterintuitive finding: currencies with the lowest daily volatility have some of the highest excess kurtosis.

HKD/USD has 3.2% annualized volatility (barely moves) but excess kurtosis of 261. CNY/USD has 8.2% volatility but excess kurtosis of 3,846. Freely floating currencies like GBP/USD, with 10.1% volatility, have excess kurtosis of 5.4.

A peg compresses daily volatility to near zero. The central bank intervenes to keep the rate fixed, absorbing shocks with reserves instead of letting the price adjust. But when the peg breaks — when the central bank runs out of reserves or loses the political will to defend it — the move is catastrophic. The distribution is a spike at zero with rare but enormous outliers. This is exactly the kind of distribution that Value at Risk (VaR) models fail on. VaR estimates the loss you won’t exceed with some high probability (say 99%) on a given day. It says risk is low (because daily moves are tiny). The true risk is high (because the peg can snap at any time, and when it does, the loss is 10 to 50 standard deviations).

The regime data from Ilzetzki, Reinhart, and Rogoff (2019), covering 1940-2021, confirms this pattern:

RegimeN CountriesVolatilityExcess Kurtosis
Free float910.8%0.8
Managed float3356.7%129.3
Crawling peg3153.6%139.7
Peg3759.5%132.9
Freely falling12225.1%16.0

Free-floating currencies have low kurtosis (0.8) because the market absorbs shocks continuously through small daily moves. Pegged and managed currencies suppress daily volatility but accumulate stress that releases in catastrophic jumps, producing kurtosis 160 times higher than free floats.

This is Taleb’s fragility argument in data. Suppressing volatility does not reduce risk. It concentrates risk into rare, large events. The peg creates an illusion of stability that makes the eventual break more damaging, both financially and psychologically, because nobody is positioned for it. Small, frequent adjustments are antifragile: each one releases pressure and provides information. Rigid pegs are fragile: they hide information until the system snaps.

The “freely falling” category is instructive too. These are currencies in hyperinflation or free-fall collapse. They have the highest volatility (225%) but moderate kurtosis (16.0). When a currency is already collapsing every day, there is no pent-up pressure left. The tails are fat but not as extreme as a peg because the large moves are continuous rather than sudden.

#Every currency loses against gold

Using gold price data from DataHub and MeasuringWorth cross-referenced with exchange rates, we computed the cumulative gold purchasing power retained by major currencies.

The British pound has data going back to 1257. For roughly 600 years (1257 to the early 1900s), the pound maintained its gold purchasing power relatively well, fluctuating within a band. The gold standard enforced discipline: because the pound was defined as a fixed weight of gold, debasement required a deliberate political act (reducing the gold content of coins, or suspending convertibility). Then the 20th century happened: two world wars, the end of the gold standard, and continuous inflation. The pound has lost the vast majority of its gold purchasing power since 1900.

Every other currency follows the same arc, just faster. The dollar has lost most of its gold value since 1789. The yen, rupee, and most Latin American currencies show steeper declines. No currency in the dataset has gained gold purchasing power over its full history.

This is not an argument for or against the gold standard. It is an empirical observation. Over multi-century timescales, fiat currencies consistently debase against a fixed-supply asset. The rate of debasement varies enormously. The direction does not. Reinhart and Rogoff (2009) document this pattern systematically across eight centuries: governments debase currencies to finance wars, bail out banks, and cover deficits. The mechanism changes (coin clipping in the medieval period, money printing in the modern era) but the outcome is the same.

The dataset includes monthly gold inflation data for 174 currencies from 1940 to 2025 and yearly data for 243 countries from 1257 to 2025.

#Cross-currency correlations

The daily correlation matrix reveals clear geographic and economic clusters:

For portfolio construction, the implication is that holding multiple European currencies does not diversify FX risk much. Holding a European and an Asian currency does. But the “low correlation” of pegged currencies is misleading. In a global crisis, correlations spike as all pegs come under simultaneous pressure. The correlations that matter most are the ones you observe in the worst 1% of days, not the average.

#Medieval exchange data

The oldest records in the dataset come from the Medieval and Early Modern Data Bank (MEMDB). Spufford’s collection contains 13,197 exchange quotations from 521 places across Europe, Byzantium, and North Africa, from 1106 to 1500. Metz’s collection adds 50,559 records from the Lower Rhine region, from 1350 to 1800, documenting trades in Reichstaler, ducats, marks, and dozens of other coin types.

This data matters for a specific reason. Modern exchange rate theory is built on a sample that starts, at earliest, in 1971 (the end of Bretton Woods). Occasionally researchers go back to 1945 or 1900. That gives us, at best, 125 years of data in a world where currency systems have existed for nearly a millennium.

The medieval data shows that the basic patterns we observe today — fat tails, sudden devaluations, contagion across trading partners — are not artifacts of modern fiat money or floating exchange rates. The Florentine banking crises of the 1340s, when the Bardi and Peruzzi banks collapsed after England defaulted on war debts, caused exchange rate disruptions across Europe that look structurally similar to modern currency crises. Different institutions, same dynamics. The tail behavior is not a feature of the post-1971 monetary regime. It is a feature of exchange rates as such.

Denzel (2010) documents this pattern further in his Handbook of World Exchange Rates, 1590-1914, showing that the early modern period had its own currency crises, debasements, and contagion episodes. The mechanisms of medieval and early modern exchange rate volatility (coin debasement, sovereign default, banking panic) differ from modern ones (central bank policy, capital flows, speculative attacks), but the statistical signature is the same: power-law tails and clustered extremes.

#Why this data matters

Most financial research operates on 20 to 50 years of data. This is a problem for studying events that happen once every 30 to 80 years. If you have 40 years of data and the event you care about has a 2% annual probability, you might see it once, or not at all. Your sample is too short to estimate the tail.

With 500 years of data across 138 countries, we have a much larger sample of extreme events. The Clio Infra data alone contains dozens of hyperinflations, currency collapses, and regime transitions. Combined with the FRED daily data, we can study the same phenomenon at both high frequency (daily) and long duration (centuries).

Three things become clear with this much data:

  1. Standard risk models underestimate tail risk by orders of magnitude. When 71% of countries have infinite-variance exchange rate distributions ($\alpha < 2$), any model that assumes finite variance (CAPM, Black-Scholes, mean-variance optimization) is systematically wrong. It does not give conservative estimates. It gives estimates of the wrong quantity. You cannot approximate a distribution with $\alpha = 1.5$ using a Gaussian any more than you can approximate a Cauchy distribution with a Gaussian. The moments do not exist.

  2. Stability is not safety. Pegged currencies look stable until they are not. Managed currencies look stable until they are not. Low volatility regimes have the highest kurtosis. The absence of small crises is often the precondition for a large one. This pattern — suppressed volatility leading to explosive tail events — appears in every subset of the data: daily, yearly, medieval, modern, developed, developing.

  3. Currency debasement is the norm, not the exception. Over multi-century timescales, every currency in the dataset loses purchasing power against gold. The rate varies enormously (some countries lose 99% in a decade, others take centuries), but the direction is uniform. Any financial plan that assumes a stable currency over a 30-year horizon is making an assumption that contradicts 900 years of data.

#Code and data

The full dataset and build pipeline are open source:

github.com/unbalancedparentheses/forex-centuries

The repository includes:

The companion crash detection toolkit: github.com/unbalancedparentheses/fatcrash

#References

Discuss on X