Skip to main content

Return Kurtosis

Quick Reference

PropertyValue
Dimensionregime
Categoryvolatility
Versionv0.9.0 (Beta)
Output Columnkurtosis

Return kurtosis: rolling_kurtosis(ret, window) - tail heaviness of ret distribution

Formula

rolling_kurt(ret, window)

CDM Inputs

ColumnCDM TableDescription
retcdm_*CDM source table

Parameters

ParameterTypeDefaultDescription
windowinteger [5, 1000]50Window size for kurtosis calculation

Output

Column: kurtosis

Rolling kurtosis of returns

Market Intuition & Trading Rationale

Return kurtosis measures the tail heaviness of the return distribution: rolling_kurt(ret, window). A normal distribution has kurtosis of 3 (excess kurtosis of 0). Financial returns typically exhibit kurtosis > 3 (leptokurtic/fat-tailed) — extreme returns occur far more frequently than a normal distribution would predict. Kurtosis > 5 indicates very heavy tails; kurtosis > 10 indicates extreme tail risk.

Kurtosis is the fourth statistical moment and requires substantial data for reliable estimation (100+ observations recommended). It's sensitive to outliers — a single extreme return can dominate the kurtosis estimate for the entire window. This sensitivity is actually useful: a spike in kurtosis reliably signals that an extreme event occurred, even if the window is long.

Usage Cases

  • Tail risk monitoring: kurtosis > 5 → fat tails are active. Increase hedging, widen stops, reduce leverage. kurtosis > 10 → extreme tail regime — crashes or moonshots are probable.
  • Normality assumption validation: Many statistical models assume normally-distributed returns. Monitor kurtosis — when it deviates significantly from 3, normality-based models (e.g., mean-variance optimization) are unreliable.
  • Regime complement to skewness: Pair with return_skewness. High kurtosis + negative skew = crash-prone (tail risk is asymmetric to the downside). High kurtosis + positive skew = rally-prone (tail risk is asymmetric to the upside). High kurtosis + near-zero skew = volatile but symmetric (two-sided tail risk).

YAML Definition

name: return_kurtosis
description: 'Return kurtosis: rolling_kurtosis(ret, window) - tail heaviness of ret
distribution'
category: volatility
version: v0.9.0 (Beta)
dimension: regime
status: Pre-release
required_inputs:
- ret
output_column: kurtosis
output_description: Rolling kurtosis of returns
parameters:
window:
type: integer
description: Window size for kurtosis calculation
required: false
default: 50
constraints:
min: 5
max: 1000
formula: rolling_kurt(ret, window)