Compound Annual Growth Rate (CAGR) Calculator
The Compound Annual Growth Rate (CAGR) is a popular metric used to measure the average annual growth rate of an investment over a specified period of time, assuming that profits are reinvested at the end of each year. It's a way to smooth out volatility and understand the performance of an investment as if it grew at a steady rate. CAGR is particularly useful for comparing the performance of different investments over the same time frame.
The formula for CAGR is:
CAGR = [(Ending Value / Beginning Value)^(1 / Number of Years)] – 1
.calculator-container {
font-family: Arial, sans-serif;
border: 1px solid #ccc;
padding: 20px;
border-radius: 8px;
max-width: 500px;
margin: 20px auto;
background-color: #f9f9f9;
}
.calculator-container h2 {
text-align: center;
color: #333;
margin-bottom: 15px;
}
.calculator-container p {
color: #555;
line-height: 1.6;
margin-bottom: 15px;
}
.calculator-container strong {
color: #000;
}
.calculator-inputs {
display: grid;
gap: 15px;
}
.input-group {
display: flex;
flex-direction: column;
}
.input-group label {
margin-bottom: 5px;
font-weight: bold;
color: #444;
}
.input-group input {
padding: 10px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 1em;
}
.calculator-inputs button {
background-color: #4CAF50;
color: white;
padding: 12px 20px;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 1.1em;
transition: background-color 0.3s ease;
}
.calculator-inputs button:hover {
background-color: #45a049;
}
#result {
margin-top: 20px;
padding: 15px;
background-color: #e0f7fa;
border: 1px solid #b2ebf2;
border-radius: 4px;
font-size: 1.2em;
font-weight: bold;
text-align: center;
color: #00796b;
}
function calculateCAGR() {
var beginningValue = parseFloat(document.getElementById("beginningValue").value);
var endingValue = parseFloat(document.getElementById("endingValue").value);
var numberOfYears = parseFloat(document.getElementById("numberOfYears").value);
var resultElement = document.getElementById("result");
if (isNaN(beginningValue) || isNaN(endingValue) || isNaN(numberOfYears) || beginningValue <= 0 || numberOfYears <= 0) {
resultElement.textContent = "Please enter valid positive numbers for all fields.";
resultElement.style.backgroundColor = '#ffcdd2';
resultElement.style.borderColor = '#ef5350';
resultElement.style.color = '#c62828';
return;
}
var cagr = Math.pow((endingValue / beginningValue), (1 / numberOfYears)) – 1;
var cagrPercentage = cagr * 100;
resultElement.textContent = "CAGR: " + cagrPercentage.toFixed(2) + "%";
resultElement.style.backgroundColor = '#e0f7fa';
resultElement.style.borderColor = '#b2ebf2';
resultElement.style.color = '#00796b';
}