Integral Calculus and Differential Equations › Present Value and the Yield Curve
Quantitative FinanceAll chapters Integral Calculus and Differential Equations › Present Value and the Yield CurveOne section · Sections in this chapter5 / 14 ↓
Reading tools Definitions & inline links
Choose your expertise level to adjust how many terms are explained. Beginners see more tooltips, experts see fewer to maintain reading flow. Hover over underlined terms for instant definitions.
Article links
Make inline references clickable
An important application of integration in finance is computing present values when interest rates vary over time. In the real world, interest rates are not constant. Short-term rates typically differ from long-term rates, creating a term structure that may be quoted as par yields, zero or spot rates, forward rates, or discount factors. The integration formula below applies directly to the instantaneous forward curve. A continuously compounded zero rate maps directly to a discount factor, while par yields must first be transformed into zero rates or forward rates.
A specified instantaneous forward curve determines the discount factors used in these cash-flow models. Slope alone does not determine a discount factor: the upward-sloping forward curve and flat curve below have identical ten-year discount factors, even though they differ at other maturities. The integral uses the full curve up to the chosen maturity.
Continuous Discounting with Time-Varying Rates
For a time-zero term structure, let denote the instantaneous forward rate for maturity . We can no longer apply with one constant rate. Instead, the discount factor from time to time integrates the forward curve across maturities:
where:
- : discount factor from time to time
- : time-zero instantaneous forward rate for maturity
- : dummy variable indexing maturity
- : accumulated continuously compounded forward rates through maturity
The corresponding continuously compounded -maturity spot, or zero, rate is the maturity average
Thus an instantaneous forward rate, a maturity-specific spot rate, and a future short rate are distinct objects. The same exponential formula can integrate a deterministic future short-rate path, but such a path is a model assumption rather than the observed time-zero spot curve.
The discount factor represents the present value of $1 to be received at time . For , a positive accumulated forward rate gives . At time zero the factor is one; negative accumulated rates can produce a factor above one.
Consider a time-zero instantaneous forward curve that starts at 3% and increases linearly to 5% at a 10-year maturity:
This is an illustrative upward-sloping term structure, not a causal account of why the curve slopes upward. The discount factor for a 10-year cash flow is:
Computing the integral:
Therefore:
A cash flow of $1,000 in ten years has a present value of approximately $670.32. Its maturity-specific zero rate is , so the flat-4% factor agrees exactly at this maturity: . This identity holds for any integrable forward curve; linearity makes the average easy to calculate. One maturity average does not determine discount factors at other maturities.
import numpy as np
from scipy import integrate
def instantaneous_forward(t):
"""Time-zero forward curve: f(0,t) = 3% + 0.2% per year."""
return 0.03 + 0.002 * t
def discount_factor(T):
"""Compute discount factor from 0 to T under time-varying rates."""
integral, _ = integrate.quad(instantaneous_forward, 0, T)
return np.exp(-integral)
# Calculate discount factors for various maturities
maturities = np.array([1, 2, 5, 10, 20, 30])
discount_factors = np.array([discount_factor(T) for T in maturities])Discount Factors Under Upward-Sloping Yield Curve: --------------------------------------------- Maturity (years) Discount Factor PV of $1000 --------------------------------------------- 1 0.969476 $969.48 2 0.938005 $938.00 5 0.839457 $839.46 10 0.670320 $670.32 20 0.367879 $367.88 30 0.165299 $165.30
The discount factors decrease with maturity because the accumulated rate increases. Relative to a flat 4% curve, the time-varying factor is higher for , equal at , and lower for ; a global claim that its decline always accelerates would be incorrect.


Pricing a Bond with Continuous Coupons
Consider a bond paying continuous coupon at rate per year on a principal of , maturing at time . Coupon bonds normally pay on discrete dates. A continuous-coupon stream is a simplifying model and can approximate a sufficiently frequent payment schedule when the coupon timing and discount curve are smooth. The present value combines the stream of coupons and the principal repayment:
where:
- : present value of the bond
- : continuous coupon rate (per year)
- : principal (face value)
- : maturity time
- : discount factor from time to time
The first term captures the present value of all coupon payments: at each instant , the bond pays per year, and this payment is discounted back to today using . The second term is the present value of the principal repayment at maturity.
With our upward-sloping instantaneous forward curve:
def bond_price(principal, coupon_rate, maturity):
"""Price a bond with continuous coupons under time-varying rates."""
# Present value of coupon stream
def coupon_pv_integrand(t):
return coupon_rate * principal * discount_factor(t)
coupon_pv, _ = integrate.quad(coupon_pv_integrand, 0, maturity)
# Present value of principal
principal_pv = principal * discount_factor(maturity)
return coupon_pv + principal_pv
# Price a 10-year bond with 4% coupon
principal = 1000
coupon_rate = 0.04
maturity = 10
price = bond_price(principal, coupon_rate, maturity)Bond Parameters: Principal: $1,000 Coupon rate: 4.0% Maturity: 10 years Bond Price: $1,005.54 Coupon PV: $335.22 Principal PV: $670.32
The bond is slightly above par, at about $1,005.54. Its cumulative average forward rate is below 4% for every , equaling 4% at maturity. Thus each earlier coupon has a larger discount factor than under the flat-4% continuous-coupon bond, while principal has the same factor. The instantaneous forward itself is below 4% only during the first five years.