Quantitative Finance & Real Options
Geske Call-on-Call Compound Option Exercise Threshold and Bound
Evaluate staged R&D and M&A call-on-call options in Excel and Arte Sheets by testing Geske’s (1979) T_1 residual Black-Scholes exercise condition C_BSM(S_T1, K_2, T_2 - T_1) >= K_1.
Model staged R&D or M&A exclusivity fees as a call option on a call option
In pharma licensing and M&A breakup structures, paying a small Phase-1 fee K_1 at date T_1 grants the right to pay full commercialization strike K_2 at final date T_2 > T_1. Geske (1979) showed that at intermediate decision date T_1, the holder exercises the compound option if and only if the remaining Black-Scholes call value C_BSM(S_T1, K_2, T_2 - T_1) exceeds K_1 — defining unique critical asset threshold S_star where C_BSM(S_star, K_2, T_2 - T_1) = K_1!
Build a transparent audit grid first: underlying spot S = 100 (B2), compound strike K_1 = 8.00 at T_1 = 0.50 yr (B3, B6), final strike K_2 = 100 at T_2 = 1.50 yr (B4, B7, leaving T_2 - T_1 = 1.00 yr), r = 0.05 (B5), and volatility sig = 0.25 (B8). At candidate T_1 spot S_cand = 95.3887 (B9, safely above critical trigger S_star = 92.29), the remaining 1-year call C_BSM(95.3887, 100, 1.00) equals 9.6092 >= K_1 = 8.00! Moreover, by no-arbitrage dominance, any call-on-call must lie strictly between MAX(0, C_BSM(S, K_2, T_2) - K_1 * EXP(-r * T_1)) = 7.8854 and C_BSM(S, K_2, T_2) = 15.6879.
| Geske Staged-Option Quantity | Formula Relationship | Sample Output |
|---|---|---|
| Underlying Full T_2 Call C(S, K_2, T_2) | Vanilla BSM Call over full 1.50 years | 15.6879 |
| No-Arbitrage Lower Bound | MAX(0, C(S, K_2, T_2) - K_1 * EXP(-r * T_1)) | 7.8854 |
| Residual Call at T_1 Candidate Spot | C_BSM(S_cand = 95.3887, K_2 = 100, T_2 - T_1 = 1.0) | 9.6092 (> K_1 = 8.00) |
| T_1 Exercise Decision Gate | IF(C_rem(S_T1) >= K_1, "Pay K1 & Continue", "Abandon") | Pay K1 & Continue |
Residual T_2 - T_1 Black-Scholes Value at Intermediate Date T_1 Formula
Before trusting an AI-suggested bivariate normal approximation, verify the exact continuation value C_rem(S_T1, K_2, T_2 - T_1) at decision date T_1. Ask a hint-first prompt if needed: "Check whether T_2 - T_1 or full T_2 belongs inside the intermediate exercise payoff of a Geske call-on-call."
=LET(s_t1, B9, k_2, B4, r_rf, B5, t_1, B6, t_2, B7, sig_v, B8, tau_rem, t_2 - t_1, IF(OR(s_t1 <= 0, k_2 <= 0, sig_v <= 0, t_1 <= 0, tau_rem <= 0), "Invalid Horizon (Require 0 < T1 < T2)", LET(st_r, sig_v * SQRT(tau_rem), d_1, (LN(s_t1 / k_2) + (r_rf + 0.5 * sig_v^2) * tau_rem) / st_r, d_2, d_1 - st_r, u_1, 1 / (1 + 0.2316419 * ABS(d_1)), ph_1, 0.3989422804014327 * EXP(-0.5 * d_1^2) * u_1 * (0.31938153 + u_1 * (-0.356563782 + u_1 * (1.781477937 + u_1 * (-1.821255978 + 1.330274429 * u_1)))), nd_1, IF(d_1 >= 0, 1 - ph_1, ph_1), u_2, 1 / (1 + 0.2316419 * ABS(d_2)), ph_2, 0.3989422804014327 * EXP(-0.5 * d_2^2) * u_2 * (0.31938153 + u_2 * (-0.356563782 + u_2 * (1.781477937 + u_2 * (-1.821255978 + 1.330274429 * u_2)))), nd_2, IF(d_2 >= 0, 1 - ph_2, ph_2), ROUND(s_t1 * nd_1 - k_2 * EXP(-r_rf * tau_rem) * nd_2, 4))))Compound No-Arbitrage Lower Bound Formula & Abandonment Test
Because exercising at T_1 regardless of S_T1 costs K_1 * EXP(-r * T_1) in present value and delivers C_BSM(S, K_2, T_2), the compound call can never trade below MAX(0, C_full - K_1 * EXP(-r * T_1)). Test dropping S_T1 in B9 to 85: residual call drops to 3.4126 < 8.00, triggering rational abandonment (saving K_1 = 8.00)!
=IF(OR(B6 <= 0, B7 <= B6), "Invalid Horizon (Require 0 < T1 < T2)", ROUND(MAX(0, E2 - B3 * EXP(-B5 * B6)), 4))Try the example
Use the original values or change them to test your understanding.