Arte SheetsLearn. Try. Understand.

Financial Modeling

Vasicek Short-Rate Term Structure: Zero-Coupon Bond Price P(0,T) & Spot Yield

Price default-free zero-coupon bonds and derive continuously compounded spot yields under Oldrich Vasicek’s (1977) Ornstein-Uhlenbeck mean-reverting interest-rate model.

Affine A(tau) and B(tau) closed-form structure of the Vasicek short-rate model

Under risk-neutral Ornstein-Uhlenbeck dynamics dr_t = kappa * (theta - r_t) dt + sigma dW_t, short rates pull toward long-run equilibrium theta at speed kappa with Gaussian volatility sigma. Unlike flat-yield discounting EXP(-r_0 * tau), Vasicek produces realistic upward-sloping yield curves when r_0 < theta, inverted curves when r_0 > theta, and a convexity pull-down -sigma^2 / (2 * kappa^2) at long maturities.

For maturity tau, duration sensitivity is B(tau) = (1 - EXP(-kappa * tau)) / kappa, log-intercept is ln_A(tau) = (theta - sigma^2 / (2 * kappa^2)) * (B(tau) - tau) - (sigma^2 / (4 * kappa)) * B(tau)^2, zero-coupon bond price is P(0, tau) = EXP(ln_A(tau) - B(tau) * r_0), and continuously compounded spot yield is y(0, tau) = -LN(P(0, tau)) / tau.

Vasicek Quantity (tau = 4 yr)FormulaExample (kappa=0.5, theta=5%, sigma=2%, r0=3%)
Rate Sensitivity B(tau)(1 - EXP(-kappa * tau)) / kappa1.7293 years
Affine Log-Term ln A(tau)(theta - sig^2/(2k^2))*(B - tau) - sig^2*B^2/(4k)-0.1123
Zero-Coupon Price P(0, 4)EXP(ln_A - B * r_0)0.8486 (84.86% of par)
Continuous Spot Yield y(4)-LN(P(0, 4)) / tau0.0410 (4.10% > 3.00% r_0)

Vasicek B(tau) & Zero-Coupon Bond Price P(0, tau) Formula

Bind kappa, theta, sigma, r_0, and tau inside LET to evaluate B(tau), ln_A(tau), and P(0, tau) without intermediate rounding error.

=LET(kap, B2, th, B3, sig, B4, r_now, B5, mat, B6, b_fac, (1 - EXP(-kap * mat)) / kap, ln_a, (th - (sig ^ 2) / (2 * (kap ^ 2))) * (b_fac - mat) - ((sig ^ 2) / (4 * kap)) * (b_fac ^ 2), ROUND(EXP(ln_a - b_fac * r_now), 4))

Continuously Compounded Spot Yield Formula

Recover the annualized continuous spot rate from exact bond price via -LN(P) / tau.

=ROUND(-LN(E3) / B6, 4)

Try the example

Use the original values or change them to test your understanding.

Further reading