How is Terminal Growth Rate Calculated

Terminal Growth Rate & Value Calculator :root { –primary-color: #2c3e50; –secondary-color: #3498db; –accent-color: #e74c3c; –light-bg: #ecf0f1; –border-radius: 8px; –spacing: 20px; } body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; line-height: 1.6; color: #333; max-width: 1200px; margin: 0 auto; padding: 20px; } h1, h2, h3 { color: var(–primary-color); } .calculator-container { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-bottom: 50px; } .calc-card { background: #fff; padding: 30px; border-radius: var(–border-radius); box-shadow: 0 4px 15px rgba(0,0,0,0.1); border-top: 5px solid var(–secondary-color); } .calc-card.secondary { border-top-color: var(–primary-color); } .form-group { margin-bottom: 20px; } label { display: block; margin-bottom: 8px; font-weight: 600; font-size: 0.9em; color: #555; } input[type="number"] { width: 100%; padding: 12px; border: 1px solid #ddd; border-radius: 4px; font-size: 16px; box-sizing: border-box; transition: border-color 0.3s; } input[type="number"]:focus { border-color: var(–secondary-color); outline: none; } .btn-calc { width: 100%; padding: 15px; background-color: var(–secondary-color); color: white; border: none; border-radius: 4px; font-size: 16px; font-weight: bold; cursor: pointer; transition: background-color 0.3s; } .btn-calc:hover { background-color: #2980b9; } .secondary .btn-calc { background-color: var(–primary-color); } .secondary .btn-calc:hover { background-color: #1a252f; } .result-box { margin-top: 25px; padding: 20px; background-color: var(–light-bg); border-radius: 4px; text-align: center; } .result-label { font-size: 0.9em; color: #7f8c8d; margin-bottom: 5px; } .result-value { font-size: 2em; font-weight: 800; color: var(–primary-color); } .error-msg { color: var(–accent-color); font-size: 0.9em; margin-top: 10px; display: none; } .content-section { background: #fff; padding: 40px; border-radius: var(–border-radius); box-shadow: 0 2px 10px rgba(0,0,0,0.05); } .formula-box { background: #f8f9fa; padding: 15px; border-left: 4px solid var(–secondary-color); margin: 20px 0; font-family: "Courier New", monospace; } @media (max-width: 768px) { .calculator-container { grid-template-columns: 1fr; } }

Terminal Growth Rate & Value Calculator

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); }

Leave a Comment