Calculate CAGR and absolute growth of Operating or Free Cash Flow.
Compound Annual Growth Rate (CAGR)0.00%
Total Percentage Growth0.00%
Absolute Cash Flow Increase$0.00
How to Calculate Growth Rate of Cash Flows
Understanding the growth rate of a company's cash flow is fundamental to financial analysis and valuation. Whether you are analyzing Operating Cash Flow (OCF) or Free Cash Flow (FCF), the growth rate indicates how rapidly a business is generating liquid assets over time. This calculator helps investors and analysts determine both the Compound Annual Growth Rate (CAGR) and the total percentage change over a specific period.
Why Cash Flow Growth Matters
While net income is often highlighted in earnings reports, cash flow is considered a more truthful metric of a company's financial health. Profits can be manipulated through accounting practices, but cash flow represents the actual money moving in and out of the business.
Valuation: Higher cash flow growth rates typically lead to higher stock valuations (e.g., in Discounted Cash Flow models).
Solvency: Consistent growth ensures the company can pay debts, dividends, and fund future expansion without borrowing.
Sustainability: Comparing cash flow growth to earnings growth helps verify quality of earnings.
The Formula: Calculating CAGR
To smooth out volatility between years, the standard method for calculating multi-year growth is the Compound Annual Growth Rate (CAGR). This formula assumes the investment grew at a steady rate.
CAGR = ( Ending Value / Beginning Value )^(1 / n) – 1
Where:
Ending Value: Cash flow in the most recent period.
Beginning Value: Cash flow in the starting period.
n: The number of years or periods between the two values.
Calculation Example
Suppose a small business had a Free Cash Flow of $100,000 five years ago. Today, their Free Cash Flow is $150,000. To find the growth rate:
Divide the End Value by the Start Value: 150,000 / 100,000 = 1.5
Raise the result to the power of one divided by the years (1/5 = 0.2): 1.5^0.2 ≈ 1.08447
Subtract 1: 1.08447 – 1 = 0.08447
Multiply by 100 to get the percentage: 8.45%
This means the company's cash flow grew at an annualized rate of 8.45% over the 5-year period.
Handling Negative Cash Flows
Calculating growth rates becomes mathematically complex if the starting cash flow is negative (a deficit). The standard CAGR formula breaks because you cannot calculate a meaningful root of a negative base in this context. In such cases, analysts often look at the absolute dollar change or use "Not Meaningful" (NM) for the percentage growth, focusing instead on the trend toward profitability.
Operating vs. Free Cash Flow
You can use this calculator for both metrics, but they mean different things:
Operating Cash Flow (OCF): Cash generated from core business operations.
Free Cash Flow (FCF): OCF minus Capital Expenditures (CapEx). This is the cash available to shareholders.
function calculateCashFlowGrowth() {
// 1. Get input values by ID
var initialStr = document.getElementById("initialCF").value;
var finalStr = document.getElementById("finalCF").value;
var periodsStr = document.getElementById("numPeriods").value;
// 2. Validate inputs exist
if (initialStr === "" || finalStr === "" || periodsStr === "") {
alert("Please fill in all fields (Initial CF, Ending CF, and Periods).");
return;
}
// 3. Parse numbers
var initialVal = parseFloat(initialStr);
var finalVal = parseFloat(finalStr);
var periodsVal = parseFloat(periodsStr);
// 4. Validate Logic
if (isNaN(initialVal) || isNaN(finalVal) || isNaN(periodsVal)) {
alert("Please enter valid numeric values.");
return;
}
if (periodsVal <= 0) {
alert("Number of periods must be greater than zero.");
return;
}
// 5. Calculate Absolute Difference
var absoluteDiff = finalVal – initialVal;
// 6. Calculate Total Percentage Growth
// Formula: (End – Start) / Abs(Start)
// Note: If Start is 0, we cannot divide.
var totalPercentGrowth = 0;
var totalGrowthText = "";
if (initialVal === 0) {
totalGrowthText = "N/A (Start is 0)";
} else {
// We use Math.abs on the denominator to ensure directionality is correct relative to the baseline magnitude
totalPercentGrowth = ((finalVal – initialVal) / Math.abs(initialVal)) * 100;
totalGrowthText = totalPercentGrowth.toFixed(2) + "%";
}
// 7. Calculate CAGR
// Formula: (End / Start)^(1/n) – 1
// Limitation: If Start is negative or End/Start is negative, simple CAGR formula fails (imaginary numbers or meaningless financial interpretation).
var cagrVal = 0;
var cagrText = "";
if (initialVal <= 0 || finalVal <= 0) {
// Financial convention: CAGR is usually not meaningful if shifting between positive and negative, or starting negative.
cagrText = "N/A (Negative CF)";
} else {
cagrVal = (Math.pow((finalVal / initialVal), (1 / periodsVal)) – 1) * 100;
cagrText = cagrVal.toFixed(2) + "%";
}
// 8. Format Currency
var currencyFormatter = new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD',
minimumFractionDigits: 2
});
var formattedDiff = currencyFormatter.format(absoluteDiff);
// 9. Display Results
document.getElementById("cagrResult").innerText = cagrText;
document.getElementById("totalPercentResult").innerText = totalGrowthText;
document.getElementById("absoluteDiffResult").innerText = formattedDiff;
// Show the result container
document.getElementById("cfResults").style.display = "block";
}
function resetCFCalculator() {
document.getElementById("initialCF").value = "";
document.getElementById("finalCF").value = "";
document.getElementById("numPeriods").value = "";
document.getElementById("cfResults").style.display = "none";
}