Quant Memo
Advanced

Variance Gamma Model

Instead of a clock that ticks at a constant rate, let trading time itself speed up and slow down randomly — a Brownian motion run on that jittery clock produces the jumps and fat tails a constant-rate model can't.

Prerequisites: Brownian Motion, Black-Scholes Assumptions And Failure Modes, Lévy Processes

Black-Scholes assumes a stock's randomness arrives at a perfectly steady rate: the variance of a return over any interval is exactly proportional to its length, no faster, no slower. Real markets don't trade at a steady rate at all — some days are frantic, some are dead quiet, and news doesn't arrive on a metronome. The Variance Gamma (VG) model builds that unevenness directly into the process: instead of running a Brownian motion on ordinary clock time, it runs the same Brownian motion on a random, jittery clock — and that one change is enough to generate jumps, skew, and fat tails from only three extra parameters.

A stopwatch that speeds up and slows down

Picture a stopwatch that doesn't tick at a fixed rate — it randomly speeds up during frantic bursts of activity and randomly slows down during quiet lulls, though on average it still reads the same total elapsed time as a normal clock. Now run an ordinary, steady random walk, but let it evolve according to that jittery stopwatch instead of the wall clock. Bursts of "fast time" produce clusters of big moves that look like jumps; stretches of "slow time" produce the calm periods in between. That's exactly what Variance Gamma does mathematically.

Xt=θGt+σWGt,GtGamma(tν,ν)X_t = \theta\,G_t + \sigma\,W_{G_t}, \qquad G_t \sim \text{Gamma}\left(\frac{t}{\nu}, \nu\right)

In plain English: WW is ordinary Brownian motion, but instead of running it for tt units of calendar time, it's run for GtG_t units of random trading time, where GtG_t is drawn from a Gamma distribution with mean tt — so on average the clock keeps pace with the calendar, but any particular stretch can run fast or slow. θ\theta adds a drift proportional to the random clock itself (controlling skew — more downside jump risk if θ<0\theta<0), and ν\nu controls how jittery the clock is (the "variance of the gamma clock" — larger ν\nu means more erratic trading time, and therefore fatter tails).

Worked example 1: what the clock looks like. Set t=1t=1 (one year) and ν=0.2\nu=0.2. The gamma clock has mean t=1t=1 and variance νt=0.2\nu t = 0.2, so a typical draw of G1G_1 might land anywhere roughly between 0.40.4 and 1.91.9 about 90% of the time (a gamma distribution with these parameters is right-skewed — most draws cluster a bit below 1, with an occasional much larger draw). A draw of G1=1.9G_1=1.9 means that "year" experienced nearly twice as much trading activity as an average year — the Brownian motion inside gets to unfold for almost double the usual amount of randomness, producing an outsized move with no change to the calendar at all.

wall clock: $t$, steady gamma clock: $G_t$, jittery $W_{G_t}$: Brownian motion run on the jittery clock
Same Brownian motion machinery as Black-Scholes underneath — only the clock it runs on is random, and that alone is enough to produce jumps.

Worked example 2: recovering the ordinary case. As ν0\nu \to 0, the Gamma distribution for GtG_t collapses onto a spike exactly at tt — the clock stops being random and just reads calendar time. Concretely, a Gamma(t/ν,ν)(t/\nu,\nu) distribution has variance νt\nu t, which shrinks to zero as ν0\nu\to0: with ν=0.01\nu=0.01, the clock's standard deviation is only 0.01×1=0.1\sqrt{0.01\times1}=0.1 around a mean of 1, barely different from a fixed clock, and XtX_t converges to ordinary Brownian motion with drift θt\theta t and volatility σt\sigma\sqrt t — plain geometric Brownian motion, recovered as the special case ν=0\nu=0.

Path explorer
13936time →
end (bold path) 87.88spread of ends 70.766 independent paths, same settings

Compare a smooth GBM path to what a VG path looks like: bursts of rapid moves separated by flatter stretches, driven entirely by the random speed of the underlying clock rather than by any change in the calendar-time volatility parameter.

What this means in practice

VG needs only three parameters (σ\sigma, ν\nu, θ\theta) yet produces a genuine implied volatility skew and excess kurtosis without adding a second stochastic-volatility factor the way Heston does, which makes it popular for markets where a Heston-style calibration is overkill but Black-Scholes clearly misprices the tails. Like other tractable jump-and-skew models, VG is priced through its known closed-form characteristic function (see Characteristic Function Pricing) rather than a closed-form density, which doesn't exist for this process.

Don't mistake VG for a jump-diffusion model with a separate jump process bolted onto continuous diffusion, the way Merton's Jump-Diffusion Model works. VG has no separate diffusion component at all — every bit of randomness, large or small, comes from the single time-changed Brownian motion. It's a "pure jump" Lévy process in disguise, not diffusion-plus-jumps.

Variance Gamma replaces the steady clock of ordinary Brownian motion with a random Gamma-distributed clock, so that bursts of fast trading time alone — with no extra jump process — generate the fat tails and skew that Black-Scholes cannot produce.

Related concepts

Practice in interviews

Further reading

  • Madan, Carr & Chang (1998), The Variance Gamma Process and Option Pricing
ShareTwitterLinkedIn