Jamshidian's Trick¶
A European option on a coupon-bearing bond has a payoff that depends on the prices of multiple zero-coupon bonds simultaneously. Pricing such an option directly requires the joint distribution of all the bond prices, which is intractable even in a Gaussian model. Jamshidian (1989) observed that in any one-factor model where bond prices are monotone functions of the short rate, the option on a portfolio of bonds can be decomposed into a portfolio of options on individual bonds. This section presents the trick, proves it rigorously, and demonstrates its application in the Hull-White model.
The Problem: Options on Coupon Bonds¶
Consider a European call option with strike \(K\) and maturity \(T_m\) on a coupon bond that pays cash flows \(c_k\) at times \(T_k\) for \(k = m+1, \ldots, n\). The payoff at \(T_m\) is
where \(P(T_m, T_k)\) is the price at \(T_m\) of a zero-coupon bond maturing at \(T_k\). Direct evaluation of \(\mathbb{E}^{T_m}[\cdot]\) requires the joint distribution of \((P(T_m, T_{m+1}), \ldots, P(T_m, T_n))\), which is not straightforward even though each \(P(T_m, T_k)\) is individually lognormal.
Key Observation: Monotonicity¶
In the Hull-White model, the bond price at \(T_m\) for maturity \(T_k\) is
Since \(B(\tau) = -\frac{1}{\lambda}(1 - e^{-\lambda\tau}) < 0\) for all \(\tau > 0\), each bond price \(P(T_m, T_k)\) is a strictly decreasing function of \(r(T_m)\).
Why Monotonicity Matters
When all bond prices move in the same direction as a function of a single state variable \(r(T_m)\), the exercise decision at \(T_m\) reduces to comparing \(r(T_m)\) to a single threshold \(r^*\). This is the essential insight that makes the decomposition possible.
The Optimal Exercise Rate¶
Definition: Critical Short Rate
The critical short rate \(r^*\) is the unique solution of
where \(P(T_m, T_k;\, r^*) = e^{A(T_k - T_m) + B(T_k - T_m)\,r^*}\). The option is exercised if and only if \(r(T_m) < r^*\) (for a call) since lower rates imply higher bond prices.
Existence and uniqueness of \(r^*\) follow from the strict monotonicity of \(\sum_k c_k P(T_m, T_k; r)\) in \(r\): this sum is continuous, strictly decreasing, tends to \(+\infty\) as \(r \to -\infty\), and tends to \(0\) as \(r \to +\infty\).
Decomposition of Strikes¶
Once \(r^*\) is found, define the individual strikes
By construction, \(\sum_{k=m+1}^n c_k\,K_k = K\).
Jamshidian's Theorem¶
Theorem: Jamshidian's Decomposition
The European call option on a coupon bond with payoff \(\max(\sum_k c_k P(T_m, T_k) - K, 0)\) can be decomposed as
where \(V_c^{\text{ZCB}}(t_0, T_m, T_k; K_k)\) is the price of a European call on a zero-coupon bond with option maturity \(T_m\), bond maturity \(T_k\), and strike \(K_k\).
Similarly, a European put on the coupon bond decomposes as
Proof
The call payoff at \(T_m\) can be written as
since \(\sum_k c_k K_k = K\) by construction. Now consider the sign of each term \(P(T_m, T_k) - K_k\):
- If \(r(T_m) < r^*\): Since each \(P(T_m, T_k)\) is decreasing in \(r\), we have \(P(T_m, T_k) > P(T_m, T_k; r^*) = K_k\) for all \(k\). Every term is positive.
- If \(r(T_m) > r^*\): \(P(T_m, T_k) < K_k\) for all \(k\). Every term is negative.
- If \(r(T_m) = r^*\): Every term equals zero.
Because all terms switch sign at the same threshold \(r^*\), the maximum of the sum equals the sum of the maxima:
Taking the \(\mathbb{Q}^{T_m}\)-expectation and multiplying by \(P(t_0, T_m)\):
\(\square\)
Finding r* Numerically¶
The critical rate \(r^*\) is found by solving \(g(r) = K\) where \(g(r) = \sum_k c_k e^{A(T_k - T_m) + B(T_k - T_m)r}\). Since \(g\) is smooth, strictly monotone, and maps \(\mathbb{R}\) onto \((0, \infty)\), Newton's method converges rapidly:
where \(g'(r) = \sum_k c_k B(T_k - T_m)\,e^{A(T_k - T_m) + B(T_k - T_m)r}\).
python
def find_r_star(hw, T_m, T_payments, c_payments, K, tol=1e-12):
"""Find critical rate r* using Newton's method."""
r = 0.03 # initial guess
for _ in range(100):
g = sum(c * hw.compute_ZCB(T_m, T_k, r)
for c, T_k in zip(c_payments, T_payments))
if abs(g - K) < tol:
break
B_vals = [hw.B(T_k - T_m) for T_k in T_payments]
g_prime = sum(c * B * hw.compute_ZCB(T_m, T_k, r)
for c, B, T_k in zip(c_payments, B_vals, T_payments))
r = r - (g - K) / g_prime
return r
Applicability and Limitations¶
Jamshidian's trick applies whenever the following conditions hold:
- Single-factor model: All bond prices depend on a single state variable.
- Monotonicity: All bond prices are monotone functions of that state variable in the same direction.
- European exercise: The option is exercised at a single date.
When the Trick Fails
- Multi-factor models (e.g., two-factor Hull-White): Bond prices at different maturities may not be monotone in the same variable. The trick does not apply.
- American/Bermudan options: Multiple exercise dates require dynamic programming, not a single threshold decomposition.
- Path-dependent payoffs: The trick requires the payoff to depend only on \(r(T_m)\), not on the path of \(r\).
Numerical Example¶
Consider a 2-year European call with strike \(K = 1.0\) on a 5-year annual coupon bond paying \(c = 0.05\) annually with principal at maturity. The cash flows are \(c_1 = c_2 = c_3 = 0.05\) at years 3, 4, 5 and \(c_3 = 1.05\) at year 5 (combined). With Hull-White parameters \(\lambda = 0.05\), \(\sigma = 0.01\):
- Solve \(0.05\,P(2,3;r^*) + 0.05\,P(2,4;r^*) + 1.05\,P(2,5;r^*) = 1.0\) for \(r^*\).
- Compute \(K_k = P(2, T_k; r^*)\) for \(k = 1, 2, 3\).
- Price each ZCB call: \(V_c^{\text{ZCB}}(0, 2, T_k; K_k)\) using the Hull-White closed-form formula.
- Sum: \(V^{\text{CB-Call}} = 0.05\,V_c^{\text{ZCB}}(0,2,3;K_1) + 0.05\,V_c^{\text{ZCB}}(0,2,4;K_2) + 1.05\,V_c^{\text{ZCB}}(0,2,5;K_3)\).
Summary¶
Jamshidian's trick exploits the monotonicity of bond prices in the short rate to decompose a European coupon bond option into a sum of European zero-coupon bond options. The critical step is finding the unique short rate \(r^*\) at which the option is exactly at the money. Each individual ZCB option can then be priced using the Hull-White closed-form formula, yielding an analytic price for the coupon bond option without any numerical integration over the joint distribution of bond prices.
Exercises¶
Exercise 1. In the Hull-White model, the bond price at time \(T_m\) for maturity \(T_k\) is \(P(T_m, T_k) = e^{A(T_k - T_m) + B(T_k - T_m)\,r(T_m)}\) with \(B(\tau) = -(1 - e^{-\lambda\tau})/\lambda\). Prove that \(B(\tau) < 0\) for all \(\tau > 0\) and that \(P(T_m, T_k)\) is strictly decreasing in \(r(T_m)\).
Solution to Exercise 1
We have \(B(\tau) = -(1 - e^{-\lambda\tau})/\lambda\). For \(\tau > 0\) and \(\lambda > 0\):
- \(\lambda\tau > 0\) implies \(e^{-\lambda\tau} < 1\), so \(1 - e^{-\lambda\tau} > 0\)
- Therefore \((1 - e^{-\lambda\tau})/\lambda > 0\), and \(B(\tau) = -(1 - e^{-\lambda\tau})/\lambda < 0\)
For the monotonicity of the bond price, compute the derivative with respect to \(r(T_m)\):
Since \(P(T_m, T_k) > 0\) (bond prices are positive) and \(B(T_k - T_m) < 0\) (proven above for \(T_k > T_m\)), the derivative is strictly negative. Therefore \(P(T_m, T_k)\) is strictly decreasing in \(r(T_m)\).
Exercise 2. Let \(g(r) = \sum_{k=m+1}^{n} c_k\,e^{A(T_k - T_m) + B(T_k - T_m)\,r}\) with positive cash flows \(c_k > 0\). Show that \(\lim_{r \to -\infty} g(r) = +\infty\) and \(\lim_{r \to +\infty} g(r) = 0\), and conclude that the equation \(g(r) = K\) has a unique solution for any \(K > 0\).
Solution to Exercise 2
Each term in \(g(r) = \sum_{k=m+1}^n c_k e^{A(T_k - T_m) + B(T_k - T_m)r}\) has \(c_k > 0\) and is an exponential function of \(r\) with coefficient \(B(T_k - T_m) < 0\) in the exponent.
Limit as \(r \to -\infty\): Since \(B(T_k - T_m) < 0\), as \(r \to -\infty\) we get \(B(T_k - T_m) \cdot r \to +\infty\). Therefore each exponential \(e^{A(T_k - T_m) + B(T_k - T_m)r} \to +\infty\), and since \(c_k > 0\), we have \(g(r) \to +\infty\).
Limit as \(r \to +\infty\): Since \(B(T_k - T_m) < 0\), as \(r \to +\infty\) we get \(B(T_k - T_m) \cdot r \to -\infty\). Therefore each exponential \(e^{A(T_k - T_m) + B(T_k - T_m)r} \to 0\), and \(g(r) \to 0\).
Strict monotonicity: The derivative is
Every term has \(c_k > 0\), \(B(T_k - T_m) < 0\), and \(e^{(\cdots)} > 0\), so \(g'(r) < 0\) for all \(r\). Hence \(g\) is strictly decreasing.
Since \(g\) is continuous, strictly decreasing, maps to \((0, +\infty)\), and takes values from \(+\infty\) down to \(0\), by the intermediate value theorem, for any \(K > 0\) there exists a unique \(r^*\) such that \(g(r^*) = K\).
Exercise 3. Consider a European put on a coupon bond with cash flows \(c_k\) and strike \(K\). Write the payoff at \(T_m\), apply the Jamshidian decomposition, and verify that the put decomposes as \(V^{\text{CB-Put}}(t_0) = \sum_k c_k \cdot V_p^{\text{ZCB}}(t_0, T_m, T_k; K_k)\), where the option is exercised when \(r(T_m) > r^*\).
Solution to Exercise 3
The put payoff at \(T_m\) is:
Using \(\sum_k c_k K_k = K\):
Now analyze the sign of each term \(K_k - P(T_m, T_k)\):
- If \(r(T_m) > r^*\): Since \(P(T_m, T_k)\) is decreasing in \(r\), we have \(P(T_m, T_k) < P(T_m, T_k; r^*) = K_k\), so \(K_k - P(T_m, T_k) > 0\) for all \(k\). The put is exercised.
- If \(r(T_m) < r^*\): \(P(T_m, T_k) > K_k\) for all \(k\), so \(K_k - P(T_m, T_k) < 0\) for all \(k\). The put expires worthless.
Since all terms have the same sign, the max of the sum equals the sum of maxes:
Taking expectations under \(\mathbb{Q}^{T_m}\):
The put option is exercised when \(r(T_m) > r^*\) (higher rates mean lower bond prices, making the put in-the-money), which is opposite to the call exercise condition \(r(T_m) < r^*\).
Exercise 4. Suppose a coupon bond pays \(c_1 = 0.03\) at \(T_1 = 3\), \(c_2 = 0.03\) at \(T_2 = 4\), and \(c_3 = 1.03\) at \(T_3 = 5\). A European call on this bond has strike \(K = 0.98\) and option maturity \(T_m = 2\). With Hull-White parameters \(\lambda = 0.05\) and \(\sigma = 0.01\), outline the Newton's method iteration to find \(r^*\). Write the derivative \(g'(r)\) explicitly and describe how convergence is guaranteed.
Solution to Exercise 4
The cash flows are \(c_1 = 0.03\), \(c_2 = 0.03\), \(c_3 = 1.03\). The function to solve is:
where \(A(k)\) and \(B(k)\) denote \(A(T_k - T_m)\) and \(B(T_k - T_m)\), with \(T_m = 2\) and \(T_k = 3, 4, 5\).
The \(B\) values with \(\lambda = 0.05\) are:
The derivative for Newton's method is:
Since \(B(k) < 0\) for all \(k\) and \(c_k > 0\), we have \(g'(r) < 0\) for all \(r\). The Newton iteration is:
Convergence is guaranteed because \(g\) is smooth (infinitely differentiable), strictly monotone, and convex (since \(g''(r) = \sum_k c_k B(k)^2 e^{A(k) + B(k)r} > 0\)). The convexity ensures that Newton's method converges quadratically from any initial guess once the iterates enter a neighborhood of \(r^*\).
Exercise 5. In a two-factor Hull-White model, bond prices depend on two state variables \((r_1(t), r_2(t))\). Explain why the monotonicity argument fails: construct a scenario where increasing \(r_1\) increases \(P(T_m, T_1)\) but decreases \(P(T_m, T_2)\), so that the terms \(c_k(P(T_m, T_k) - K_k)\) do not all switch sign at the same threshold.
Solution to Exercise 5
In a two-factor model, the bond price at \(T_m\) for maturity \(T_k\) is:
where \(B_x(T_m, T_k) = (e^{-\lambda_1(T_k - T_m)} - 1)/\lambda_1\) and \(B_y(T_m, T_k) = (e^{-\lambda_2(T_k - T_m)} - 1)/\lambda_2\). Both factor loadings are negative, so the bond price is decreasing in both \(x\) and \(y\) individually.
However, the monotonicity argument requires that for a single variable, all bond prices move together. In the two-factor model, the exercise decision depends on two variables \((x(T_m), y(T_m))\), and there is no single threshold that determines exercise.
Counterexample: Suppose \(\lambda_1 = 0.01\), \(\lambda_2 = 0.5\), \(T_m = 2\), \(T_1 = 3\), \(T_2 = 30\).
- \(B_x(2, 3) = (e^{-0.01} - 1)/0.01 \approx -0.995\), \(B_y(2, 3) = (e^{-0.5} - 1)/0.5 \approx -0.787\)
- \(B_x(2, 30) = (e^{-0.28} - 1)/0.01 \approx -24.4\), \(B_y(2, 30) = (e^{-14} - 1)/0.5 \approx -2.0\)
Consider a scenario where \(x\) increases by \(\Delta x = 0.001\) and simultaneously \(y\) decreases by \(\Delta y = -0.003\). The log-price changes are:
- \(\Delta\!\log P(T_m, T_1) \approx B_x \cdot 0.001 + B_y \cdot (-0.003) = -0.000995 + 0.002361 = +0.00137\) (bond price increases)
- \(\Delta\!\log P(T_m, T_2) \approx -24.4 \cdot 0.001 + (-2.0) \cdot (-0.003) = -0.0244 + 0.006 = -0.0184\) (bond price decreases)
The short-maturity bond increased while the long-maturity bond decreased. The terms \(c_k(P(T_m, T_k) - K_k)\) can therefore have opposite signs, so \(\max(\sum_k a_k, 0) \neq \sum_k \max(a_k, 0)\). The Jamshidian decomposition fails.
Exercise 6. Verify numerically that \(\sum_{k=m+1}^{n} c_k K_k = K\) holds by construction. Starting from \(K_k = P(T_m, T_k; r^*)\) and the definition \(g(r^*) = K\), show this identity algebraically without relying on any specific parameter values.
Solution to Exercise 6
By definition, \(K_k = P(T_m, T_k; r^*) = e^{A(T_k - T_m) + B(T_k - T_m)r^*}\). Therefore:
But \(r^*\) is defined as the solution of:
Comparing the two expressions, they are identical. Therefore:
This identity holds by construction for any parameter values, any set of cash flows \(c_k > 0\), and any maturity dates \(T_k\). It is purely algebraic and does not depend on the specific Hull-White parameters.
Exercise 7. The Jamshidian decomposition relies on the identity \(\max(\sum_k a_k, 0) = \sum_k \max(a_k, 0)\) when all \(a_k\) have the same sign. Construct a simple two-term counterexample where \(a_1 > 0\) and \(a_2 < 0\) to show that this identity fails when the terms can have different signs. Relate this to why the trick requires a one-factor model.
Solution to Exercise 7
Counterexample: Let \(a_1 = 3\) and \(a_2 = -1\). Then:
- Left side: \(\max(a_1 + a_2, 0) = \max(3 + (-1), 0) = \max(2, 0) = 2\)
- Right side: \(\max(a_1, 0) + \max(a_2, 0) = \max(3, 0) + \max(-1, 0) = 3 + 0 = 3\)
Since \(2 \neq 3\), the identity \(\max(\sum_k a_k, 0) = \sum_k \max(a_k, 0)\) fails.
In general, when some terms are positive and others are negative:
with strict inequality whenever the sum is positive but some individual terms are negative (the positive terms partially compensate for the negative ones in the sum, but not in the individual maxima).
This relates to the one-factor requirement as follows: in a one-factor model, all \(a_k = c_k(P(T_m, T_k) - K_k)\) have the same sign because all bond prices are monotone in the same single variable \(r(T_m)\). Either all terms are positive (\(r < r^*\)), all negative (\(r > r^*\)), or all zero (\(r = r^*\)). In a multi-factor model, different bond prices can move in different directions for the same realization of the state variables, causing some \(a_k\) to be positive and others negative simultaneously. The identity breaks down, and Jamshidian's trick cannot be applied.