Here is a handy tool to help you amortize the premium or discount on bonds or notes by the yield to maturity method when it is required by the tax code, as more fully explained under the "Bonds & Notes" section of this website.
See note below for how to handle more complicated bonds with multiple call dates bought at a premium.
Once you have the amortization table, you can calculate your cost basis at any point in time by "interpolating" between the value points. For instance, if a bond is sold in the middle of a month, prorate the premium that would have been amortized for that month for the number of days that you held it, and add that to the amortized cost basis value for the previous period.
Click on the image below to access our amortization table generator. It will automatically compute the adjusted cost basis of your bond over the term of the bond.
Amortization Calculator
If you are having difficulty with the amortization table because it is not ending at or near par value for YTM, you need to check the Yield to Maturity number that you are using. Click on the image of the Yield Calculator at the right to verify the YTM. Use as many decimal places as possible in entering the yield. The yield quoted on your bond trade confirmation has been rounded to three or four decimal places. If you recompute the yield to six decimal places using the Yield Calculator, you will get a better result for your amortization table.
Yield Calculator
The amortization table generator is not set up to generate the proper amortization for the entire term of a tax-exempt bond bought at a premium with multiple call dates. This is a special case which requires more manual processing. See a sample amortization in our Excel worksheet by clicking the image to the right. This worksheet has an example of bond premium amortization for a municipal bond with multiple calls which you can use as a guide. Basically, you can use the amortization table generator for each phase of the bond after you determine the yield to call and call price to use for each phase. You will need to recalculate all the yields at the end of each phase using the yield calculator.