A zero-coupon bond is a bond that does not pay any periodic interest except on maturity, where the principal or face value is repaid. Zero-coupon bonds are also called pure discount bonds.
A zero-coupon bond can be valued as follows:
Here, y is the annually-compounded yield or rate of the bond, and t is the time remaining to the maturity of the bond.
Let's take a look at an example of a five-year zero-coupon bond with a face value of $100. The yield is 5%, compounded annually. The price can be calculated as follows:
A simple Python zero-coupon bond calculator can be used to illustrate this example:
In [ ]:
def zero_coupon_bond(par, y, t):
"""
Price a zero coupon bond.
:param par: face value of the bond.
:param y: annual yield or rate of the bond.
:param t: time to maturity, in years.
...