Quantitative Finance & Derivatives
Bjerksund-Stensland Closed-Form American Option Trigger Boundary
Compute the Bjerksund-Stensland (1993) closed-form flat early-exercise boundary I_flat, characteristic root beta, and smooth-pasting coefficient alpha without iterative root-finding.
Eliminate Newton-Raphson root-finding for critical American exercise boundaries
Unlike Barone-Adesi-Whaley (1987), which requires solving an implicit nonlinear equation for critical spot S_star, Bjerksund and Stensland (1993) construct a closed-form flat exercise trigger I_flat directly from strike K, carry b < r, risk-free rate r, volatility sig, and maturity T — giving a strict lower bound on true American option value!
Compute characteristic root beta = (0.5 - b / sig^2) + SQRT((b / sig^2 - 0.5)^2 + 2*r / sig^2), perpetual boundary B_inf = (beta / (beta - 1)) * K, immediate boundary B_0 = MAX(K, (r / (r - b)) * K), and horizon interpolation h_T = -(b*T + 2*sig*SQRT(T)) * (B_0 / (B_inf - B_0)), yielding closed-form trigger I_flat = B_0 + (B_inf - B_0) * (1 - EXP(h_T)) and scaling weight alpha_bs = (I_flat - K) * (I_flat^(-beta)).
| Bjerksund-Stensland Term | Closed-Form Expression | Sample Output (K=100, r=0.08, b=0, sig=0.20, T=0.25) |
|---|---|---|
| Characteristic Exponent beta | (0.5 - b/sig^2) + SQRT((b/sig^2 - 0.5)^2 + 2*r/sig^2) | 2.5616 |
| Perpetual Trigger B_inf vs B_0 | (beta / (beta - 1)) * K vs MAX(K, (r/(r-b))*K) | 164.0388 vs 100.0000 |
| Horizon Factor h_T | -(b*T + 2*sig*SQRT(T)) * (B_0 / (B_inf - B_0)) | -0.3123 |
| Flat Exercise Trigger I_flat | B_0 + (B_inf - B_0) * (1 - EXP(h_T)) | 117.1781 |
Characteristic Exponent beta Formula
Verify that when carry b < r (with r > 0), beta > 1 strictly, ensuring perpetual boundary B_inf = (beta / (beta - 1)) * K is finite and exceeds strike K.
=IF(OR(B4 <= 0, B5 >= B4, B6 <= 0), "No Early Call Exercise (b >= r)", ROUND((0.5 - B5 / (B6^2)) + SQRT(((B5 / (B6^2)) - 0.5)^2 + 2 * B4 / (B6^2)), 4))Closed-Form Flat Exercise Trigger I_flat Formula
Evaluate B_inf, B_0, and h_T inside LET. Test shortening maturity T in B7 toward 0.01: h_T -> 0 and I_flat smoothly approaches B_0 = 100; lengthening T toward 25 years pushes I_flat toward perpetual B_inf = 164.0388!
=LET(k_str, B3, r_rf, B4, b_car, B5, sig_v, B6, t_yr, B7, IF(OR(k_str <= 0, r_rf <= 0, b_car >= r_rf, sig_v <= 0, t_yr <= 0), "No Early Call Exercise (b >= r)", LET(bet_v, (0.5 - b_car / (sig_v^2)) + SQRT(((b_car / (sig_v^2)) - 0.5)^2 + 2 * r_rf / (sig_v^2)), b_inf, (bet_v / (bet_v - 1)) * k_str, b_zer, MAX(k_str, (r_rf / (r_rf - b_car)) * k_str), h_fac, -(b_car * t_yr + 2 * sig_v * SQRT(t_yr)) * (b_zer / (b_inf - b_zer)), ROUND(b_zer + (b_inf - b_zer) * (1 - EXP(h_fac)), 4))))Try the example
Use the original values or change them to test your understanding.