Financial returns exhibit fat tails — extreme moves occur far more often than a Gaussian predicts. Kurtosis > 3 signals leptokurtic behavior. Extreme Value Theory (EVT) models the tail with a Generalized Pareto Distribution (GPD):
How often should a five-standard-deviation down day happen? Under a normal distribution the probability is 2.9 in 10 million — about once every 13,800 years of trading. Under a Student-t with 3 degrees of freedom, scaled to the same volatility, it is 0.16% — roughly once every 2.5 years. Same volatility, a different tail, and a different world.
- The tail shape is hard to estimate: by definition there are few tail observations, and the choice of model (t, GPD threshold) drives the answer.
- Fat tails partly come from changing volatility; scaling returns by a GARCH estimate makes them look much less extreme (McNeil & Frey 2000).
- Kurtosis is a noisy statistic dominated by a handful of days; one crash can double it.
from scipy import stats k = 5 # a five-standard-deviation down day p_normal = stats.norm.cdf(-k) p_fat = stats.t.cdf(-k * np.sqrt(3), df=3) # Student-t with 3 d.o.f., scaled to the same volatility years_normal, years_fat = 1 / (p_normal * 252), 1 / (p_fat * 252) # how often, in trading years
Assumes import numpy as np and import pandas as pd. Each snippet carries its own example numbers; the comments say which are made up or simulated.
- B. Mandelbrot, “The Variation of Certain Speculative Prices”, Journal of Business 36(4), 1963
- R. Cont, “Empirical Properties of Asset Returns: Stylized Facts and Statistical Issues”, Quantitative Finance 1(2), 2001
- A. J. McNeil & R. Frey, “Estimation of Tail-Related Risk Measures for Heteroscedastic Financial Time Series: An Extreme Value Approach”, Journal of Empirical Finance 7(3–4), 2000
Last reviewed October 2026 · How this site checks its content · Report a mistake
- MLOps & Production MLLatency & Throughputp50, p99, batching, and the tradeoffs that define your SLA
- The ToolkitSampling & Class ImbalanceSMOTE, undersampling, class weights — strategies when your classes are nowhere near 50/50
- The ToolkitDistribution ShapeSkewness, kurtosis, QQ plots — is your data normal, and does it matter?
- The ToolkitOutlier DetectionIQR, Z-score, Isolation Forest — finding extreme values and knowing when they're the signal