Question Details

No question body available.

Tags

bonds

Answers (1)

Accepted Answer Available
Accepted Answer
February 13, 2025 Score: 2 Rep: 1,207 Quality: High Completeness: 80%

Given the annual coupon rate of c, current yield of r, and yield to maturity of y for a bond making a coupon payment once a year and assuming the first coupon payment is exactly a year from now, you can calculate n, the time in years left until maturity, using the following formula:

n = [ln(F - C/y) - ln(P - C/y)] / ln(1+y)

where ln is the natural logarithm, F is the face value of the bond which you can assume to be any number such as 100, C is the annual coupon payment and P is the current price of the bond calculated as:

C = c x F,

P = C / r.

The formula is derived from the bond price (valuation) formula of:

P = sum(C / (1+y)^i) + F / (1+y)^n 

where i = 1, ..., n, and the slightly rearranged geometric series formula of:

sum(1 / (1+y)^i) = 1 / y x [1 - 1 / (1+y)^n] 

where i = 1, ..., n which in turn is based on the classic geometric series formula of:

sum(z^j) = (1 - z^n) / (1 - z)

where j = 0, ..., n-1 and |z| < 1.

As an example, suppose there is a bond with an annual coupon rate of 5%, current yield of 5.0684%, and YTM of 5.5%. Assume the face value F is 100. Then,

C = 5% x 100 = 5,
P = 5 / 5.0684% = 98.65.

Plugging these into the formula for n, we get:

n = [ln(100 - 5/5.5%) - ln(98.65 - 5/5.5%)] / ln(1 + 5.5%)
  = 3.00 years.

Though the formula’s derivation is not that complicated, I did not include it in this answer because I could not figure out how to present it both legibly and nicely given the lack of formatting support for mathematical formulas in this stack exchange.

In case the first coupon payment is not exactly a year from now, the question should include the coupon’s date and the formula for n gets slightly more complicated to account for the change.