Skip to content

FRM Exam Part II · The Vasicek and Gauss+ Models

Vasicek Model Zero-Coupon Bond Price and Term Structure

Updated 11 October 2026 · Fact-checked

The Vasicek model has a mean-reverting short rate with normal shocks. Its zero-coupon bond price has a closed form: P(τ) = A(τ) × exp(−B(τ) × r), where B(τ) = (1 − e^(−aτ)) ÷ a. The spot rate is −ln P ÷ τ, so the curve is built from the current short rate, the long-run rate and the speed of reversion.

Understand Vasicek Model: Bond Prices and Term Structure

In the Vasicek model the short rate r follows dr = a(b − r)dt + σdW. Here b is the long-run level, a is the speed of mean reversion and σ is the volatility. When r is above b, the drift pulls it down. When r is below b, the drift pulls it up.

Because the model is affine, a zero-coupon bond has a closed-form price. The price is P(τ) = A(τ) × exp(−B(τ) × r), where τ is the time to maturity. B(τ) measures the bond's sensitivity to the short rate. It rises with maturity but flattens out at 1/a. A(τ) holds the effects of the long-run rate, the risk premium and the convexity from volatility.

The spot rate for maturity τ is R(τ) = −ln P(τ) ÷ τ. Short maturities have a spot rate close to r. Very long maturities have a spot rate that tends to a constant. In the risk-neutral form, with b read as the risk-neutral long-run rate, that constant is b − σ² ÷ (2a²).

Parameters shape the curve. If r is below the long-run level, the curve slopes up. If r is above it, the curve slopes down. A higher a makes the curve converge to its long-run level faster. A larger σ lowers long yields through the convexity term.

Volatility of spot rates falls with maturity. A shock to r moves a long yield less than a short yield, because the shock is expected to fade. This is why Vasicek gives a downward-sloping volatility term structure, unlike Ho-Lee, where volatility is the same at all maturities.

Key formulas to remember

Short-rate dynamics
dr = a(b − r)dt + σdW
a = speed of reversion, b = long-run rate, σ = absolute (normal) volatility. In pricing, b is the risk-neutral level.
Bond price
P(τ) = A(τ) × exp(−B(τ) × r)
Price of a zero-coupon bond paying 1 at maturity τ, given the current short rate r.
B function
B(τ) = (1 − e^(−aτ)) ÷ a
Rate sensitivity. It rises with τ and tends to 1/a.
A function
ln A(τ) = (B(τ) − τ) × (b − σ² ÷ (2a²)) − σ² × B(τ)² ÷ (4a)
Risk-neutral form. The exact algebra varies by text, so check how the question defines A.
Spot rate
R(τ) = −ln P(τ) ÷ τ = (B(τ) × r − ln A(τ)) ÷ τ
Continuously compounded spot rate.
Long-maturity spot rate
R(∞) = b − σ² ÷ (2a²)
Risk-neutral b. Lower than b because of convexity.
Expected short rate
E[r(t)] = b + (r₀ − b) × e^(−at)
Under the dynamics as specified. The gap to b decays at rate a.

How to solve Vasicek Model: Bond Prices and Term Structure questions

Use this order for any Vasicek bond price or yield question.

  1. 1Write down the given parameters: a, b, σ, the current short rate r and the maturity τ. Check whether b is risk-neutral.
  2. 2Compute B(τ) = (1 − e^(−aτ)) ÷ a.
  3. 3Get A(τ) from the formula or the value the question gives you. Many questions give A directly.
  4. 4Compute P(τ) = A(τ) × exp(−B(τ) × r).
  5. 5Convert to a spot rate with R = −ln P ÷ τ, if asked for a yield.
  6. 6Interpret the result. Compare r with the long-run level to explain the slope, and use a and σ to explain speed and convexity.
  7. 7Sanity-check. P should be between 0 and 1 for positive rates, and R should lie between r and the long-run yield.

Quickest way: Direction-first shortcut

When to use it: Use when the options differ in slope, shape or ordering rather than exact values.

  1. Compare r with b. If r < b, expect an upward-sloping curve. If r > b, expect a downward-sloping curve.
  2. Remember that a larger a pulls long rates to the long-run level faster and cuts long-end volatility.
  3. Remember that a larger σ lowers the long-run yield by σ² ÷ (2a²) and raises the price of long bonds.
  4. For volatility questions, remember that a yield's volatility is σ × B(τ) ÷ τ. It falls as τ rises.
  5. Only run the full formula if the options are numerically close.

Common mistakes in Vasicek Model: Bond Prices and Term Structure

  • Using B(τ) = τ

    Students confuse Vasicek with the zero-mean-reversion model, where the rate sensitivity grows one-for-one with time.

    Fix: Use B(τ) = (1 − e^(−aτ)) ÷ a. It is always less than τ when a > 0.

  • Forgetting that the long yield is below b

    Students assume the curve converges to the long-run rate b.

    Fix: In the risk-neutral form, the long yield is b − σ² ÷ (2a²). The convexity term pulls it down.

  • Mixing up price and yield

    The exp(−B × r) term looks like a discount factor for rate r.

    Fix: P is a price. Take R = −ln P ÷ τ to get the yield, and divide by τ.

  • Saying yield volatility is the same at all maturities

    This is true in Ho-Lee, and students carry it over.

    Fix: In Vasicek, spot rate volatility is σ × B(τ) ÷ τ. It falls with maturity.

  • Mixing risk-neutral and real-world parameters

    Both versions use the symbols a, b and σ.

    Fix: For pricing, use risk-neutral parameters. For forecasting the short rate, use the real-world ones. Read the question wording.

  • Treating a larger a as steeper long-end

    Students link higher a with more rate movement.

    Fix: A higher a means faster reversion, so shocks fade sooner. Long yields move less and B(τ) caps at a lower value.

Worked examples

Example 1

In a Vasicek model, a = 0.5, b = 4%, σ = 1% and the short rate is 2%. Using the real-world drift as the risk-neutral drift, find the 2-year zero-coupon bond price. Take ln A(2) = −0.0294 for the given parameters. Round to four decimals.

Show the solution
  1. B(2) = (1 − e^(−0.5×2)) ÷ 0.5 = (1 − e^(−1)) ÷ 0.5.
  2. e^(−1) = 0.36788, so 1 − 0.36788 = 0.63212, and B(2) = 1.26424.
  3. B × r = 1.26424 × 0.02 = 0.025285.
  4. ln P = ln A − B × r = −0.0294 − 0.025285 = −0.054685.
  5. P = exp(−0.054685) = 0.9468.

Answer: P(2) ≈ 0.9468, giving a 2-year spot rate of 0.054685 ÷ 2 ≈ 2.73%.

Example 2

Risk-neutral Vasicek parameters are a = 0.25, b = 5% and σ = 1.5%. What is the long-maturity spot rate, and how does it compare with b? What happens to it if a doubles?

Show the solution
  1. R(∞) = b − σ² ÷ (2a²).
  2. σ² = 0.015² = 0.000225.
  3. 2a² = 2 × 0.0625 = 0.125.
  4. σ² ÷ (2a²) = 0.000225 ÷ 0.125 = 0.0018 = 0.18%.
  5. R(∞) = 5% − 0.18% = 4.82%.
  6. If a = 0.5, 2a² = 0.5, so the term is 0.000225 ÷ 0.5 = 0.00045 = 0.045%, and R(∞) = 4.955%.

Answer: The long-maturity spot rate is 4.82%, which is 0.18% below b. If a doubles, the convexity gap shrinks to 0.045% and the long rate rises to 4.955%.

Exam tips

  • Know the shape logic cold: short rate below the long-run level means an upward curve, above means downward.
  • Memorise B(τ) = (1 − e^(−aτ)) ÷ a and the long-yield limit b − σ² ÷ (2a²). Most numeric questions use them.
  • If A(τ) is given, the question is a quick substitution. Do not rederive it.
  • Watch for questions on yield volatility falling with maturity. This is the standard contrast with Ho-Lee.
  • Check whether parameters are risk-neutral or real-world before pricing.

Practice questions from The Vasicek and Gauss+ Models

Vasicek Model: Bond Prices and Term Structure in other exams

The same ground in other exams, if you are preparing for more than one or want another angle on it.

Vasicek Model: Bond Prices and Term Structure: frequently asked questions

What is the zero-coupon bond price formula in the Vasicek model?

It is P(τ) = A(τ) × exp(−B(τ) × r), where B(τ) = (1 − e^(−aτ)) ÷ a. A(τ) depends on a, b, σ and τ. Here r is the current short rate.

Why does the Vasicek yield curve flatten at long maturities?

B(τ) tends to 1/a as τ grows, so a bond's sensitivity to the short rate stops rising. The spot rate then approaches b − σ² ÷ (2a²) in the risk-neutral form.

How does mean reversion speed affect the term structure?

A higher a pulls the short rate back to the long-run level faster. The curve converges more quickly, long yields react less to short-rate shocks, and the convexity adjustment is smaller.

Can the Vasicek model produce negative interest rates?

Yes. Shocks are normal, so the short rate can fall below zero with positive probability. This is a known limitation, and it is one reason the CIR model exists.