Series I Bond Value Calculator
Use this calculator to estimate the current or future value of your Series I Savings Bond. You will need to know your bond's purchase date, its fixed rate component, and the semi-annual inflation rates that have applied or are expected to apply to your bond.
Calculation Results
Enter your bond details and click "Calculate" to see the estimated value.
.series-i-bond-calculator {
font-family: Arial, sans-serif;
max-width: 600px;
margin: 20px auto;
padding: 20px;
border: 1px solid #ccc;
border-radius: 8px;
background-color: #f9f9f9;
}
.series-i-bond-calculator h2, .series-i-bond-calculator h3 {
color: #333;
text-align: center;
margin-bottom: 15px;
}
.series-i-bond-calculator p {
font-size: 0.9em;
color: #555;
line-height: 1.5;
}
.calculator-inputs label {
display: block;
margin-bottom: 5px;
font-weight: bold;
color: #444;
}
.calculator-inputs input[type="number"],
.calculator-inputs select,
.calculator-inputs textarea {
width: calc(100% – 22px);
padding: 10px;
margin-bottom: 15px;
border: 1px solid #ddd;
border-radius: 4px;
box-sizing: border-box;
}
.calculator-inputs textarea {
resize: vertical;
min-height: 60px;
}
.calculator-inputs .input-help {
font-size: 0.85em;
color: #666;
margin-top: -10px;
margin-bottom: 15px;
}
.calculator-inputs button {
display: block;
width: 100%;
padding: 12px 20px;
background-color: #007bff;
color: white;
border: none;
border-radius: 4px;
font-size: 1em;
cursor: pointer;
transition: background-color 0.3s ease;
}
.calculator-inputs button:hover {
background-color: #0056b3;
}
.calculator-results {
margin-top: 20px;
padding-top: 15px;
border-top: 1px solid #eee;
}
.calculator-results div {
background-color: #e9ecef;
padding: 15px;
border-radius: 4px;
}
.calculator-results p {
margin-bottom: 8px;
color: #333;
}
.calculator-results p strong {
color: #000;
}
function calculateIBondValue() {
var purchaseAmount = parseFloat(document.getElementById("purchaseAmount").value);
var purchaseMonth = parseInt(document.getElementById("purchaseMonth").value);
var purchaseYear = parseInt(document.getElementById("purchaseYear").value);
var fixedRate = parseFloat(document.getElementById("fixedRate").value) / 100; // Convert percentage to decimal
var currentMonth = parseInt(document.getElementById("currentMonth").value);
var currentYear = parseInt(document.getElementById("currentYear").value);
var inflationRatesList = document.getElementById("inflationRatesList").value;
var inflationRatesArray = inflationRatesList.split(',').map(function(item) {
return parseFloat(item.trim());
}).filter(function(item) {
return !isNaN(item);
});
var resultDiv = document.getElementById("result");
resultDiv.innerHTML = ""; // Clear previous results
// Input validation
if (isNaN(purchaseAmount) || purchaseAmount <= 0) {
resultDiv.innerHTML = "Please enter a valid Purchase Amount.";
return;
}
if (isNaN(fixedRate) || fixedRate currentYear || (purchaseYear === currentYear && purchaseMonth > currentMonth)) {
resultDiv.innerHTML = "The 'Calculate Value As Of' date cannot be before the Purchase Date.";
return;
}
var purchaseDate = new Date(purchaseYear, purchaseMonth – 1, 1);
var currentDate = new Date(currentYear, currentMonth – 1, 1);
var value = purchaseAmount;
var totalInterestAccrued = 0;
var monthlyInterestAccrual = []; // To store interest accrued each month for penalty calculation
var monthsHeld = (currentDate.getFullYear() – purchaseDate.getFullYear()) * 12 + (currentDate.getMonth() – purchaseDate.getMonth());
if (monthsHeld < 0) { // Should be caught by earlier validation, but good to double check
resultDiv.innerHTML = "The 'Calculate Value As Of' date cannot be before the Purchase Date.";
return;
}
for (var month = 0; month currentDate) {
break; // Stop if we've passed the current date
}
// Determine the 6-month interest period index for the current month
// The bond's interest periods start on the 1st of the purchase month.
// Example: Purchased July. Period 1: July-Dec. Period 2: Jan-June.
// (currentCalcDate.getMonth() – purchaseDate.getMonth() + 12) % 12 gives month offset from purchase month
// (month) / 6 gives the 6-month period index relative to purchase date
var periodIndex = Math.floor(month / 6);
var semiAnnualInflationRate = 0;
if (periodIndex 0) {
// If not enough rates provided, use the last one as an estimate for future periods
semiAnnualInflationRate = inflationRatesArray[inflationRatesArray.length – 1];
}
// Composite Rate = Fixed Rate + (2 * Semi-Annual Inflation Rate) + (Fixed Rate * Semi-Annual Inflation Rate)
var compositeRate = fixedRate + (2 * semiAnnualInflationRate) + (fixedRate * semiAnnualInflationRate);
var monthlyRate = compositeRate / 6; // I-Bonds compound semi-annually, but value is updated monthly based on the 6-month rate.
var interestThisMonth = value * monthlyRate;
value += interestThisMonth;
totalInterestAccrued += interestThisMonth;
monthlyInterestAccrual.push(interestThisMonth);
}
var finalValue = value;
var penaltyAmount = 0;
var valueAfterPenalty = finalValue;
// I-Bond redemption rules:
// Cannot redeem before 12 months.
// If redeemed before 5 years, forfeit the last 3 months of interest.
// If redeemed before 12 months, forfeit all interest.
if (monthsHeld < 12) {
penaltyAmount = totalInterestAccrued;
valueAfterPenalty = purchaseAmount;
} else if (monthsHeld < 60) { // Less than 5 years
// Forfeit the last 3 months of interest
for (var k = 1; k = 0) {
penaltyAmount += monthlyInterestAccrual[monthlyInterestAccrual.length – k];
}
}
valueAfterPenalty = finalValue – penaltyAmount;
}
resultDiv.innerHTML =
"
Purchase Amount: $" + purchaseAmount.toFixed(2) + "" +
"
Months Held: " + monthsHeld + "" +
"
Estimated Value (Before Penalty): $" + finalValue.toFixed(2) + "" +
"
Total Interest Accrued: $" + totalInterestAccrued.toFixed(2) + "" +
"
Penalty for Early Redemption: $" + penaltyAmount.toFixed(2) + "" +
"
Estimated Value (After Penalty): $" + valueAfterPenalty.toFixed(2) + "";
}
Understanding Series I Savings Bonds
Series I Savings Bonds, often simply called I Bonds, are a type of savings bond issued by the U.S. Treasury. They are designed to protect your investment from inflation, offering a return that adjusts with the cost of living.
How I Bonds Work:
- Fixed Rate: When you purchase an I Bond, it comes with a fixed rate that remains the same for the life of the bond (up to 30 years). This rate can be 0% or higher, depending on market conditions at the time of purchase.
- Variable Rate (Inflation Rate): In addition to the fixed rate, I Bonds earn a variable rate that is tied to the Consumer Price Index for all Urban Consumers (CPI-U). This variable rate is announced twice a year, in May and November.
- Composite Rate: The actual interest rate your I Bond earns is a combination of its fixed rate and the variable (inflation) rate. The formula for the composite rate is:
Fixed Rate + (2 * Semi-Annual Inflation Rate) + (Fixed Rate * Semi-Annual Inflation Rate). This composite rate is applied for six-month periods.
- Compounding: Interest on I Bonds is compounded semi-annually. This means that the interest earned in one six-month period is added to the bond's principal, and the next period's interest is calculated on the new, larger principal.
- Maturity: I Bonds earn interest for 30 years or until you cash them, whichever comes first.
Key Considerations for Redemption:
- Minimum Holding Period: You cannot cash an I Bond until you've held it for at least 12 months.
- Early Redemption Penalty: If you cash an I Bond before holding it for five years, you will forfeit the last three months of interest. For example, if you cash a bond after 18 months, you'll receive 15 months of interest. If you cash it after 10 months (which is not allowed), you would forfeit all interest.
Finding Your Bond's Rates:
To use this calculator accurately, you'll need to know your specific bond's fixed rate and the historical semi-annual inflation rates that apply to its interest periods. You can find this information by logging into your TreasuryDirect account and viewing your bond details. TreasuryDirect also publishes historical fixed and variable rates.
When entering the "Semi-Annual Inflation Rates" in the calculator, ensure you list them in chronological order, starting with the rate that applied to your bond's very first 6-month interest period. For example, if you bought a bond in July, its first 6-month period would be July-December, and the applicable variable rate would be the one announced in May of that year.