Get started

Measuring Kurtosis in Trading Returns and Estimating How Fat Your Tails Really Are

Everyone says crypto has fat tails. Here is how to actually compute excess kurtosis on a return sample, compare it to normal, and see why your risk sizing is understating the extremes.

Someone will tell you crypto has fat tails at least once a week, usually right after a day that ruined them. And they are correct, mostly. The part I find more useful is putting a number on it, because once you do, the number quietly tells you that a lot of your risk math is running on a distribution that does not exist.

The distribution people assume, whether they say so or not, is the normal one. It is the one baked into standard deviation, into most position sizing formulas, into the little mental model where a three-sigma day is a once-in-a-lifetime thing. Kurtosis is the tool that measures how badly returns violate that assumption. It looks at the fourth moment of your data, which is a fancy way of saying it weights the far-out observations very heavily, so it is sensitive to exactly the days you care about.

What kurtosis actually measures

Variance uses squared deviations from the mean. Kurtosis uses those deviations raised to the fourth power. Because you are raising to the fourth, a return that sits five deviations out contributes enormously more than one that sits at one deviation. So kurtosis is essentially a measure of how much of your total dispersion is coming from rare, large moves rather than from the ordinary chop in the middle.

A perfectly normal distribution has a kurtosis of 3. That 3 is the baseline, the amount of tail weight a bell curve demands just to be a bell curve. Because carrying around that 3 gets annoying, people subtract it and talk about excess kurtosis instead. Excess kurtosis of 0 means normal. Positive means fatter tails than normal, more mass out at the extremes. Negative means thinner tails, which almost never shows up in returns and is not really your problem.

The recipe is not complicated. Take your return series. Subtract the mean from each value. Raise each to the fourth power and average them. Divide by the square of the variance. Subtract 3. That final number is your excess kurtosis, and for most crypto and equity return samples it comes back well above zero, often a lot above.

Running it on a real sample

You do not need anything heavy. If you have a column of daily returns, most stats libraries give you kurtosis in one line, and by default many of them already return the excess version, so read the docs before you get confused about whether to subtract 3 yourself. Here is the workflow I actually use.

  1. Pull a clean return series. Log returns are fine, simple returns are fine, just do not mix them and do not leave gaps stitched together as if they were consecutive days.
  2. Compute the standard deviation on the same sample, because you will want to compare the two pictures side by side.
  3. Compute excess kurtosis. Note whether your function returns excess or raw, since a value of 3 and a value of 0 mean the same thing depending on the convention.
  4. Count how many days in your sample exceeded three standard deviations, then ask how many a normal distribution would have predicted over that many observations.

That last step is where it gets real. Under a normal distribution, a move past three standard deviations is roughly a once-in-several-hundred-days event, and a move past four is rarer still by orders of magnitude. When you actually count them in a crypto sample, you tend to find several three-sigma days where the bell curve promised you barely one, and you find four and five-sigma days that the normal model says should essentially never happen. High excess kurtosis is the compressed summary of that mismatch.

Why this quietly breaks your risk sizing

Here is the practical part, and it is the reason I bother computing this at all. Most position sizing leans on standard deviation. You estimate volatility, you size so that a normal-ish bad day costs you an amount you can stomach, and you move on. The problem is that standard deviation is the right ruler only if the tails are normal. When kurtosis is high, the same standard deviation is hiding a much uglier shape. Your typical day is calmer than the volatility number suggests, and your worst day is far worse. The middle got quieter and the edges got meaner, and the single volatility figure averages those two lies into something that looks reasonable.

So a risk budget that feels conservative under a normal assumption can be quietly aggressive in reality. The three-sigma loss you sized around is not a tail event in a fat-tailed series, it is a Tuesday that shows up a few times a year. And because kurtosis rises exactly when correlations spike and everything moves together, the fat-tailed day is usually the day your supposedly diversified book stops being diversified.

A few habits that help once you have the number in front of you.

  • Stop treating standard deviation as your only risk ruler on any asset with meaningfully positive excess kurtosis. Pair it with a direct look at your realized worst days.
  • Size against a plausible extreme move, not against one standard deviation. If your sample throws four and five-sigma days, your worst-case planning should assume they arrive, because they will.
  • Recompute kurtosis on rolling windows. It is not stable. It climbs going into stress and that climb is often visible before the worst day, not only after.
  • Be honest about sample size. Kurtosis is dominated by a handful of extreme observations, so a short window can read low simply because the big day has not happened yet. A calm reading is not proof of thin tails, it can just mean you have not sampled the tail.

That last failure mode is the one that catches people. You run the number over a quiet stretch, it comes back modest, and you conclude the asset is tamer than its reputation. What you have really measured is that nothing extreme happened in your window, which is a statement about your luck, not about the distribution. This is part of why we surface realized tail behavior alongside the smooth volatility figures inside Blockcircle, so the calm reading and the ugly reading sit next to each other instead of one hiding the other.

None of this makes kurtosis a forecast. A high reading does not tell you when the bad day comes or how big it will be. What it does is strip away the comfortable fiction that your returns are normal and your three-sigma losses are once-in-a-career. Compute it, compare it against the 3 a normal distribution demands, and let the gap between them set how much respect you give your own worst case.

WRITTEN BY
Blockcircle Team

Financial market intelligence covering crypto, stocks, commodities, precious metals, and prediction markets.