Renowned for its business program, Baruch is not really known for the outstanding CIS programs offered. CIS majors are a small group; for the most part we have known each other for the last few years. As seniors it is easy for us to create groups and work together as we have countless other times in other courses. Financial Information Technologies is no different. Kervin, Mohamed and I have taken other courses together, and although we have not worked together before, we know what to expect from each other.
After finalizing the group members we each suggested projects best suited for us. For the semester group project, we chose to create a Bond Pricing Calculator using C# in Visual Studio 2005. Bond pricing seemed straight forward but it also provided various levels of intricacies. Once the topic was finalized, we began to discuss how to divide the work. Since most of the work was in programming the actual calculator, it was decided that two members would tackle it, leaving the other to the written portion. Kervin and Mohamed have more programming experience so the programming portion was mostly theirs. Although all members contributed to the overall project, I was left to do the written portion.
This overview is to provide descriptions and explanations for the various inputs required when evaluating pricing and returns associated with bonds. Typically, a bond pricing calculator is utilized to solve for the bond’s yield to maturity which considers the coupon rate, the time to maturity, the issue and settlement date, and assumes that interest payments are reinvested at the bond’s coupon rate. Our calculator goes further by adding bond price and derivative calculations.
To calculate a bond’s yield to maturity using the bond pricing calculator several inputs are needed. They include the spread, settlement date, maturity date, and coupon rate. The number of payments is derived from the payment terms.
Bond prices constantly change just as stocks and all publicly traded securities. For securities traded through an exchange, the last reported price at which a security was sold is the market value (price). The current pricing of the bond can be obtained from the exchange on which the bond trades.
Par value of a bond, also known as the face or principal value, is the amount the bondholder will receive at maturity. For example, a $1,000 par value bond will be worth $1,000 when it matures. The par value remains constant and it set when the bond is originally issued. Our bond calculator is based on this assumption and outputs for bond price, bond derivative and yield to maturity are added to the constant bond price, the outputs are added to any given bond price. . The spread is the difference, in basis points, between the yield curve created from the most recently issued bonds and 30-year treasuries. The settlement date is the date on which ownership of a security actually changes hands. For bonds, a purchaser begins to accrue interest on the settlement date. This information can be obtained from the bond terms.
All bonds have a maturity date which can range from a few months to many years. This date is important in the yield calculation because it determines the end of the interest payment cash flow stream and when the par value will be returned to the bond holder.
The coupon rate is the interest rate the bond will pay its holder. The coupon rate is a pre-determined rate at the time of issuance and will not change over the life of the bond; however, there are some bonds which have a variable interest rate tied to an external index.
Number of payments refers to the number of times the bond pays interest during the year. Typically in the US, bonds pay twice per year; however, there are bonds that pay more and less frequently. This input is also important to the yield calculation since bonds that pay more frequently (assuming everything else constant) will have a higher yield to maturity because of additional compounding.
Once the issue, settlement and maturity date, coupon rate, spread, and payment terms have been entered into the calculator, the calculate button will display the selected value. The value shown is added to any bond par value and can be used own its own for comparison.
In summary the calculator has been designed to respond to two bond evaluations: calculation of the yield to maturity and calculation of the market price in which the bond holder is provided ability to input a required rate of return.
Reuters Adfin Analytics 5.0 Bonds Guide was instrumental in the creation of our bond calculator. This guide provided programming code which was implemented in most of the bond calculator’s instructions. By utilizing this guide we were able to successfully communicate with Reuters data successfully.