FRM Exam Part II · Arbitrage Pricing with Term Structure Models
Pricing Interest Rate Derivatives on Trees
Updated 11 October 2026 · Fact-checked
Pricing interest rate derivatives on a tree means building a binomial tree of short rates, writing the derivative's payoff at each final node, then working backward. At each node, value = [0.5 × (up value + down value)] ÷ (1 + r), with r the rate at that node. Add any cash flow paid at that node.
Understand Pricing Interest Rate Derivatives on Trees
A derivative on a bond or rate has a payoff that depends on future interest rates. A binomial tree models that. Each period the short rate moves up or down. Each path has a rate at each node, and the tree is built so it prices today's zero-coupon bonds correctly.
Pricing uses risk-neutral valuation. You do not need real-world probabilities. In the standard exam tree, the risk-neutral probability of each move is 0.5, and you discount at the short rate at the node where the cash flow is valued. The same tree that prices the bond prices the option, so there is no arbitrage between them.
You work in two stages. First, build the bond price tree by backward induction from the face value. Second, apply the derivative's payoff to that tree, and discount backward again. For a European option, the payoff appears only at expiry. For an American option, you compare early exercise with the continuation value at every node.
Caps, floors and swaps are strings of cash flows. A cap is a set of caplets, each a call on a rate. A floor is a set of floorlets, each a put on a rate. A swap can be valued as the sum of its period payments, each valued on the tree. A caplet or swap payment is usually set at the start of a period and paid at the end. So the payoff at a node is known at that node's rate, but the cash flow arrives one period later. Discount it once at that node's rate.
Key formulas to remember
- Backward induction (no cash flow)
- V(node) = [0.5 × V(up) + 0.5 × V(down)] ÷ (1 + r(node))
- Assumes risk-neutral probability of 0.5 and one-period compounding at the node's rate. Use the period length if not annual.
- Backward induction with coupon or payment
- V(node) = [0.5 × (V(up) + C) + 0.5 × (V(down) + C)] ÷ (1 + r(node))
- C is the cash flow paid at the end of the period. Add it to both successor values before discounting.
- Zero-coupon bond at maturity
- P = face value at maturity
- Start every bond tree from the face value at the final date.
- European call on a bond at expiry
- max(Bond price − K, 0)
- K is the strike. Use the bond price at the expiry nodes, with the right price convention (clean or dirty).
- Caplet payoff
- Notional × max(r − K, 0) × accrual period
- Rate r is set at the start of the period. The payment is made at the end, so discount it once more.
- Floorlet payoff
- Notional × max(K − r, 0) × accrual period
- Same timing as a caplet. A floor is the sum of floorlets.
- Swap payment to the fixed-rate payer
- Notional × (r − fixed rate) × accrual period
- Positive when the floating rate is above the fixed rate. Can be negative, so there is no max.
- Cap–floor–swap parity
- Cap − Floor = Swap value to the fixed payer
- Holds when cap, floor and swap share the same strike, fixed rate, dates and notional.
- American option rule
- V(node) = max(exercise value, continuation value)
- Check this at every node before expiry.
How to solve Pricing Interest Rate Derivatives on Trees questions
Use the same routine for bond options, caps, floors and swaps. Keep the tree layout neat and label each node.
- 1Write the short-rate tree with the rate at each node. Note the time step and the probabilities (usually 0.5 each).
- 2If the derivative is on a bond, build the bond price tree. Start at maturity with face value and any final coupon. Work back using the backward induction formula.
- 3Identify the payoff at each node of interest. For an option, use the exercise date. For a caplet or swap leg, use the reset node and remember when it is paid.
- 4Write the payoff at the final nodes of the derivative. Use max(…, 0) for options, caps and floors. Do not use it for swaps.
- 5Discount backward node by node. Use the rate at each node. Add cash flows at the node where they are received.
- 6For American options, compare exercise value with continuation value at each node and take the larger.
- 7For caps, floors and swaps, value each period separately, then add the pieces. Check with parity if the data allows.
- 8Sanity check: option values are never negative, and a cap should be worth more with higher volatility.
Quickest way: Value the payoff at each node, then average and discount
When to use it: Use it for one- or two-period trees where the question asks for a single value today.
- Skip the full bond tree if the option expires at the first step. Take the bond price at the up and down nodes directly from the question.
- Compute the payoff at each node.
- Take the 0.5/0.5 average of the payoffs.
- Discount once at today's rate.
- For a caplet paid one period after reset, divide the payoff by (1 + r) at the reset node first, then continue backward.
- For swaps, price each period's payment separately and add. Do not rebuild the whole tree.
Common mistakes in Pricing Interest Rate Derivatives on Trees
Discounting the final payoff at today's rate in one go.
It looks like the standard present value formula.
Fix: Discount back one step at a time using the rate at each node. Rates differ across nodes.
Forgetting that a caplet is paid one period after the rate is set.
The payoff is calculated at the reset node, so it feels final.
Fix: Divide the payoff by (1 + r) at that node. Then continue backward from there.
Applying max(…, 0) to a swap payment.
Caps and floors use it, so students apply it everywhere.
Fix: A swap payment can be negative. Use the signed difference. Only options have a floor at zero.
Using the wrong bond price for the option payoff.
The bond is priced at the wrong date, or the coupon paid at expiry is mixed in or left out.
Fix: Read the question for clean or dirty price. Make sure the bond tree is valued at the option's expiry date.
Skipping the early exercise check for American options.
The European routine feels complete.
Fix: At every node before expiry take the larger of exercise and continuation value. Early exercise can raise the value.
Adding coupons after discounting rather than before.
Students treat the coupon as received at the start of the period.
Fix: A coupon paid at the end of a period is added to the successor values, then the sum is discounted.
Worked examples
Example 1
The underlying is a two-year zero-coupon bond with face value 100. Today's rate is 5%. At t = 1 the rate is 6% (up) or 4% (down), each with risk-neutral probability 0.5. Find the value of a European call with strike 96 expiring at t = 1.
Show the solution
- At t = 1 the two-year zero has one year left. Up node price = 100 ÷ 1.06 = 94.3396.
- Down node price = 100 ÷ 1.04 = 96.1538.
- Call payoff in the up node = max(94.3396 − 96, 0) = 0.
- Call payoff in the down node = max(96.1538 − 96, 0) = 0.1538.
- Average payoff = 0.5 × 0 + 0.5 × 0.1538 = 0.0769.
- Discount at today's rate of 5%: 0.0769 ÷ 1.05 = 0.0733 (using unrounded values, 0.076923 ÷ 1.05 = 0.07326).
Answer: About 0.0733 per 100 face value.
Example 2
Use the same tree: rates 5% today, then 6% or 4% at t = 1, probabilities 0.5. A caplet has notional ₹1,00,00,000 and strike 5%. The rate is set at t = 1 and the payment is made at t = 2. Find its value today.
Show the solution
- Up node payoff = ₹1,00,00,000 × max(6% − 5%, 0) = ₹1,00,000.
- Down node payoff = ₹1,00,00,000 × max(4% − 5%, 0) = 0.
- The payment arrives at t = 2, so discount at each node's own rate. Up node value = 1,00,000 ÷ 1.06 = ₹94,339.62.
- Down node value = 0.
- Average = 0.5 × 94,339.62 + 0.5 × 0 = ₹47,169.81.
- Discount to today at 5%: 47,169.81 ÷ 1.05 = ₹44,923.63.
Answer: About ₹44,924.
Exam tips
- Draw the tree, even for a one-step problem. Label every node with the rate, the bond price and the payoff.
- Check the timing of every cash flow. Caplet and swap payments are usually in arrears, set at one date and paid at the next.
- Remember that options never have negative values, but swap legs can.
- Use parity as a cross-check: cap minus floor equals the swap to the fixed payer, if terms match.
- Read the interpretation line. Questions often ask which price or Greek moves with volatility, so know that cap and option values rise as volatility rises.
Practice questions from Arbitrage Pricing with Term Structure Models
- A risk analyst at a bond fund values a callable corporate bond using an interest rate tree calibrated to the Treasury curve. The model price…
- A two-state one-period model has a current short rate of 5% (annual compounding). A derivative pays 12 in the up state and 4 in the down sta…
- A desk calibrates a Ho-Lee model with σ = 1.0% per year. Using the standard result that the convexity effect lowers the zero-coupon bond yie…
- A one-period tree has a short rate of 4% (annual compounding). A zero-coupon bond maturing at the end of period two is priced today from a t…
- A quant calibrates a Ho-Lee-type model with time-dependent drift λ(t) to match today's term structure of zero-coupon bond prices exactly. Sh…
Pricing Interest Rate Derivatives on Trees: frequently asked questions
How do I price a call option on a zero-coupon bond using a binomial tree?
Build the bond price tree backward from face value at maturity. Take the payoff max(bond price − strike, 0) at expiry nodes. Then average the two successor values with 0.5 weights and discount at each node's rate until you reach today.
How are caps and floors valued on a tree?
Split them into caplets or floorlets. Value each one on the tree using its own reset date and payment date. Then add the values. A cap is the sum of caplets, and a floor is the sum of floorlets.
How do I price an interest rate swap on a binomial tree?
Value each net payment, floating rate minus fixed rate times the accrual period and notional, at each node. Discount the payments backward through the tree and add them. The swap fixed rate is the one that makes the initial value zero.
Do I need real-world probabilities on the tree?
No. The tree is priced with risk-neutral probabilities, so the result is consistent with the bond prices already in the tree. Real-world probabilities are not used for valuation.