Quant Memo
Core

Binomial Option Pricing

Price an option by chopping time into steps and letting the stock go up or down at each one. Build a tree, work backward from expiry using risk-neutral probabilities, and you get the option's fair value, the most intuitive pricing model there is.

Prerequisites: Options: Calls and Puts, Risk-Neutral Pricing

The binomial model is the friendliest way to price an option, and the one most quant interviews start with. Instead of reaching for stochastic calculus, you pretend the stock can do only one of two things over a short slice of time: go up by some factor, or down by some factor, like a biased coin flip. Stack enough of these slices together into a tree, and you can price almost any option by a simple rule: figure out what the option is worth at the very end, then walk backward through the tree one node at a time.

One step is the whole idea

Start with the simplest case, a single step. The stock is at S0S_0 today. Over the next slice of time it either rises to S0uS_0 u (the "up" state) or falls to S0dS_0 d (the "down" state), where u>1u > 1 and d<1d < 1 are the up and down factors. Our option pays fuf_u in the up state and fdf_d in the down state, whatever its payoff rule dictates. What's it worth now?

The trick is not to guess how likely "up" is in the real world. Instead we use the risk-neutral probability:

p=erΔtdud.p = \frac{e^{r \Delta t} - d}{u - d}.

Here rr is the risk-free rate, Δt\Delta t is the length of the time step, and u,du, d are the up and down factors. This pp is the special probability under which the stock, on average, just earns the risk-free rate, exactly the risk-neutral world where prices are discounted expected payoffs. The option's value today is then that discounted expected payoff:

f=erΔt[pfu+(1p)fd].f = e^{-r \Delta t}\big[\, p\, f_u + (1 - p)\, f_d \,\big].

Price = discounted expected payoff under the risk-neutral probability p=(erΔtd)/(ud)p = (e^{r\Delta t} - d)/(u - d). Compute the payoff at the branches, weight by pp and 1p1-p, and discount one step. That's the entire engine.

Why is pp allowed to ignore the real odds? Because you can replicate the option by holding a mix of the stock and a bond, and no-arbitrage forces the option's price to match that replicating portfolio. When you grind through that algebra, the real-world probability cancels and out pops pp. The model prices off replication, not prediction.

Building the tree

S₀ S₀u S₀d S₀u² S₀ud S₀d² p 1−p
Each node splits into an up and a down move. At expiry (the rightmost column) the payoff is known; you then average back through the tree with weights p and 1 - p, discounting one step at a time, until you reach the value today.

For many steps, the standard Cox-Ross-Rubinstein choice ties the up and down factors to the stock's volatility σ\sigma: set u=eσΔtu = e^{\sigma \sqrt{\Delta t}} and d=1/ud = 1/u. Then you fill in the terminal payoffs and roll backward, applying the one-step formula at every node. The beauty is that the exact same machinery handles American options, at each node you just take the larger of "value of waiting" and "value of exercising now."

Worked example

Take a one-step tree with S0=100S_0 = 100, up factor u=1.1u = 1.1, down factor d=0.9d = 0.9, and, to keep the arithmetic clean, a risk-free rate of r=0r = 0 over the step. Price a call with strike K=100K = 100.

First the risk-neutral probability:

p=e00.91.10.9=10.90.2=0.10.2=0.5.p = \frac{e^{0} - 0.9}{1.1 - 0.9} = \frac{1 - 0.9}{0.2} = \frac{0.1}{0.2} = 0.5.

Now the payoffs. In the up state the stock is 100×1.1=110100 \times 1.1 = 110, so the call pays max(110100,0)=10\max(110 - 100, 0) = 10. In the down state the stock is 100×0.9=90100 \times 0.9 = 90, so the call pays max(90100,0)=0\max(90 - 100, 0) = 0. Discount the expected payoff (with r=0r = 0, no discounting):

f=0.5×10+0.5×0=5.f = 0.5 \times 10 + 0.5 \times 0 = 5.

The call is worth $5. Notice we never asked how likely the stock really is to rise, only the replication-implied p=0.5p = 0.5 mattered. If you'd instead (wrongly) used a real-world 70% chance of the up move, you'd get $7 and be handing out free arbitrage.

The probability pp is a pricing device, not a forecast. It is not your view of where the stock is going. Plugging in real-world odds breaks no-arbitrage and gives a wrong price, the market can trade against you until you're broke.

From tree to Black-Scholes

Here's the satisfying payoff. As you slice time into more and more steps, each tiny and each move governed by σ\sigma, the jagged tree smooths into a bell-shaped distribution of final prices, and the binomial price converges to the Black-Scholes formula. The two models agree in the limit; the tree is just Black-Scholes with the calculus replaced by bookkeeping. That's why practitioners reach for the binomial (or its cousin, finite differences) whenever a closed form doesn't exist, such as early-exercise or dividend-timing problems.

Sanity-check any binomial answer against Put-Call Parity: the call and put you price on the same tree must satisfy CP=S0KerTC - P = S_0 - K e^{-rT}. If they don't, you've mislabelled a payoff or miscomputed pp.

Common pitfalls

  • Using real-world probabilities. The single most common mistake. Only the risk-neutral pp belongs in the pricing formula.
  • Forgetting to discount each step. With a nonzero rate you must multiply by erΔte^{-r\Delta t} at every backward step, not just once at the end.
  • Choosing uu and dd that don't match volatility. For a multi-step tree to converge to the right price, uu and dd have to be calibrated to σ\sigma, arbitrary factors give a tree that prices some model, just not the one you intended.
  • Ignoring early exercise. For American options you must compare with the exercise value at every node, not only at expiry, or you'll underprice the option.

Related concepts

Practice in interviews

Further reading

  • Cox, Ross & Rubinstein (1979), Option Pricing: A Simplified Approach
  • Hull, Options, Futures, and Other Derivatives (Ch. 13)
ShareTwitterLinkedIn