How to Calculate Forward Rate from Yield Curve

Forward Rate Calculator

Implied Forward Rate: 0%


How to Calculate Forward Rate from Yield Curve

The forward rate is the interest rate for a future period of time, implied by the current yield curve. It represents the break-even rate that makes an investor indifferent between investing in a long-term bond or a series of shorter-term bonds.

The Forward Rate Formula

To calculate the annualized forward rate between two periods, we use the following formula (assuming annual compounding):

f = [((1 + r₂) ^ t₂) / ((1 + r₁) ^ t₁)] ^ (1 / (t₂ – t₁)) – 1

Where:

  • f: Implied forward rate between Period 1 and Period 2.
  • r₁: Spot rate (yield) for the shorter period (t₁).
  • r₂: Spot rate (yield) for the longer period (t₂).
  • t₁: Time to maturity for the first period.
  • t₂: Time to maturity for the second period.

Practical Example

Suppose you observe the following from a Treasury yield curve:

  • 1-year Treasury yield (Spot Rate 1): 2.0% (0.02)
  • 2-year Treasury yield (Spot Rate 2): 3.0% (0.03)

You want to find the implied 1-year rate starting one year from now (the "1-year forward 1-year rate").

  1. Numerator: (1 + 0.03)² = 1.0609
  2. Denominator: (1 + 0.02)¹ = 1.02
  3. Divide: 1.0609 / 1.02 = 1.040098
  4. Exponentiate: (1.040098)^(1 / (2-1)) = 1.040098
  5. Subtract 1: 0.040098 or 4.01%

Why Forward Rates Matter

Forward rates are critical for fixed-income analysts and traders for several reasons:

  • Hedging: Companies use forward rates to lock in future borrowing costs.
  • Arbitrage: If the actual market rate for a future period is higher than the implied forward rate, there may be an arbitrage opportunity.
  • Market Expectations: The forward rate reflects the market's consensus on where interest rates are heading.
function calculateForwardRate() { var r1 = parseFloat(document.getElementById("spotRate1").value) / 100; var t1 = parseFloat(document.getElementById("time1").value); var r2 = parseFloat(document.getElementById("spotRate2").value) / 100; var t2 = parseFloat(document.getElementById("time2").value); var resultDiv = document.getElementById("resultDisplay"); var resultText = document.getElementById("forwardRateResult"); var descText = document.getElementById("forwardRateDesc"); if (isNaN(r1) || isNaN(t1) || isNaN(r2) || isNaN(t2)) { alert("Please enter valid numbers in all fields."); return; } if (t2 <= t1) { alert("Period 2 must be greater than Period 1."); return; } // Formula: f = [((1 + r2)^t2) / ((1 + r1)^t1)]^(1/(t2-t1)) – 1 var numerator = Math.pow((1 + r2), t2); var denominator = Math.pow((1 + r1), t1); var timeDifference = t2 – t1; var forwardRate = Math.pow((numerator / denominator), (1 / timeDifference)) – 1; var forwardRatePercentage = (forwardRate * 100).toFixed(4); resultText.innerHTML = forwardRatePercentage; descText.innerHTML = "This is the implied annualized rate for the period starting at year " + t1 + " and ending at year " + t2 + "."; resultDiv.style.display = "block"; }

Leave a Comment