Quant Methods · advanced · 7 min
Mean Reversion and Half-Life
Cointegration and Pairs establishes whether a spread is tethered to a mean. This lesson is about the natural next question: how fast does the tether pull? That speed has a single, readable number — the half-life — and Pairs Analysis reports it right beside the spread chart. Understanding it turns "this spread mean-reverts" into "and it takes about this long to do so."

Half-life: the one-line definition
The half-life of mean reversion is the number of bars it takes, on average, for a deviation from the mean to decay by half. If a spread is sitting two standard deviations wide and its half-life is 10 days, then — all else equal, on the historical fit — about half that stretch is expected to be worked off in roughly 10 days, half of what remains in the next 10, and so on. It is the exact same idea as the half-life of a cooling coffee or a decaying isotope, borrowed for a price spread.
Where the number comes from
Visor fits an Ornstein-Uhlenbeck process to the spread. That is a compact mathematical description of a quantity that is constantly nudged away from a mean by noise and constantly pulled back toward it by a restoring force. The strength of that pull is a parameter often written θ, and the half-life follows directly from it:
half-life = ln(2) / θ
In practice θ is estimated by regressing each bar's change in the spread on its level the bar before — a mean-reverting spread falls when it is high and rises when it is low, so that relationship has a negative slope, and the steeper it is, the stronger the pull and the shorter the half-life. You do not need to fit it by hand; the widget does it. What matters is reading the output.
How to read it
- Short half-life (a few bars) — the spread snaps back quickly. Deviations are fleeting; the reverting force is strong.
- Long half-life (many bars, or longer than your holding horizon) — the spread drifts loosely and takes a long time to correct. A "wide" reading may sit wide for weeks.
- Sanity check against the window. A half-life that is a large fraction of the whole sample is barely distinguishable from no mean reversion at all — there simply were not enough full cycles in the data to measure it. Treat a half-life near the length of the window as "not really established" rather than as a slow-but-real tether.
Half-life also gives the z-score its meaning in time. A spread at +2σ with a 5-day half-life and the same spread at +2σ with a 60-day half-life are very different situations, even though the z-score is identical — the first is expected to resolve in days, the second may not resolve inside a horizon you would ever hold.
The honest caveats
- It only means anything if the spread is actually cointegrated. Fit an OU process to a wandering, non-mean-reverting spread and you still get a number back — a meaningless one. Read the half-life only after the ADF verdict says there is a tether to speak of. A half-life on a "Not cointegrated" pair is noise wearing a decimal point.
- It is an estimate, and a noisy one. Half-life is notoriously unstable — small changes in the window or a single regime shift can move it substantially. It is a rough scale ("days" vs "months"), not a precise clock.
- The past does not set the timer. Like everything in this track, the half-life describes how the spread behaved historically. It is not a countdown to a guaranteed reversion, and a tether that held all year can loosen or break — usually right when the spread is widest. Nothing here is a signal to put a trade on; it is a way to read the character of a relationship.
What to read next
- Cointegration and Pairs — establishing the tether the half-life measures.
- Mean Reversion Basics — the same instinct as a tradable idea, tested against the gates.