Use the calculators below to perform Discounted Cash Flow (DCF) analysis. You can either calculate the Terminal Value using the Gordon Growth Model or derive the Implied Terminal Growth Rate from a known Terminal Value.
1. Calculate Terminal Value
Estimate the value of perpetuity using a stable growth rate.
WACC must be higher than the Growth Rate.
Estimated Terminal Value
–
2. Calculate Implied Growth Rate
Reverse engineer the growth rate required to justify a specific Terminal Value.
Please enter valid positive numbers.
Implied Terminal Growth Rate
–
How is Terminal Growth Rate Calculated?
The Terminal Growth Rate is a critical assumption in the Discounted Cash Flow (DCF) valuation method. It represents the constant rate at which a company's Free Cash Flow (FCF) is expected to grow indefinitely after the explicit projection period. Because this rate applies to perpetuity, small changes in the input can lead to massive differences in valuation.
The Gordon Growth Model Formula
The most common way to apply the terminal growth rate is via the Gordon Growth Model (Perpetuity Growth Method). The formula to find the Terminal Value (TV) is:
TV = [ FCFn × (1 + g) ] / ( WACC – g )
Where:
TV: Terminal Value (Value of the company beyond the projection period).
FCFn: Free Cash Flow in the final year of the projection period.
g: Terminal Growth Rate (The perpetuity growth rate).
WACC: Weighted Average Cost of Capital (The discount rate).
How to Calculate the Implied Terminal Growth Rate
Often, analysts will determine the Terminal Value using an "Exit Multiple" (e.g., 10x EBITDA) rather than assuming a growth rate directly. To sanity-check this valuation, they calculate the Implied Terminal Growth Rate. This tells you what growth assumption is baked into that Exit Multiple.
By rearranging the Gordon Growth formula, we can solve for g:
g = ( (TV × WACC) – FCFn ) / ( TV + FCFn )
Using the calculator above, you can input a target Terminal Value to see what growth rate it implies. If the implied rate is significantly higher than the economy's GDP growth (e.g., > 4-5%), the valuation might be unrealistic.
Selecting a Reasonable Growth Rate
When inputting a terminal growth rate, it is crucial to remain conservative. Since no company can grow faster than the overall economy forever, the terminal growth rate is typically capped at the country's long-term GDP growth rate or the inflation rate.
Typical Range: 2.0% to 4.0% (Mature markets).
Inflation Floor: It should generally not be lower than inflation unless the business is in secular decline.
GDP Ceiling: It should not exceed the projected long-term GDP growth rate.
Why WACC Must Be Higher Than the Growth Rate
Mathematically, the Gordon Growth Model requires the cost of capital (WACC) to be higher than the growth rate (g). If g exceeds WACC, the denominator becomes negative, implying an infinite or negative valuation, which is impossible in finance. This reflects the economic reality that a company growing faster than its cost of capital forever would eventually consume the entire economy.
function formatCurrency(num) {
return new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', maximumFractionDigits: 0 }).format(num);
}
function formatPercent(num) {
return num.toFixed(2) + '%';
}
function calculateTerminalValue() {
// 1. Get Elements
var fcfInput = document.getElementById('fcfInput');
var waccInput = document.getElementById('waccInput');
var growthRateInput = document.getElementById('growthRateInput');
var resultDisplay = document.getElementById('tvResult');
var errorDisplay = document.getElementById('tvError');
// 2. Parse Values
var fcf = parseFloat(fcfInput.value);
var wacc = parseFloat(waccInput.value) / 100; // Convert % to decimal
var g = parseFloat(growthRateInput.value) / 100; // Convert % to decimal
// 3. Validation
if (isNaN(fcf) || isNaN(wacc) || isNaN(g)) {
resultDisplay.innerText = "-";
return;
}
if (wacc <= g) {
errorDisplay.style.display = 'block';
resultDisplay.innerText = "Invalid";
return;
} else {
errorDisplay.style.display = 'none';
}
// 4. Calculation: TV = [ FCF * (1 + g) ] / ( WACC – g )
// Note: FCF input is usually the final projected year (n). The formula uses FCF(n+1) which is FCF(n) * (1+g).
var fcfNextYear = fcf * (1 + g);
var terminalValue = fcfNextYear / (wacc – g);
// 5. Output
resultDisplay.innerText = formatCurrency(terminalValue);
}
function calculateImpliedRate() {
// 1. Get Elements
var tvInput = document.getElementById('targetTVInput');
var fcfInput = document.getElementById('fcfImpliedInput');
var waccInput = document.getElementById('waccImpliedInput');
var resultDisplay = document.getElementById('impliedResult');
var errorDisplay = document.getElementById('impliedError');
// 2. Parse Values
var tv = parseFloat(tvInput.value);
var fcf = parseFloat(fcfInput.value);
var wacc = parseFloat(waccInput.value) / 100;
// 3. Validation
if (isNaN(tv) || isNaN(fcf) || isNaN(wacc) || tv <= 0 || fcf <= 0) {
errorDisplay.style.display = 'block';
resultDisplay.innerText = "-";
return;
} else {
errorDisplay.style.display = 'none';
}
// 4. Calculation: Solving g from TV = [ FCF * (1 + g) ] / ( WACC – g )
// TV * (WACC – g) = FCF * (1 + g)
// (TV * WACC) – (TV * g) = FCF + (FCF * g)
// (TV * WACC) – FCF = (TV * g) + (FCF * g)
// (TV * WACC) – FCF = g * (TV + FCF)
// g = ((TV * WACC) – FCF) / (TV + FCF)
var numerator = (tv * wacc) – fcf;
var denominator = tv + fcf;
var impliedG = numerator / denominator;
var impliedGPercent = impliedG * 100;
// 5. Output
resultDisplay.innerText = formatPercent(impliedGPercent);
}