Geometric Brownian Motion is a beautiful wanderer — but it wanders away forever. Its log price has no anchor, no home, no reason to come back. That’s fine for a stock index that genuinely trends. But an enormous slice of finance does the opposite: interest rates, credit spreads, implied volatility, commodity prices, the spread in a pairs trade — these things get yanked back toward some level. Push them away and a restoring force reels them in. And there’s a second thing GBM can’t do: its paths are perfectly continuous, so they glide. Real prices don’t always glide — sometimes they gap, lurching 20% overnight on a crash, an earnings bomb, or a currency de-peg. This lesson installs the two missing pieces: mean reversion (a price with a home) and jumps (a price that can teleport).
Before you read — take a guess
GBM-style processes drift away from their start with no pull back. Which financial quantity is that a BAD fit for?
Mean reversion: the Ornstein–Uhlenbeck process
Analogy. Picture a spring with a weight on the end, or a dog on a leash. Pull the weight far from rest and the spring yanks back hard; nudge it slightly and the pull is gentle. The further you stray, the stronger the tug home. That restoring force, plus a bit of random jostling, is mean reversion.
The mathematical version is the Ornstein–Uhlenbeck (OU) process, written as a stochastic differential equation:
Read it piece by piece — every symbol is intuitive:
- (theta) is the long-run mean: the level is pulled toward — the spring’s resting position.
- is where the process is right now.
- is the gap between home and now. If is above , this is negative, so the drift pushes down; if below, it pushes up. The force always points home.
- (kappa) is the reversion speed — the spring’s stiffness. Big means a fierce, fast pull back; small means a lazy, slow drift home.
- is the same Brownian noise from GBM — the random jostle that keeps knocking off its perch.
The whole thing is a tug-of-war between a deterministic pull toward and random shocks that scatter away. When the noise wins for a moment, strays; the pull then reels it back. The result is a path that bounces around in a stable band instead of marching off to infinity.
Each path starts above the mean line and gets pulled home. Crank κ to the right and the path snaps tightly to θ — the half-life chip shrinks. Drop κ toward zero and it loosens into the faint random walk that just wanders off, never returning. That contrast is the whole point of mean reversion.
Crank the κ slider and watch the path hug the mean line; drop it toward zero and the path loosens into the faint random walk that drifts away and never comes home.
Half-life: how fast it snaps back
Knowing that a process reverts isn’t enough — a trader needs to know how fast. The clean summary number is the half-life: the time it takes for a deviation from to decay halfway back, on average (ignoring new shocks). Because the pull decays the gap exponentially at rate , the half-life is:
Worked example. Suppose a credit spread reverts with per year. Then
A shock takes about 1.4 years to half-decay — sluggish. Now take a fast-reverting quantity with per year:
Same formula, a much tighter leash. Bigger ⇒ shorter half-life ⇒ faster snap-back.
The stationary band
Here is the structural difference from a random walk. A pure random walk’s variance grows without bound — wait long enough and it can be anywhere. The OU process instead settles into a finite long-run variance:
The pull caps how far the noise can drag . With and , the stationary variance is , a standard deviation of around . Double to and the variance halves to — a tighter band. Stronger reversion ⇒ smaller stationary spread. That bounded band, not the drift, is what makes mean-reversion tradeable: you know roughly how wide the rubber band stretches before it snaps back.
Fill in the half-life logic.
Pick the right option for each blank, then check.
The half-life of an OU shock is ln 2 divided by , so a reversion speed means a shorter half-life and a stationary band around the mean.
Quick check: κ = 2 per year — what’s the half-life?
Plug straight in: years, roughly four months. Notice the pattern — doubling halves the half-life. A process with would snap back in about two months; , about one. The half-life is just a friendlier way of saying “this leash is this long.”
Where OU fits — and where it doesn’t
The OU process is the right tool wherever a quantity has a genuine anchor:
- Short-term interest rates. The classic Vasicek model is OU applied to the short rate: a policy-anchored level , a reversion speed , Gaussian shocks. (Its cousin the CIR model adds a tweak so the rate can’t go negative.)
- Credit spreads. Risk premia widen in panics and compress in calm — they breathe around a level rather than trending forever.
- Implied volatility. Vol spikes in a crash, then decays back toward a long-run average. Classic reversion.
- Commodity prices. A marginal-cost-of-production floor and demand ceiling tether prices like oil or natural gas to an anchor.
- The spread in a pairs / stat-arb trade. This is the big one. Take two related stocks; their individual prices trend (GBM-like), but a well-chosen spread between them is stationary and mean-reverting. Trade the spread: short it when stretched high, long it when stretched low, and let the pull do the work.
The pitfall — and it’s a costly one. Do not slap OU onto a single stock’s raw price. An individual equity has no fixed price anchor: a company that compounds value will see its price trend upward indefinitely, and there’s no law dragging it back to last year’s level. Modeling a stock price as mean-reverting will have you “buying the dip” forever as a falling stock keeps falling — you mistook a trend for a deviation. Mean reversion lives in spreads, ratios, and rates — not in raw equity levels.
This is exactly why cointegration matters: two individually trending (non-stationary) series can have a linear combination — their spread — that is stationary and mean-reverting. Find that cointegrating spread and you’ve found something OU genuinely fits, even though neither leg on its own does.
For each quantity, decide: does mean reversion (OU) fit it, or does it trend (GBM-like) with no anchor?
Place each item in the right group.
- The cointegrated spread between two related stocks
- The raw price of a single compounding growth stock
- A credit spread that widens in panics, compresses in calm
- A short-term interest rate near a policy target
- A broad equity index over multiple decades
- Implied volatility decaying back to a long-run level
Jumps: when prices gap
Mean reversion fixes the anchor problem. Jumps fix a different one. Pure diffusion — GBM and OU alike — has continuous paths: between any two instants the price passes through every value in between, never skipping. That smoothness is mathematically convenient and physically false. A pure-diffusion model cannot produce an overnight −20% gap, because to get from 100 to 80 it would have to trade through 99, 98, … and there simply is no trading overnight. Yet crashes, earnings surprises, takeover announcements, and currency de-pegs gap prices all the time.
The jump-diffusion (Merton) model patches this by adding a second engine on top of the diffusion:
Don’t sweat the notation — the structure is simple. The first two terms are ordinary GBM: smooth drift and diffusion. The new third term is the jump engine:
- is a Poisson process with rate (lambda): a clock that fires at random times, times per year on average. Most of the time nothing happens and the price is just smooth GBM.
- When the clock fires, the price is instantly multiplied by a random jump factor (say 0.85 for a −15% gap, or 1.10 for a +10% pop).
So jump-diffusion is “GBM, but every so often the price teleports.” Calm continuous wandering, punctuated by rare, sudden gaps.
Toggle to 'Diffusion only' to see the smooth GBM skeleton — it can drift but never gaps. Flip to 'With jumps' and the same path sprouts sudden cliffs. Raise λ and the gaps arrive more often. The jumps are everything pure diffusion structurally cannot do.
Toggle the chart between diffusion only and with jumps to see exactly what the jump component bolts on: the smooth path is what GBM gives you; the cliffs are what only jumps can produce.
Worked example. With jump rate per year, you expect about 2 jumps in a year (the Poisson mean is just ). The probability of no jump at all in a year is
about 13.5%. So even at two-jumps-a-year, roughly one year in seven passes with no gap at all — and the chance of two or more jumps is , almost 60%. Jumps are rare per-event but, stacked over a year, very much in play.
A jump-diffusion model has jump rate λ = 1 per year. What is the probability of ZERO jumps in a given year?
Why jumps matter: fat tails & gap risk
Adding jumps isn’t cosmetic — it repairs the single biggest lie a Gaussian/GBM model tells about risk.
Fat tails and skew. Stacking rare large jumps on top of smooth diffusion makes extreme moves far more likely than a normal distribution allows, and (if down-jumps are bigger or more frequent than up-jumps) makes the left tail heavier — negative skew. That’s precisely the shape of real returns. It’s also why the volatility smile exists: option markets price in jump/crash risk that the smooth Black–Scholes (pure-GBM) model ignores, so implied vol bends upward at the wings. Jump-diffusion was one of the first models to explain the smile rather than paper over it.
Gap risk breaks hedging. Delta-hedging assumes you can continuously rebalance as the price moves smoothly. But you can’t trade inside a gap — when the price teleports from 100 to 80, there is no 90 at which to adjust. A delta-hedged book that’s perfectly neutral against small moves can take a brutal loss across a jump, because the hedge was calibrated for the smooth world that just stopped existing for a second.
Risk implication. Value-at-Risk, Greeks, and stress numbers computed under pure GBM systematically understate tail and gap risk. The model literally cannot imagine the crash, so it reports a portfolio as safer than it is. Many blow-ups trace back to a thin-tailed model meeting a fat-tailed world.
The pitfall. Jumps fix the tails but cost you estimation pain: a jump model adds parameters — the rate , the jump-size mean, the jump-size spread — and jumps are rare by definition, so a short data sample contains only a handful of them (or none). Calibrating from five years of data when the true rate is one big jump per decade is statistical guesswork. Richer model, hungrier for data, and the data is exactly what rare events refuse to provide.
A risk team prices Value-at-Risk for an options book using a pure-GBM (continuous, normal) model. What's the core danger?
Choosing a model
You now have three building blocks: GBM (trending, continuous), OU (anchored, continuous), and jump-diffusion (gaps on top of either). Picking the right one is mostly about answering two questions: does this quantity have an anchor? and can it gap?
| Asset / quantity | Anchor? | Can it gap? | Suitable process |
|---|---|---|---|
| Equity price (single stock, index) | No — trends | Mildly | GBM |
| Short-term interest rate | Yes — policy level | Rarely | OU (Vasicek / CIR family) |
| Credit spread, implied volatility | Yes — long-run level | Sometimes | OU (add jumps if gap-prone) |
| Stat-arb / pairs spread | Yes — cointegrated mean | No | OU |
| Asset with crash / earnings-gap risk | No | Yes — gaps | Jump-diffusion |
| FX rate under a peg / managed band | Yes — the peg | Yes — de-pegs violently | Jump-diffusion (often + reversion) |
| Path-dependent payoff / nothing fits cleanly | — | — | Simulate it (Monte Carlo) |
Two judgment calls worth internalizing. First, anchor beats everything: if the quantity has a level it returns to, start from OU, not GBM — modeling a spread as a trendless wanderer throws away your entire edge. Second, gaps demand jumps: anything with crash, de-peg, or binary-event risk needs the jump term, or your risk numbers are fiction. And when no clean closed-form process fits — a basket of jumpy, reverting, correlated, path-dependent things — you stop hunting for a formula and simulate, which is what the Monte Carlo toolkit is for.
Fill in the model-selection rules.
Pick the right option for each blank, then check.
If a quantity has a level it returns to, model it with ; if it can teleport overnight on a crash or de-peg, you need ; and a stock price with no fixed anchor is best left as .
Putting it together
GBM walks away forever, but huge swaths of finance — rates, spreads, vol, commodities, pairs spreads — get pulled home. The Ornstein–Uhlenbeck process, , is that spring: a restoring drift toward the long-run mean with stiffness , plus noise. Its half-life says how fast shocks decay, and its finite stationary variance is the bounded band that makes reversion tradeable — but only on spreads, rates, and ratios, never a raw stock price. Pure diffusion can’t gap, so the jump-diffusion (Merton) model bolts a Poisson stream of sudden jumps onto GBM, with . Jumps create the fat tails, skew, and gap risk that smooth models miss — which is why pure-GBM VaR and delta-hedges fail across a crash. Choose by asking anchor? (→ OU) and can it gap? (→ jumps); when nothing fits, simulate.
Big picture
Mean reversion & jumps — the whole map
- Mean Reversion & Jumps
- OU mean reversion
- dX = kappa(theta − X)dt + sigma dW
- theta is the home level, kappa the pull strength
- Spring/leash: farther out, stronger the pull
- Half-life and band
- Half-life = ln 2 / kappa
- Bigger kappa, faster snap-back
- Finite stationary variance sigma squared / (2 kappa)
- Where OU fits
- Rates (Vasicek/CIR), spreads, implied vol
- Commodities, cointegrated pairs spreads
- NOT a raw stock price — no anchor, it trends
- Jump-diffusion (Merton)
- GBM plus a Poisson stream of sudden jumps
- Rate lambda per year; P(no jump) = e to the minus lambda
- Continuous diffusion alone cannot gap
- Why jumps matter
- Fat tails and skew, explains the vol smile
- Delta-hedge fails across a gap you cannot trade
- Pure-GBM VaR understates tail and gap risk
- Choosing a model
- Has an anchor, use OU
- Can gap, add jumps
- Nothing fits, simulate (Monte Carlo)
- OU mean reversion
Recap: mean reversion & jumps
An OU process has reversion speed κ = 0.5 per year. What is the half-life of a deviation from the mean?
Check your answer to continue.
Next up — we put these processes to work, calibrating them to real data and simulating whole portfolios of anchored, jumpy, correlated assets. The building blocks are in place; now we make them earn their keep.