Calculating the Price of a Bond with an Odd Last Coupon
Nov
6
Written by:
Charles Flock
11/6/2008 10:58 PM
When we say that a bond has an odd last coupon, what do we mean?
Generally, buying a bond is the equivalent of buying a regular series of cash flows (the coupon) and a future value (the redemption amount). In the blog posting Calculating the Price of a bond (without using the PRICE function), we demonstrated how the price of a bond could be calculated without using the PRICE function, simply by using the PV function, precisely because the bond has this attribute of regular periodic cash flows and a future value.
Not all bonds meet these criteria, however. In this article we will discuss bonds that have what is known as an odd last coupon. As usual there are plenty of text books and on-line articles that document the pricing associated with bonds that have odd last coupons, but they are very complicated and generally only deal with the simplest cases and never get into the nitty-gritty of the calculation. Hopefully, we can do a better job of that, here. For purposes of this blog entry, we are going to deal with bonds that settle before the last interest date as bonds that settle on or after the last interest date are priced differently.
When we talk about bonds being ‘regular’, we mean that they pay the same amount of interest at the same time of the month either annually, semi-annually, or quarterly. For bonds that pay interest semi-annually, that could mean interest might be due on the 15th of January and July, or on the last day of March and September, or on the first day of February and August. The important thing to note is that the interest amount is fixed (and is calculated as the coupon rate multiplied by par divided by the frequency of the coupon payment).
When bonds are bought or sold for settlement on their coupon dates, the calculation of the price (or yield) for the bond is simplified because we do not need to account for partial periods, which is just a way of saying that there is no accrued interest to be calculated. When the settlement date occurs after the coupon date, then the seller of the bond is paid that portion of the coupon interest that has been earned from the previous coupon date to the settlement date. It is only under these conditions that we need to worry about day count conventions.
The day count conventions tell us how to count the days from one coupon date to the next. There are plenty of on-line resources that do an excellent job of describing these rules, but you can look here http://en.wikipedia.org/wiki/Day_count_convention.
When we say that a bond has an odd last coupon, what do we mean? This terminology refers to the fact that the final payment for the bond occurs on a date that is out of synch with the rest of the coupon dates. It might be that the bond pays interest on the 15th of March and September except for the final payment which will be made on the 1st of October instead of the 15th of September. Or, maybe it will be made on the 1st of September, instead of the 15th.
In the first case, where the coupon period has been lengthened, we refer to the bond as having an odd long last coupon, since the final coupon period is longer than the usual coupon period. In the second case, we refer to the bond as having an odd short last coupon, since the final coupon period is shorter than the usual coupon period. There are a variety of reasons why this occurs, but none of them are really important to this discussion.
First, let’s deal with a bond that has an odd long last coupon. Let’s assume the following facts about the bond:
settlement
|
9/10/2006
|
maturity
|
3/20/2009
|
last interest
|
9/10/2008
|
rate
|
0.05
|
yield
|
0.055
|
redemption
|
100
|
frequency
|
2
|
basis
|
0
|
The settlement is the date that when the bond is exchanged for cash. The maturity date is the date on which the redemption amount and the final coupon are paid. The rate is the coupon rate of bond, expressed in decimal format. The yield is the value that is going to be used in calculating the price of the bond, expressed in decimal format. The redemption amount is the amount as a percentage of par to be paid at maturity. The frequency specifies how many times per year the coupon interest is paid. The basis is the day count convention, which in this case is 30/360 US, meaning that the year is assumed to consist of twelve 30-day months.
The ODDLPRICE function returns the price of the bond directly:
select wct.ODDLPRICE('9/10/2006'
,'3/20/2009'
,'9/10/2008'
,.05
,.055
,100
,2
,0)
Returns the following:
----------------------
98.8331577049215
(1 row(s) affected)
The following table demonstrates how that result was calculated:
Coupon No.
|
Date
|
Cash Flow
|
Discount Factor
|
Discounted Cash Flow
|
1
|
3/10/2007
|
2.5
|
1.0275^-1
|
2.433090024
|
2
|
9/10/2007
|
2.5
|
1.0275^-2
|
2.367970827
|
3
|
3/10/2008
|
2.5
|
1.0275^-3
|
2.304594478
|
4
|
9/10/2008
|
2.5
|
1.0275^-4
|
2.242914334
|
5
|
3/10/2009
|
0
|
1.0275^-5
|
0
|
5.055556
|
3/20/2009
|
102.6389
|
1.0275^-(5+10/180)
|
89.48458804
|
There are a few interesting things to point out. First, unlike with regular periodic coupons, the coupon dates are calculated from the last interest date backwards, rather than from the maturity date. So there are 4 full coupons from the settlement date to the last interest date.
Second, the interest amount at maturity is not a regular coupon payment (it is ‘odd’) and needs to be calculated. The calculation is just like the accrued interest calculation, with the following exception. For odd long coupon periods, we do not calculate the number of days as the number of days from the last coupon date to the maturity date. We need to calculate something that is often referred to as the quasi-coupon date, which is simply the date a coupon would have been period if the bond did not have this odd period.
In our table, the quasi-coupon date is 3/10/2009, and you can see that we have assigned it a cash flow value of zero.
There will be an interest payment on the 20th, though, and that represents 10 days of interest from the 10th of March to the 20th of March. Since the basis for this transaction is 30/360 US, we know that there 180 days in the period. It the basis had been actual/actual we would have had to calculate the number of days from quasi-coupon date to the next quasi-coupon date, which in this case is 9/10/2009. The accrued interest fraction is calculated as the number of whole quasi-coupons (1) plus the number of days from the previous quasi-coupon date to the maturity date (10) divided by the number of days in the quasi-coupon period (180). Then the formula is straightforward
Accrued fraction = 1+10/180
Interest at maturity = par * rate/frequency * accrued fraction
Interest at maturity = 100 * .05/2 * 1.0555555556
Interest at maturity = 2.6389
Then, the final cash flow is interest at maturity plus redemption amount
cash flow at maturity = 100 + 2.6389
It should also be obvious at this point that the discount factor that is used for the cash flow at maturity is the accrued fraction calculated in the interest at maturity step, plus the number of whole coupons from the settlement date to the last interest date (4 + 1 + 10/180).
To calculate the discount factor, take 1 plus the yield divided by the frequency (1 + Yield/2) raised to the negative coupon number. Multiply the cash flow amount by the discount factor resulting in the discounted cash flow. Sum the discounted cash flows to arrive at the price of the bond.
As with most examples that I can find (whether on-line or in textbooks), this is a relatively simple example, in that we do not have to deal with accrued interest. So let’s advance one day forward in time and see what that does to the calculation.
settlement
|
9/11/2006
|
maturity
|
3/20/2009
|
last interest
|
9/10/2008
|
rate
|
0.05
|
yield
|
0.055
|
redemption
|
100
|
frequency
|
2
|
basis
|
0
|
Again, the ODDLPRICE function returns the price of the bond directly:
select wct.ODDLPRICE('9/11/2006'
,'3/20/2009'
,'9/10/2008'
,.05
,.055
,100
,2
,0)
Returns the following:
----------------------
98.8341655600417
(1 row(s) affected)
The following table demonstrates how that result was calculated:
Coupon No.
|
Date
|
Cash Flow
|
Discount Factor
|
Discounted Cash Flow
|
0
|
3/10/2007
|
2.5
|
1.0275^0
|
2.5
|
1
|
9/10/2007
|
2.5
|
1.0275^-1
|
2.433090024
|
2
|
3/10/2008
|
2.5
|
1.0275^-2
|
2.367970827
|
3
|
9/10/2008
|
2.5
|
1.0275^-3
|
2.304594478
|
4
|
3/10/2009
|
0
|
1.0275^-4
|
0
|
4.055556
|
3/20/2009
|
102.6389
|
1.0275^-(4+10/180)
|
91.94541421
|
Sub-Total
|
|
|
|
101.5510695
|
|
|
|
1.0275^-(179/180)
|
98.84805445
|
ACCRINT
|
|
|
|
0.01388889
|
PRICE
|
|
|
|
98.83416556
|
As we saw with a bond that has regular periodic coupons, the coupon numbers have changed, representing the number of whole coupons remaining over the life of the bond. Since the settlement date is greater than the previous coupon date, the current period does not count as a whole coupon period and all the coupon periods are one less than they were when the bond settled on the 10th. And we now need to account for the accrued interest, which is 1/180th of the coupon interest and we need to account for the number of days from the settlement date until the next coupon date, which is 179.
The cash flows are the same as they were when the bond settled on the 10th. However, the discount factors have changed by 1, reflecting the reduction in the number of whole coupons by 1. The sum of the discounted cash flows, 101.5510695, represents the value of those cash flows as at the next coupon date. To reflect the value as at the settlement date we multiply that amount by 1.0275-(179/180) with the exponent representing the number of days from the settlement date to the next coupon date divided by the number of days in the coupon period. This number reflects the day count conventions that have been used in the calculation. The result of that calculation is 98.84805445.
This amount represents what is known as the dirty price of the bond, which includes the accrued interest. The ODDLPRICE calculation calculates the clean price of the bond, which is the price of the bond without the accrued interest. The accrued interest in this case is 2.5 (the coupon amount) multiplied by 1/180 (the number of days from the previous coupon date to the settlement date divided by the number of days in the period). Again, the day count conventions come into play in calculation both the numerator and the denominator. The accrued interest is 0.01388889. The dirty price minus the accrued interest gives us the clean price of the bond, 98.83416556, which is the same result returned by the select statement.
What about bonds with an odd last period that is shorter than a regular coupon period? Let’s assume the following facts about the bond:
settlement
|
9/10/2006
|
maturity
|
6/10/2009
|
last interest
|
3/10/2009
|
rate
|
0.05
|
yld
|
0.055
|
redemption
|
100
|
frequency
|
2
|
basis
|
1
|
Again, we can calculate the price directly in a T-SQL statement:
select wct.ODDLPRICE('9/10/2006'
,'6/10/2009'
,'3/10/2009'
,.05
,.055
,100
,2
,1)
which returns the following result:
----------------------
98.747213511112
(1 row(s) affected)
Using the same format as we used in the odd long coupon, we can see how that price was calculated:
Coupon No.
|
Date
|
Cash Flow
|
Discount Factor
|
Discounted Cash Flow
|
1
|
3/10/2007
|
2.5
|
1.0275-1
|
2.433090024
|
2
|
9/10/2007
|
2.5
|
1.0275-2
|
2.367970827
|
3
|
3/10/2008
|
2.5
|
1.0275-3
|
2.304594478
|
4
|
9/10/2008
|
2.5
|
1.0275-4
|
2.242914334
|
5
|
3/10/2009
|
2.5
|
1.0275-5
|
2.182884997
|
5.500000
|
6/10/2009
|
101.25
|
1.0275-5.5
|
87.21575885
|
|
|
|
|
98.74721351
|
Notice that since the last coupon period is a short period, the accrued fraction represents the number of days from last interest date (3/10/2009) to the maturity date (6/10/2009) divided by the number of days in the quasi-coupon period 3/10/2009 to 9/10/2009. Since the day count convention for this bond is actual/actual, that fraction is 92/184 or ½.
Let’s look at what happened if we bought the bond for settlement one day later. Again, we can get the price directly by entering a T-SQL statement:
select wct.ODDLPRICE('9/11/2006'
,'6/10/2009'
,'3/10/2009'
,.05
,.055
,100
,2
,1)
which returns the following result:
----------------------
98.7482029093388
(1 row(s) affected)
The following table demonstrates this calculation:
Coupon No.
|
Date
|
Cash Flow
|
Discount Factor
|
Discounted Cash Flow
|
0
|
3/10/2007
|
2.5
|
1.02750
|
2.5
|
1
|
9/10/2007
|
2.5
|
1.0275-1
|
2.433090024
|
2
|
3/10/2008
|
2.5
|
1.0275-2
|
2.367970827
|
3
|
9/10/2008
|
2.5
|
1.0275-3
|
2.304594478
|
4
|
3/10/2009
|
2.5
|
1.0275-4
|
2.242914334
|
4.5
|
6/10/2009
|
101.25
|
1.0275-4.5
|
89.61419222
|
Sub-Total
|
|
|
|
101.4627619
|
|
|
|
1.0275^-(180/181)
|
98.76201506
|
ACCRINT
|
|
|
|
0.01381215
|
PRICE
|
|
|
|
98.74820291
|
Again, this is very much like the odd long last coupon. The number of whole quasi-coupon periods is zero. There is one day’s accrued interest, which is 2.5 divided by 181 (there are 181 days in the coupon period of the settlement date, 9/10/2006 to 3/10/2007). There are 180 days from the settlement date to the next coupon date.
Hopefully, this provides some enlightenment on the mechanics of calculating the price for a bond with an odd last coupon. In another article, we will discuss the rules for pricing of bonds where there is only one cash flow remaining (the maturity amount).