Free lesson · Stochastic calc
Geometric Brownian motion: the model under Black–Scholes
Open interactive lessonPractice calculationsExplore labs
Start with the idea
GBM models proportional price changes: a one-dollar move has a different economic meaning on a $10 asset than on a $1,000 asset. Brownian shocks scale with the square root of elapsed time, which is why drift and random variation enter differently.
Symbols, units & horizon
- S or Sₜ: asset price
- μ: continuous drift per year
- σ: annualised return volatility
- t, T: time in years and horizon
- dt or Δt: small time interval
- W: standard Brownian motion, W_T has variance T
- dW: Brownian increment with variance dt
- Z: standard normal draw, dimensionless
- exp: exponential
- ½σ²: Itô correction to log drift
When and why to use this
Use GBM as a transparent scenario baseline and to understand the assumptions behind basic option prices. It is useful for isolating volatility effects, not for reproducing jumps or volatility clustering.
Black–Scholes assumes the underlying follows
Translate the GBM model into a small time step
- Divide by S: proportional change is . Brownian increments have variance Δt, so write , Z standard normal.
- Euler’s approximate price update is . This approximation can become negative for large shocks, unlike the exact GBM solution.
S=100, μ=.08, σ=.20, Δt=1/252, Z=1: approximate next price=101.2916. Rates and volatility are annualised.
Read it as: over a tiny interval, the price drifts by and jiggles by , where is a normal shock with variance . Both terms scale with , so it is percentage moves that are normal, not dollar moves. The exact solution is
Apply Itô to log price and integrate
- For f(S)=ln S, and . Itô gives .
- Integrate from 0 to T: . Exponentiate to obtain the exact solution.
- Because the median of Wₜ is zero, median price is . Normal exponential expectation gives . Mean and median are different.
S₀=100, μ=.06, σ=.40, T=1 gives median and mean .
Two things to notice. Log returns are normal, so prices are log-normal: right-skewed, never negative. And the drift of the log is , not . That correction is the first appearance of Itô's lemma, and it is why a stock with 8% expected return and 40% vol has a median outcome of .
μ = 10%, σ = 30%, T = 1. The median terminal price, as a percentage of ?
Median = . The mean is . Half of all paths end below 105.6 even though the average is 110.5.
Python implementation
Self-contained teaching example. Python 3.10+; dependencies and input conventions are shown in the code and notation. Run in your own Python environment.
from math import exp, sqrt
def gbm_euler_step(spot, drift, volatility, dt, normal_draw):
return spot*(1+drift*dt+volatility*sqrt(dt)*normal_draw)
def gbm_exact(spot, drift, volatility, horizon, normal_draw):
"""One exact endpoint draw under constant GBM parameters."""
return spot*exp((drift-.5*volatility**2)*horizon
+volatility*sqrt(horizon)*normal_draw)
print(gbm_euler_step(100, .08, .2, 1/252, 1))
print(gbm_exact(100, .08, .2, 1/252, 1))
def gbm_mean_and_median(spot, drift, volatility, horizon):
return spot*exp(drift*horizon), spot*exp((drift-.5*volatility**2)*horizon)
Continue learning
Stochastic Calculus — all lessons- Start with one random step before continuous noise
- Before Itô: random walks, Brownian motion and information
- Itô integration and quadratic variation
- SDEs, Euler–Maruyama and an Ornstein–Uhlenbeck example
- Geometric Brownian motion: the model under Black–Scholes
- Itô's lemma: why gamma exists
- Black–Scholes and delta hedging in production
- Put–call parity and a full Greek P&L budget
Quantitative finance and development glossary · Python resources and libraries · Research sources and limitations