The earnings rate for Series I Savings Bonds is a combination of two separate components: a Fixed Rate and a Semiannual Inflation Rate. These two rates are combined using a specific mathematical formula to determine the Composite Rate.
Composite Rate = [Fixed Rate + (2 x Semiannual Inflation Rate) + (Fixed Rate x Semiannual Inflation Rate)]
Understanding the Components
Fixed Rate: This rate is set when the bond is purchased and remains the same for the 30-year life of the bond.
Semiannual Inflation Rate: This rate is adjusted every six months (every May and November) based on changes in the Consumer Price Index for all Urban Consumers (CPI-U).
Composite Rate: This is the actual annual interest rate the bond earns for a specific six-month period.
Example Calculation
Suppose you have an I-Bond with a 1.30% fixed rate and the semiannual inflation rate is 1.97%. Here is how the math works:
Convert percentages to decimals: Fixed = 0.0130, Inflation = 0.0197.
Apply the formula: [0.0130 + (2 x 0.0197) + (0.0130 x 0.0197)]
Convert back to percentage: 5.27% (rounded to two decimal places).
Important Deadlines and Rules
I-Bonds must be held for at least 12 months. If you cash them in before 5 years, you lose the last three months of interest as a penalty. The composite rate can never go below zero, protecting your principal even during periods of deflation.
function calculateIBondRate() {
var fixedInput = document.getElementById("fixedRate").value;
var inflationInput = document.getElementById("semiannualInflation").value;
var f = parseFloat(fixedInput) / 100;
var i = parseFloat(inflationInput) / 100;
if (isNaN(f) || isNaN(i)) {
alert("Please enter valid numbers for both rates.");
return;
}
// Official Treasury Formula: Composite rate = [Fixed rate + (2 x semiannual inflation rate) + (Fixed rate x semiannual inflation rate)]
var compositeRate = f + (2 * i) + (f * i);
var compositePercentage = compositeRate * 100;
// Display result
var resultBox = document.getElementById("ibondResultBox");
var display = document.getElementById("compositeRateDisplay");
var explanation = document.getElementById("formulaExplanation");
resultBox.style.display = "block";
display.innerHTML = compositePercentage.toFixed(2) + "%";
explanation.innerHTML = "Calculation: [" + (f.toFixed(4)) + " + (2 x " + (i.toFixed(4)) + ") + (" + (f.toFixed(4)) + " x " + (i.toFixed(4)) + ")]";
// Scroll slightly to show result
resultBox.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}