Forward Rate
Calculates the implied forward rates between pairs of maturities of a country’s zero-coupon (spot) yield curve on a day. The forward rate is the interest rate, implied by that day’s curve, for a loan that starts at a future date: it follows from no-arbitrage pricing rather than being a forecast of future rates, and contains a term premium.
The formula is as follows:
\[\text{Forward Rate} = ((1 + r_{2}) ^{t_{2}} / (1 + r_{1}) ^{t_{1}}) ^{1 / (t_{2} - t_{1})} - 1\]where:
\[r_{1} = \text{Zero-coupon rate at the near maturity},\;\; \text{interpolated linearly from the curve}\] \[t_{1} = \text{Near maturity},\;\; \text{in years}\] \[r_{2} = \text{Zero-coupon rate at the far maturity},\;\; \text{interpolated linearly from the curve}\] \[t_{2} = \text{Far maturity},\;\; \text{in years}\]The curve is the zero-coupon curve of get_zero_coupon_curve, bootstrapped from the country’s government bond par yields and annually compounded, so the forward rate is annually compounded as well. For a curve of your own, use yieldcurve_model.get_forward_rate.
Also known as: implied forward rate, forward-forward rate.
Forward Rate in Python or via the MCP
Install the Finance Toolkit with:
pip install financetoolkit -U
Then call get_forward_rate as shown below.
from financetoolkit import FixedIncome
fixedincome = FixedIncome()
fixedincome.get_forward_rate(
near_maturity=[1, 2, 5], far_maturity=[5, 10, 30], date="2026-11-05"
)
Or, after setting up the Finance Toolkit MCP, ask:
Which forward rates from 1, 2 and 5 years to 5, 10 and 30 years did the US Treasury curve imply on 5 November 2026?
Which returns:
| Near Maturity | 5 | 10 | 30 |
|---|---|---|---|
| 1 | 0.0473 | 0.0501 | 0.0548 |
| 2 | 0.0474 | 0.0505 | 0.0551 |
| 5 | nan | 0.0524 | 0.056 |
Parameters
get_forward_rate accepts the following parameters.
| Parameter | Type | Description | Example |
|---|---|---|---|
near_maturity | float | str | list | None | The nearer maturity (or maturities), in years or as labels such as ‘6M’. Defaults to None, 1 to 5 years. | 2.0 |
far_maturity | float | str | list | None | The further maturity (or maturities), in years or as labels such as ‘10Y’. Defaults to None, 5 to 10 years. | 5.0 |
country | str | The country, see get_zero_coupon_curve. Defaults to “United States”. | "US" |
date | str | None | The day of the curve (YYYY-MM-DD), or the last day before it with a curve. Defaults to None, the end date. | "2025-03-31" |
rounding | int | None | The number of decimals to round the results to. Defaults to None, which uses the rounding of the class. | 2 |