Excel Formula for this calculation: =(End_Value/Start_Value)^(1/Months)-1
How to Calculate Monthly Growth Rate in Excel
Understanding the trajectory of your business, investment, or social media following often requires more than just looking at the total change. The Monthly Growth Rate, specifically the Compounded Monthly Growth Rate (CMGR), provides a smoothed-out average of how much you are growing every single month over a specific period.
Whether you are analyzing revenue growth for a startup pitch deck, tracking active users, or monitoring inventory turnover, this metric is essential for forecasting future performance.
The Logic: Simple Growth vs. CMGR
There are two ways to look at monthly growth:
Simple Month-over-Month (MoM): This compares one month directly to the previous month. It is volatile and changes frequently.
Compounded Monthly Growth Rate (CMGR): This measures the implied steady growth rate over a longer period (e.g., 6 or 12 months) assuming the growth happened at a constant rate. This is the standard for long-term trend analysis.
Excel Formula for Monthly Growth Rate
To calculate the monthly growth rate in Excel based on a starting value and an ending value over a set number of months, you use the exponentiation formula. You do not need a specialized Excel function; standard mathematical operators work perfectly.
Cell A1 (Start Value): Enter your starting metric (e.g., 1000 users).
Cell B1 (End Value): Enter your ending metric (e.g., 1500 users).
Cell C1 (Months): Enter the duration in months (e.g., 6).
Cell D1 (Result): Enter the formula: =(B1/A1)^(1/C1)-1
Format: Click the "%" button in the Excel ribbon to view the result as a percentage.
Real-World Example Calculation
Imagine your company started the year with $50,000 in Monthly Recurring Revenue (MRR). After 12 months, the MRR grew to $85,000.
Using the calculator above or the Excel formula:
Start Value: 50,000
End Value: 85,000
Period: 12 months
The math is: (85000 / 50000) ^ (1/12) - 1. This results in approximately 0.045 or 4.5%. This means your revenue grew at an average compounded rate of 4.5% every month.
Handling Negative Growth
If your ending value is lower than your starting value, the formula will automatically return a negative percentage, indicating a monthly contraction rate (or churn).
function calculateGrowth() {
// Get input elements by ID
var startInput = document.getElementById('startValue');
var endInput = document.getElementById('endValue');
var monthsInput = document.getElementById('periodMonths');
var resultBox = document.getElementById('resultBox');
var resultValue = document.getElementById('resultValue');
var errorMsg = document.getElementById('errorMsg');
var excelDisplay = document.getElementById('excelFormulaDisplay');
// Parse values
var startVal = parseFloat(startInput.value);
var endVal = parseFloat(endInput.value);
var months = parseFloat(monthsInput.value);
// Reset display
resultBox.style.display = 'none';
errorMsg.style.display = 'none';
// Validation Logic
if (isNaN(startVal) || isNaN(endVal) || isNaN(months)) {
errorMsg.innerText = "Please enter valid numbers for all fields.";
errorMsg.style.display = 'block';
return;
}
if (months <= 0) {
errorMsg.innerText = "Period must be greater than 0 months.";
errorMsg.style.display = 'block';
return;
}
if (startVal === 0) {
errorMsg.innerText = "Starting value cannot be zero for growth rate calculation.";
errorMsg.style.display = 'block';
return;
}
// Calculation: CMGR = (End / Start) ^ (1 / Months) – 1
// Using Math.pow for exponentiation
var ratio = endVal / startVal;
// Handle negative base for fractional exponent issues (Realistically growth bases are positive entities)
if (ratio < 0) {
errorMsg.innerText = "Calculation error: Cannot calculate root of negative growth ratio. Ensure start and end values have the same sign (usually positive).";
errorMsg.style.display = 'block';
return;
}
var exponent = 1 / months;
var cmgrDecimal = Math.pow(ratio, exponent) – 1;
var cmgrPercent = cmgrDecimal * 100;
// Display Results
resultValue.innerText = cmgrPercent.toFixed(2) + "%";
// Dynamic Excel Formula string
excelDisplay.innerText = "=(" + endVal + "/" + startVal + ")^(1/" + months + ")-1";
resultBox.style.display = 'block';
}