Options Pricing · Lesson 10 of 11

Binomial Trees

The discrete-time approach to option pricing · 18 min

Before this lesson

Builds on Black-Scholes (Lesson 3); comfortable with basic probability (expected value of a coin-flip-style outcome).

Why Binomial Trees?

Black-Scholes is elegant, but it's also brittle in a specific way: it assumes continuous trading, no price jumps, constant volatility, and — the important one here — European-style exercise, meaning the option can only ever be exercised right at expiration. American options, which can be exercised any time before that, have no closed-form Black-Scholes-style formula at all. Binomial trees fill that gap, and they're also the conceptual foundation nearly every numerical options-pricing method builds on.

The core idea is to trade continuous randomness for something you can actually compute: instead of modeling the stock as continuous Brownian motion, chop time into discrete steps. At each step the stock either moves up by factor u or down by factor d. Take enough steps and this discrete tree converges right back to the same continuous Black-Scholes model — but along the way, at every single node, you get to ask a question Black-Scholes structurally can't answer: would exercising right now beat waiting?

The One-Period Model

Start as simple as possible: one time step of length T. The stock sits at S today and lands at either Su or Sd by expiration. We want to price a call at strike K.

Define:

  • u = the up factor (e.g., u = eσ√T in the Cox-Ross-Rubinstein setup)
  • d = the down factor (e.g., d = 1/u = e−σ√T)
  • Cu = max(Su − K, 0), the option's value if the stock goes up
  • Cd = max(Sd − K, 0), the option's value if it goes down

The option's price today is the expected payoff under the risk-neutral measure, discounted back at the risk-free rate:

C = e−rT · [p · Cu + (1 − p) · Cd]

with the risk-neutral probability p chosen specifically so the stock's expected return works out to exactly the risk-free rate:

p = (erT − d) / (u − d)

Worth being clear about: p is not anyone's real-world estimate of the odds of an up move. It's a constructed probability that makes the math come out to risk-free — the exact same risk-neutral trick from the Black-Scholes lesson, just in discrete form.

The Cox-Ross-Rubinstein (CRR) Parameterization

The standard choice for u and d, from Cox, Ross, and Rubinstein's 1979 paper:

u = eσ√(T/N),   d = e−σ√(T/N) = 1/u

with N the number of steps and Δt = T/N. As N grows toward infinity, this tree converges exactly onto the geometric Brownian motion underlying Black-Scholes — in practice, N = 100 steps already matches Black-Scholes to 3–4 decimal places.

The risk-neutral probability becomes:

p = (erΔt − d) / (u − d)

Multi-Step Backward Induction

With N steps, the stock technically has 2N possible paths — but the tree recombines, since an up-then-down move ends up at the same node as down-then-up, so there are only N+1 distinct terminal prices to worry about:

Sj = S · uj · dN−j, for j = 0, 1, ..., N

From there, the algorithm — backward induction — walks the tree from the future back to today:

  1. Terminal layer: compute the option's value at every one of the N+1 nodes at expiry: VjN = max(Sj − K, 0) for a call.
  2. Backward step: walk back one layer at a time, n = N−1, N−2, ..., 0, computing each node's "continuation value" — the expected, discounted value of holding rather than exercising.
  3. American check: at every node, compare that continuation value against the payoff of exercising right now, and keep whichever is bigger. For a call: Vjn = max(Sjn − K, continuation).
  4. Root: V00 — the value sitting at the very start of the tree — is today's option price.

Step 3 is the whole reason this method exists for American options. At every single node you're explicitly asking "exercise now, or wait?" — a question Black-Scholes has no mechanism to even pose.

When Is Early Exercise Optimal?

Run this analysis enough times and a few consistent patterns fall out:

  • American calls on non-dividend stocks: exercising early is never optimal. An American call on a stock with no dividends is worth exactly the same as its European counterpart — selling the call in the market always beats exercising it, since exercising throws away whatever time value is left.
  • American calls on dividend-paying stocks: here it can actually make sense to exercise right before the ex-dividend date, purely to capture that dividend. Binomial trees handle this case automatically, without any special-casing.
  • American puts: deep in-the-money puts can genuinely be worth exercising early, especially when rates are high — holding onto the put instead of exercising means giving up the interest you'd earn on K in the meantime. Once that forgone interest outweighs the remaining time value, early exercise wins. This is a feature entirely unique to American-style options.
Try it

Click through the lattice below — American vs. European, call vs. put — and watch which nodes choose to exercise early.

Convergence to Black-Scholes

For a European option, with no early-exercise decision to make, the binomial price converges cleanly onto Black-Scholes as N grows. Roughly:

  • N = 10: a rough approximation, roughly 1–2% error
  • N = 50: solidly good, roughly 0.1–0.3% error
  • N = 200: excellent, often accurate to well under a penny

That convergence isn't perfectly smooth, though — it oscillates as N increases, because the tree's odd/even step structure alternately lands the strike exactly on a node or squarely between two nodes. Techniques like "smoothed" binomial trees, or simply averaging results from N and N+1 steps, iron out that oscillation.

Beyond Binomial: Monte Carlo and Finite Difference

For trickier payoffs — barrier options, Asian options, anything with multiple underlying assets — other numerical methods take over where binomial trees start to strain. Monte Carlo simulation runs thousands of simulated price paths and averages the resulting payoffs; it scales gracefully to high-dimensional problems but struggles with American options, since those need you to actually know the optimal exercise boundary in advance. Finite difference methods, like Crank-Nicolson, instead solve the Black-Scholes PDE directly on a grid — fast, highly accurate, and the go-to choice on most real derivatives desks. Every one of these methods, though, borrows its core logic straight from the binomial tree.

Coding ExercisePython · runs in browser
+100 XP
Implement `binomial_european(S, K, T, r, sigma, N, option_type)` — price a European option using an N-step CRR binomial tree.
Write your solution, then run