Skip to content

CFA Level II Exam · Valuation of Contingent Claims

Binomial Interest Rate Tree: Valuing Caps, Floors and Callable Bonds

Updated 7 October 2026 · Fact-checked

A binomial interest rate tree maps possible future one-period rates, each with a 50% chance of moving up or down, calibrated so it reprices the benchmark curve. To value an option or bond, start at maturity, apply the payoff or exercise rule at each node, then discount back node by node at that node's rate.

Understand Binomial Models for Interest Rate Options

A binomial interest rate tree is a picture of how the one-period rate could move over time. From each node, the rate goes to an upper node or a lower node. In the CFA model each move has a risk-neutral probability of 50%. The tree is built so that it prices the benchmark bonds exactly. That is what makes it arbitrage-free.

The rates are lognormal. At any date, adjacent rates differ by a fixed ratio: the higher rate equals the lower rate multiplied by e^(2σ), where σ is the assumed interest rate volatility. Higher σ spreads the nodes further apart. The tree does not forecast rates. It only gives a consistent set of paths for valuing cash flows that depend on rates.

To value anything, you use backward induction. Start at the final date, where the cash flows or option payoffs are known. Move one step back. At each node, take the average of the two possible next values (plus any coupon paid then), and discount it at that node's one-period rate. Repeat until you reach time 0.

Options fit in by changing the value at a node. For a callable bond, the issuer will call if the calculated value is above the call price, so the node value is the lower of the two. For a putable bond, the holder will put if the calculated value is below the put price, so the node value is the higher of the two. For caps and floors, you value each caplet or floorlet on its own and add them. A caplet's payoff is set at the reset date but paid one period later, so you discount it once at the node's rate.

The value of an embedded option is the difference between the option-free bond and the bond with the option. Call option value = straight bond − callable bond. Put option value = putable bond − straight bond.

Key formulas to remember

Adjacent rates in the tree
Upper rate = Lower rate × e^(2σ)
Applies to two adjacent nodes at the same date. σ is the annual volatility assumption, and each period is treated as one year here.
Backward induction at a node
V = 0.5 × [(V_up + C) ÷ (1 + i)] + 0.5 × [(V_down + C) ÷ (1 + i)]
V_up and V_down are next-period node values, C is the coupon paid at the next date, and i is the one-period rate at the node you are valuing. Use the rate at this node, not at the next ones.
Callable bond node value
Node value = min(calculated value, call price)
Apply on each call date at each node, using the value before adding that date's coupon. The issuer calls when the calculated value is above the call price.
Putable bond node value
Node value = max(calculated value, put price)
Apply on each put date at each node. The holder puts when the calculated value is below the put price.
Embedded option values
Call value = Straight − Callable; Put value = Putable − Straight
Compute both bonds on the same tree. Mixing trees or rates gives the wrong option value.
Caplet and floorlet payoffs
Caplet = notional × max(0, i − strike); Floorlet = notional × max(0, strike − i)
The rate i is the reset-date rate. Payment is made one period later, so discount the payoff by (1 + i) at that node. Cap value = sum of caplets. Floor value = sum of floorlets.

How to solve Binomial Models for Interest Rate Options questions

Use this routine for any tree question. Most marks are lost by skipping a step or using the wrong rate, so write the tree on your scratch pad.

  1. 1Read the vignette and list the tree: the rate at each node, the coupon, the maturity, any call or put dates and prices, or the cap or floor strike and notional.
  2. 2Draw the tree and label each node with its one-period rate. Check whether a given rate is for the node you are valuing.
  3. 3Write the terminal values. For a bond this is par plus the final coupon. For a caplet or floorlet this is the payoff at each node, at the date the rate is set.
  4. 4Step back one date. At each node, average the two next values (adding the coupon for the bond), then divide by 1 plus that node's rate.
  5. 5At each call or put date, adjust the value: min with the call price, or max with the put price. For caps and floors, treat the payoff as paid one period after reset and discount it once at the node's rate.
  6. 6Continue to time 0. Do the same for each caplet or floorlet separately if you are valuing a cap or floor, then sum the values.
  7. 7If asked for the option value, subtract the two bond values. If asked for effective duration or OAS, use the values you have found without rebuilding the tree.

Quickest way: Node-by-node scratch pad method

When to use it: Use when the vignette gives the full tree and the question asks for a value at a node or at time 0. Do not rebuild the tree unless the question asks you to.

  1. Copy the tree as columns of dates and write the rate in each node.
  2. Fill the last column first. Add coupons as you move back, not after.
  3. Use the calculator memory to keep unrounded values and round only the final answer.
  4. Mark the call or put test next to the node so you do not forget it.
  5. Check the answer: a callable bond should be worth no more than the straight bond, and a putable bond no less.

Common mistakes in Binomial Models for Interest Rate Options

  • Discounting at the wrong rate.

    The tree shows many rates, and students pick the rate from the later date instead of the node they are valuing.

    Fix: Each node's value is discounted at the rate shown at that node. Label rates on your drawing before you start.

  • Forgetting the coupon in backward induction.

    Students average the two next values and discount, but skip the coupon paid at that date.

    Fix: Add the coupon to each next value inside the brackets, then average and discount. Keep the node value itself ex-coupon.

  • Applying the call price to a value that includes the coupon.

    The call test and the coupon addition happen at the same date, so the order gets mixed up.

    Fix: Compare the calculated value (before the coupon at that date) with the call price. Only the bond value after the test goes back to the earlier node, where the coupon is added again.

  • Discounting a caplet payoff incorrectly.

    Caps pay in arrears. Students either use the payoff on the reset date or discount it by the wrong rate.

    Fix: Compute the payoff at the node where the rate is set, then divide by 1 plus that node's rate, then continue backward as usual.

  • Using min and max the wrong way round.

    Students memorise the words without thinking about who benefits from exercise.

    Fix: Callable: the issuer wants the lower value, so use min. Putable: the holder wants the higher value, so use max.

  • Treating a cap as a single option.

    The cap is quoted as one price, so students try to value it with one payoff.

    Fix: Break the cap into caplets, one for each reset date. Value each one on the tree, then add them.

Worked examples

Example 1

Vignette: An analyst uses a one-year rate tree. Today's one-year rate is 3.00%. Next year the rate is either 4.40% (up node) or 2.60% (down node), each with probability 50%. She values a caplet on the one-year rate with strike 3.50% and notional 10,000,000. The rate is set at time 1 and the payment is made at time 2. Q1: What is the caplet payoff at time 2 if the rate is 4.40%? Q2: What is the caplet value at the up node at time 1? Q3: What is the caplet value today?

Show the solution
  1. Q1: Payoff = 10,000,000 × max(0, 4.40% − 3.50%) = 10,000,000 × 0.90% = 90,000.
  2. In the down state the rate is 2.60%, below the strike, so the payoff is 0.
  3. Q2: The payoff is paid at time 2, so discount it at the up-node rate: 90,000 ÷ 1.044 = 86,206.90.
  4. The down node value is 0 ÷ 1.026 = 0.
  5. Q3: Average the two node values: 0.5 × 86,206.90 + 0.5 × 0 = 43,103.45.
  6. Discount at today's rate: 43,103.45 ÷ 1.03 = 41,848.00 (approximately).

Answer: Q1: 90,000. Q2: about 86,206.90. Q3: about 41,848.

Example 2

Vignette: A two-year bond pays a 5% annual coupon on a par value of 100. The one-year rate is 3.00% today. At time 1 the rate is 4.50% (up node) or 2.50% (down node), each with probability 50%. The bond is callable at 100 at time 1, immediately after the time 1 coupon. Q1: What is the value of the bond at the up and down nodes at time 1 if it is option-free? Q2: What is the value of the callable bond today? Q3: What is the value of the embedded call option?

Show the solution
  1. Q1: At time 1 the remaining cash flow is 105 at time 2. Up node: 105 ÷ 1.045 = 100.4785. Down node: 105 ÷ 1.025 = 102.4390.
  2. Straight bond today: add the 5 coupon at time 1 to each value, giving 105.4785 and 107.4390. The average is 106.4587. Divide by 1.03 to get 103.3580.
  3. Q2: Apply the call test at time 1. Up node: min(100.4785, 100) = 100. Down node: min(102.4390, 100) = 100. The bond is called in both states.
  4. Callable bond today: add the 5 coupon to each node value, giving 105 in both states. The average is 105. Divide by 1.03 to get 101.9417.
  5. Q3: Call option value = straight bond − callable bond = 103.3580 − 101.9417 = 1.4163.

Answer: Q1: 100.48 (up) and 102.44 (down). Q2: about 101.94. Q3: about 1.416 per 100 par.

Exam tips

  • Look for which rate the question gives at each node. The data is often in an exhibit, and the text may only give the strike or call price.
  • Check the order of the coupon and the call test. Read the vignette for whether the call is immediately after or before the coupon date.
  • For caps and floors, always check the payment date. Payment one period after reset means one discount at the reset-node rate.
  • Use a sanity check on your answer: a callable bond should be worth no more than the straight bond, and a call option value cannot be negative.
  • Do not spend time rebuilding the tree. Most questions give it, and the marks are for applying the model.

Binomial Models for Interest Rate Options in other exams

The same ground in other exams, if you are preparing for more than one or want another angle on it.

Binomial Models for Interest Rate Options: frequently asked questions

How do you value a caplet using a binomial tree?

Compute the payoff at each node on the reset date as notional × max(0, rate − strike). Discount it by one period at that node's rate, since the payment comes one period later. Then roll back through the tree, averaging and discounting at each node, to get today's value.

What is backward induction in an interest rate tree?

It is valuing from the end of the tree to the start. You begin with the known final cash flows, then at each earlier node take the average of the two next values plus any coupon, and discount at that node's rate. Options are handled by changing the node value on the way back.

How do you value a callable bond with an interest rate tree?

Build the tree and discount cash flows by backward induction. At each call date, replace the calculated node value with the call price if the call price is lower. The value you reach at time 0 is the callable bond value. The call option value is the straight bond value minus this.

Why does the tree use 50% probabilities?

The probabilities are risk-neutral, and the model is built around them. The up and down rates are then chosen so that the tree reprices the benchmark bonds. The probabilities are not real-world forecasts.