Trading Dev AcademyFree quant education

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

dS=μSdt+σSdW
Stochastic model assumption + discretisation

Translate the GBM model into a small time step

  1. Divide dS=μSdt+σSdW by S: proportional change is dSS=μdt+σdW. Brownian increments have variance Δt, so write ΔW=ΔtZ, Z standard normal.
  2. Euler’s approximate price update is St+Δt≈St[1+μΔt+σΔtZ]. This approximation can become negative for large shocks, unlike the exact GBM solution.
Work it by hand

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 μSdt and jiggles by σSdW, where dW is a normal shock with variance dt. Both terms scale with S, so it is percentage moves that are normal, not dollar moves. The exact solution is

ST=S0exp⁡[(μ−12σ2)T+σWT]
Itô calculus + exponential algebra

Apply Itô to log price and integrate

  1. For f(S)=ln S, f′=1S and f′′=−1S2. Itô gives dln⁡S=(μ−σ22)dt+σdW.
  2. Integrate from 0 to T: ln⁡(STS0)=(μ−σ22)T+σWT. Exponentiate to obtain the exact solution.
  3. Because the median of Wₜ is zero, median price is S0e(μ−σ22)T. Normal exponential expectation gives E[ST]=S0eμT. Mean and median are different.
Work it by hand

S₀=100, μ=.06, σ=.40, T=1 gives median 100e−.02=98.02 and mean 100e.06=106.18.

Two things to notice. Log returns are normal, so prices are log-normal: right-skewed, never negative. And the drift of the log is μ−12σ2, 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 8%−8%=0.

μ = 10%, σ = 30%, T = 1. The median terminal price, as a percentage of S0?

Median = exp⁡(μ−σ22)=exp⁡(0.10−0.045)=exp⁡(0.055)=1.056. The mean is exp⁡(0.10)=1.105. 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
  1. Start with one random step before continuous noise
  2. Before Itô: random walks, Brownian motion and information
  3. Itô integration and quadratic variation
  4. SDEs, Euler–Maruyama and an Ornstein–Uhlenbeck example
  5. Geometric Brownian motion: the model under Black–Scholes
  6. Itô's lemma: why gamma exists
  7. Black–Scholes and delta hedging in production
  8. Put–call parity and a full Greek P&L budget

Quantitative finance and development glossary · Python resources and libraries · Research sources and limitations