Project your earnings for Step-Up Certificates of Deposit with increasing interest intervals.
Daily
Monthly
Quarterly
Annually
Tier 1
Tier 2
Tier 3
Final Maturity Balance:$0.00
Total Interest Earned:$0.00
Blended APY (Overall):0.00%
Total Term Length:0 Months
What is a Rising Rate (Step-Up) CD?
A Rising Rate CD, often called a "Step-Up CD," is a unique financial product where the interest rate increases at specific, predetermined intervals during the term. Unlike a fixed-rate Certificate of Deposit, which locks you into a single rate for the entire duration, a rising rate CD allows savers to benefit from higher yields as time progresses.
How to Use This Calculator
This tool is designed to calculate the complex compounding that occurs when interest rates change mid-term. To get an accurate projection:
Initial Deposit: Enter the amount of money you plan to deposit on day one.
Compounding Frequency: Select how often interest is calculated (Monthly is the most common for retail banks).
Tier Schedule: Input the Annual Percentage Rate (APR) and the duration (in months) for each step of the CD. Many Step-Up CDs have 3 or 4 tiers.
Example Calculation
Consider a 36-month Step-Up CD with a $10,000 deposit and the following structure:
Tier 1: 2.00% for months 1-12
Tier 2: 3.00% for months 13-24
Tier 3: 4.50% for months 25-36
In this scenario, the calculator doesn't just average the rates. It calculates the compound growth of the first 12 months, then uses that higher balance to calculate interest for the next 12 months at the 3.00% rate, and so on. This "compounding on growth" effect is why precision tools are necessary.
Advantages of Step-Up CDs
Feature
Benefit
Rate Protection
If market rates rise, you aren't stuck with a low "teaser" rate for the full term.
Higher Back-End Yield
Banks often offer very aggressive rates in the final tier to reward long-term commitment.
Predictability
Unlike a variable-rate account, step-up intervals and rates are guaranteed at the time of purchase.
function calculateRisingCD() {
var principal = parseFloat(document.getElementById('initial_deposit').value);
var compounding = parseInt(document.getElementById('compounding_freq').value);
if (isNaN(principal) || principal <= 0) {
alert("Please enter a valid initial deposit amount.");
return;
}
var tiers = [
{ rate: parseFloat(document.getElementById('t1_rate').value), months: parseInt(document.getElementById('t1_months').value) },
{ rate: parseFloat(document.getElementById('t2_rate').value), months: parseInt(document.getElementById('t2_months').value) },
{ rate: parseFloat(document.getElementById('t3_rate').value), months: parseInt(document.getElementById('t3_months').value) }
];
var currentBalance = principal;
var totalMonths = 0;
for (var i = 0; i 0) {
var rateDecimal = tier.rate / 100;
var yearsInTier = tier.months / 12;
// Formula for compound interest: A = P(1 + r/n)^(nt)
// We calculate for the specific duration of the tier
currentBalance = currentBalance * Math.pow((1 + (rateDecimal / compounding)), (compounding * yearsInTier));
totalMonths += tier.months;
}
}
if (totalMonths === 0) {
alert("Please enter at least one tier duration.");
return;
}
var totalInterest = currentBalance – principal;
var totalYears = totalMonths / 12;
// Calculate Blended APY: ((Final/Start)^(1/Years) – 1) * 100
var blendedAPY = (Math.pow((currentBalance / principal), (1 / totalYears)) – 1) * 100;
// Display results
document.getElementById('res_final_balance').innerText = '$' + currentBalance.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('res_total_interest').innerText = '$' + totalInterest.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('res_blended_apy').innerText = blendedAPY.toFixed(3) + '%';
document.getElementById('res_total_term').innerText = totalMonths + ' Months (' + totalYears.toFixed(1) + ' Years)';
document.getElementById('results_area').style.display = 'block';
}