FRM Exam Part I · Binomial Trees
Two-Step and Multi-Step Binomial Trees for Option Pricing
Updated 11 October 2026 · Fact-checked
A multi-step binomial tree splits an option's life into equal periods. In each period the stock moves up by u or down by d. You find the payoffs at expiry, then work backward one step at a time, discounting the risk-neutral expected value at each node, until you reach today's price.
Understand Two-Step and Multi-Step Binomial Trees
A one-step binomial tree gives the stock only two possible prices at expiry. That is too crude. A multi-step tree splits the life of the option into several short periods. In each period the price either multiplies by u (up) or by d (down).
The tree recombines when an up move followed by a down move gives the same price as a down move followed by an up move (S0·u·d = S0·d·u). Because of this, after n steps you have only n + 1 final prices, not 2ⁿ. That keeps the tree small enough to solve by hand.
You value the option by backward induction. Start at expiry, where the option is worth its payoff: max(S − K, 0) for a call and max(K − S, 0) for a put. Then step back one period. At each node, the option value is the discounted risk-neutral expected value of the two values one step ahead. Repeat until you reach the first node.
The probability p is the risk-neutral probability. It is not the real-world chance of an up move. It is the probability that makes the stock grow at the risk-free rate on average. That is why you discount at the risk-free rate and never need the stock's expected return.
For a European option you do not test early exercise, so you can also skip the node-by-node work. Weight each final payoff by its risk-neutral probability, then discount once over the full life. Both methods give the same answer.
Key formulas to remember
- Risk-neutral probability (per step)
- p = (e^(rΔt) − d) ÷ (u − d)
- Use p = ((1 + r) − d) ÷ (u − d) if the question gives a simple per-period rate. Δt is the length of one step in years.
- Cox-Ross-Rubinstein moves
- u = e^(σ√Δt), d = 1 ÷ u
- Use these when the question gives volatility σ instead of u and d. This choice makes the tree recombine.
- Backward induction at a node
- f = e^(−rΔt) × [p × f_up + (1 − p) × f_down]
- Use the same p and the same discount factor at every node.
- Terminal stock prices
- S(j ups, n − j downs) = S0 × u^j × d^(n−j)
- Order of moves does not matter in a recombining tree.
- Two-step European value in one formula
- f = e^(−2rΔt) × [p² × f_uu + 2p(1 − p) × f_ud + (1 − p)² × f_dd]
- The factor 2 on the middle term counts the two paths that reach the middle node.
- Payoffs at expiry
- Call = max(S − K, 0); Put = max(K − S, 0)
- Compute these at every final node before stepping back.
How to solve Two-Step and Multi-Step Binomial Trees questions
Use this method for any European option on a multi-step tree. Write down the tree before you calculate anything.
- 1Note the inputs: S0, K, r, number of steps, Δt, and either u and d or σ. If you are given σ, compute u = e^(σ√Δt) and d = 1 ÷ u.
- 2Compute the risk-neutral probability p = (e^(rΔt) − d) ÷ (u − d). Check that 0 < p < 1. Also work out the discount factor for one step.
- 3Build the stock price tree forward. Multiply by u or d at each step and label every node.
- 4Compute the option payoff at each final node. Use max(S − K, 0) for a call and max(K − S, 0) for a put.
- 5Step back one period at a time. At each node, value = discount factor × [p × value of up node + (1 − p) × value of down node].
- 6Keep going until you reach the first node. That value is today's option price.
- 7Check the answer. A call must be positive and below S0. Put-call parity, C − P = S0 − K × discount factor, is a good check for European options.
Quickest way: One-shot terminal payoff method
When to use it: Use it for European options only, mainly when you need the price and not the intermediate node values. It works best with two or three steps.
- Compute p and the final stock prices.
- Compute the payoff at each final node.
- Weight each payoff by its path probability: p² for uu, 2p(1 − p) for ud, (1 − p)² for dd in a two-step tree. For more steps use binomial coefficients: C(n, j) × p^j × (1 − p)^(n−j).
- Add the weighted payoffs.
- Discount once over the whole life, using the per-step factor raised to the number of steps. Skip this method if the question asks for the option value at an intermediate node or for early exercise.
Common mistakes in Two-Step and Multi-Step Binomial Trees
Using a real-world probability of an up move instead of p.
The question may mention that the stock is expected to rise, and students assume that is the probability to use.
Fix: Always use the risk-neutral p = (e^(rΔt) − d) ÷ (u − d). The real-world probability is not needed to price the option.
Discounting with the annual rate instead of the per-step rate.
Students forget that each step is only Δt long, for example 0.5 years for a one-year, two-step tree.
Fix: Compute the factor e^(−rΔt) or 1 ÷ (1 + r per period) once and use it at every step.
Forgetting the factor 2 on the middle terminal node.
Students write p(1 − p) for the ud node and miss that up-down and down-up are two distinct paths.
Fix: Check that your probabilities sum to 1. For two steps: p² + 2p(1 − p) + (1 − p)² = 1.
Computing the payoff at expiry with the wrong sign or forgetting the max.
Under time pressure, students use S − K for puts or allow negative payoffs.
Fix: Write the payoff formula next to the tree. A payoff is never negative.
Discounting the terminal payoffs only once but then also discounting again at each node.
Students mix the one-shot method with the step-by-step method.
Fix: Pick one method. Step-by-step: discount at each step. One-shot: discount once over the full life.
Using the wrong discount factor when u and d are given for a period, but r is quoted annually.
Students assume the rate and the move size apply to the same period.
Fix: Match the rate to the step length. If the question states u and d per step and a per-step rate, use it as given.
Worked examples
Example 1
A stock trades at $100. Each period it moves up by 10% or down by 10% (u = 1.10, d = 0.90). The risk-free rate is 5% per period, simple per-period compounding. Price a two-period European call with strike $100.
Show the solution
- p = (1.05 − 0.90) ÷ (1.10 − 0.90) = 0.15 ÷ 0.20 = 0.75.
- Final prices: Suu = 100 × 1.1 × 1.1 = 121; Sud = 100 × 1.1 × 0.9 = 99; Sdd = 100 × 0.9 × 0.9 = 81.
- Call payoffs: fuu = 21; fud = max(99 − 100, 0) = 0; fdd = 0.
- Up node: fu = [0.75 × 21 + 0.25 × 0] ÷ 1.05 = 15.75 ÷ 1.05 = 15.00.
- Down node: fd = [0.75 × 0 + 0.25 × 0] ÷ 1.05 = 0.
- Root: f0 = [0.75 × 15 + 0.25 × 0] ÷ 1.05 = 11.25 ÷ 1.05 = 10.7143.
- Check with the one-shot method: 0.75² × 21 = 11.8125; 11.8125 ÷ 1.05² = 11.8125 ÷ 1.1025 = 10.7143.
Answer: The call is worth about $10.71.
Example 2
Using the same tree and rates, price the two-period European put with strike $100. Then confirm your answer with put-call parity.
Show the solution
- p = 0.75 and the final prices are 121, 99 and 81, as before.
- Put payoffs: fuu = max(100 − 121, 0) = 0; fud = max(100 − 99, 0) = 1; fdd = max(100 − 81, 0) = 19.
- Up node: fu = [0.75 × 0 + 0.25 × 1] ÷ 1.05 = 0.25 ÷ 1.05 = 0.2381.
- Down node: fd = [0.75 × 1 + 0.25 × 19] ÷ 1.05 = 5.50 ÷ 1.05 = 5.2381.
- Root: f0 = [0.75 × 0.2381 + 0.25 × 5.2381] ÷ 1.05 = (0.1786 + 1.3095) ÷ 1.05 = 1.4881 ÷ 1.05 = 1.4172.
- Parity check: C − P = 10.7143 − 1.4172 = 9.2971. S0 − K ÷ 1.05² = 100 − 100 ÷ 1.1025 = 100 − 90.7029 = 9.2971. The two sides match.
Answer: The put is worth about $1.42.
Exam tips
- Most questions use two steps. Write the tree on your scratch pad first, then fill in payoffs, then step back. Skipping the picture causes most errors.
- Check p is between 0 and 1 before you go on. If it is not, you have used the wrong rate, step length or u and d.
- If the question asks for the value at an intermediate node, use backward induction. The one-shot method will not give it.
- Use put-call parity as a quick check on a European call or put you have just priced.
- Read whether the rate is per step or per year, and whether it is continuously or simply compounded. This choice changes p and the discount factor.
Practice questions from Binomial Trees
- A stock has an annual volatility of 30%. An analyst builds a Cox-Ross-Rubinstein binomial tree with time steps of 0.25 years. What is the up…
- A stock is at USD 40 and in six months will be USD 44 or USD 36. A six-month European call has a strike of USD 40, and the risk-free rate is…
- A stock is priced at USD 100. In one year it will be either USD 120 or USD 80. The continuously compounded risk-free rate is 5%. Using risk-…
- A stock is modelled on a one-step binomial tree with an up factor of 1.25 and a down factor of 0.80. The gross risk-free return over the ste…
- A stock trades at 50 and in one period will move to 60 or 40. A European put with strike 48 expires at the end of the period. What is the pu…
Two-Step and Multi-Step Binomial Trees: frequently asked questions
What is a recombining binomial tree?
It is a tree where an up move followed by a down move gives the same stock price as a down move followed by an up move. This means there are only n + 1 distinct final prices after n steps. It keeps the calculation manageable.
Why do we discount at the risk-free rate in a binomial tree?
The option can be replicated with the stock and a risk-free loan. Because of this, its price does not depend on investors' risk preferences. You can price it as if the stock grows at the risk-free rate, using the risk-neutral probability p, and discount at the risk-free rate.
How do I price a European option on a three-step tree?
Build the stock tree, compute payoffs at the four final nodes, then step back three times. Or use the one-shot method with binomial weights: C(3, j) × p^j × (1 − p)^(3−j) for j up moves, then discount over the full life.
Do I need the stock's expected return to use a binomial tree?
No. The risk-neutral probability replaces it. The inputs you need are S0, K, r, the step length and either u and d or the volatility.