Annual (1x per year)
Semiannual (2x per year)
Quarterly (4x per year)
Total Coupon Income:–
Interest on Interest (Reinvestment):–
Capital Gain/Loss:–
Total Future Value:–
Annualized Realized Return:–
Understanding Realized Rate of Return on Bonds
The Realized Rate of Return (also known as the Horizon Yield) provides a more realistic measure of a bond investment's profitability than the standard Yield to Maturity (YTM). While YTM assumes you hold the bond until it matures and reinvest all coupons at the same YTM rate, the Realized Rate of Return accounts for real-world scenarios where:
You sell the bond before it matures (introducing market price risk).
You reinvest your coupon payments at a rate different from the original yield (reinvestment risk).
How the Calculation Works
This calculator determines the annualized compound return by analyzing three distinct sources of income generated by the bond over the holding period:
Coupon Income: The sum of all periodic interest payments received.
Interest on Interest: The income generated by reinvesting those coupon payments. This is calculated using the geometric series formula for future value based on your specified Reinvestment Rate.
Capital Gain or Loss: The difference between what you paid for the bond (Purchase Price) and what you sold it for (Sale Price).
The formula combines the total future value of these components and annualizes the growth rate relative to the initial investment:
Realized Return = [ (Total Future Value / Purchase Price) ^ (1 / Years Held) ] – 1
Why Reinvestment Rates Matter
Many investors overlook the power of interest on interest. If interest rates rise after you buy a bond, you can reinvest your coupons at a higher rate, potentially increasing your realized return. Conversely, if rates fall, your reinvestment income drops, dragging down your total return even if the bond's price appreciates.
Example Scenario
Imagine you buy a bond with a $1,000 face value and a 5% coupon for $950. You hold it for 5 years.
If you reinvest coupons at 3% (lower than the coupon rate), your realized return will differ significantly from the initial YTM.
If you sell the bond after 5 years for $980 instead of holding to maturity ($1,000), this capital gain/loss further adjusts the final annualized percentage.
function calculateBondReturn() {
// 1. Get Input Values
var purchasePrice = parseFloat(document.getElementById('purchasePrice').value);
var faceValue = parseFloat(document.getElementById('faceValue').value);
var couponRate = parseFloat(document.getElementById('couponRate').value);
var reinvestRate = parseFloat(document.getElementById('reinvestRate').value);
var yearsHeld = parseFloat(document.getElementById('holdingPeriod').value);
var salePrice = parseFloat(document.getElementById('salePrice').value);
var frequency = parseInt(document.getElementById('frequency').value);
// 2. Validate Inputs
if (isNaN(purchasePrice) || isNaN(faceValue) || isNaN(couponRate) ||
isNaN(reinvestRate) || isNaN(yearsHeld) || isNaN(salePrice)) {
alert("Please enter valid numbers in all fields.");
return;
}
if (purchasePrice <= 0 || yearsHeld = 0 ? '#27ae60' : '#c0392b';
document.getElementById('displayTotalFV').innerHTML = formatter.format(totalFutureValue);
document.getElementById('displayReturn').innerHTML = realizedReturnPercent.toFixed(2) + "%";
}