.ipgr-calculator-wrapper {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
max-width: 800px;
margin: 0 auto;
padding: 20px;
background-color: #f9f9f9;
border: 1px solid #e0e0e0;
border-radius: 8px;
}
.ipgr-calculator-wrapper * {
box-sizing: border-box;
}
.ipgr-title {
text-align: center;
margin-bottom: 25px;
color: #2c3e50;
}
.ipgr-input-group {
margin-bottom: 20px;
background: #fff;
padding: 20px;
border-radius: 6px;
box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}
.ipgr-label {
display: block;
font-weight: 600;
margin-bottom: 8px;
color: #34495e;
}
.ipgr-input {
width: 100%;
padding: 12px;
border: 1px solid #cbd5e0;
border-radius: 4px;
font-size: 16px;
transition: border-color 0.3s;
}
.ipgr-input:focus {
border-color: #3498db;
outline: none;
box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.2);
}
.ipgr-help-text {
font-size: 0.85em;
color: #7f8c8d;
margin-top: 5px;
}
.ipgr-btn {
display: block;
width: 100%;
padding: 15px;
background-color: #2980b9;
color: white;
border: none;
border-radius: 4px;
font-size: 18px;
font-weight: bold;
cursor: pointer;
transition: background-color 0.2s;
}
.ipgr-btn:hover {
background-color: #1f618d;
}
.ipgr-result-container {
margin-top: 25px;
background-color: #fff;
border: 2px solid #2980b9;
border-radius: 6px;
padding: 20px;
text-align: center;
display: none;
}
.ipgr-result-value {
font-size: 32px;
color: #2980b9;
font-weight: bold;
margin: 10px 0;
}
.ipgr-result-label {
font-size: 14px;
color: #7f8c8d;
text-transform: uppercase;
letter-spacing: 1px;
}
.ipgr-context-box {
margin-top: 15px;
padding: 10px;
background-color: #f1f8fc;
border-radius: 4px;
color: #34495e;
font-size: 14px;
}
.ipgr-article-content {
margin-top: 50px;
line-height: 1.6;
color: #333;
}
.ipgr-article-content h2 {
color: #2c3e50;
border-bottom: 2px solid #eee;
padding-bottom: 10px;
margin-top: 30px;
}
.ipgr-article-content h3 {
color: #34495e;
margin-top: 25px;
}
.ipgr-article-content p {
margin-bottom: 15px;
}
.ipgr-article-content ul {
margin-bottom: 20px;
padding-left: 20px;
}
.ipgr-article-content li {
margin-bottom: 8px;
}
.ipgr-formula-box {
background: #eee;
padding: 15px;
font-family: monospace;
border-left: 4px solid #7f8c8d;
margin: 20px 0;
overflow-x: auto;
}
How to Calculate Implied Perpetuity Growth Rate
The Implied Perpetuity Growth Rate is a critical metric in financial modeling and Discounted Cash Flow (DCF) analysis. It represents the constant rate at which a company's free cash flows are expected to grow forever after the explicit forecast period. This calculator allows analysts and investors to reverse-engineer the growth rate implied by a specific Terminal Value and Discount Rate.
Why is this important?
In valuation, the Terminal Value often accounts for 60-80% of the total enterprise value. A small change in the assumed perpetuity growth rate can drastically alter the valuation. Calculating the implied rate helps perform a "sanity check" on a valuation. If the implied growth rate is significantly higher than the long-term GDP growth rate (typically 2-3%), the valuation assumptions may be overly optimistic.
The Formula
To derive the implied perpetuity growth rate ($g$), we rearrange the standard Gordon Growth Model formula used for calculating Terminal Value:
TV = [FCFn × (1 + g)] / (WACC – g)
Solving for $g$, we get:
g = (TV × WACC – FCFn) / (TV + FCFn)
Where:
- TV = Terminal Value (at the end of the projection period)
- WACC = Weighted Average Cost of Capital (Discount Rate)
- FCFn = Free Cash Flow in the final projected year
Interpreting the Results
When analyzing the output of the Implied Perpetuity Growth Rate calculator, consider the following benchmarks:
- < 0% (Negative): Implies the company is in terminal decline. While possible for dying industries, it is rare for a "going concern" valuation.
- 0% – 2%: Conservative estimate, often tracking closely with inflation but lagging behind economic growth.
- 2% – 4%: Standard range. This typically aligns with the long-term GDP growth rate of developed economies.
- > 4%: High risk. Assuming a company will grow faster than the economy forever is mathematically impossible in the long run, as the company would eventually become larger than the entire economy.
Example Calculation
Imagine you are valuing a company with the following metrics:
- Terminal Value: $10,000,000
- Final Year FCF: $500,000
- WACC: 10% (0.10)
Using the formula:
Numerator: ($10,000,000 × 0.10) – $500,000 = $1,000,000 – $500,000 = $500,000
Denominator: $10,000,000 + $500,000 = $10,500,000
Result: $500,000 / $10,500,000 ≈ 0.0476 or 4.76%
In this scenario, a 4.76% growth rate is quite high compared to global GDP growth, suggesting the Terminal Value might be overstated or the risk (WACC) is underestimated.
function calculateImpliedGrowth() {
// 1. Get input values by specific IDs matching the HTML
var tvElement = document.getElementById('ipgr_terminal_value');
var fcfElement = document.getElementById('ipgr_final_fcf');
var waccElement = document.getElementById('ipgr_wacc');
var resultContainer = document.getElementById('ipgr_result_container');
var resultValueElement = document.getElementById('ipgr_result_value');
var contextMsgElement = document.getElementById('ipgr_context_msg');
// 2. Parse values
var tv = parseFloat(tvElement.value);
var fcf = parseFloat(fcfElement.value);
var waccInput = parseFloat(waccElement.value);
// 3. Validation
if (isNaN(tv) || isNaN(fcf) || isNaN(waccInput)) {
resultContainer.style.display = "block";
resultValueElement.innerHTML = "–";
contextMsgElement.innerHTML = "Please enter valid numeric values for all fields.";
contextMsgElement.style.color = "red";
return;
}
if (tv + fcf === 0) {
resultContainer.style.display = "block";
resultValueElement.innerHTML = "Error";
contextMsgElement.innerHTML = "Mathematical error: Denominator is zero.";
return;
}
// 4. Conversion logic
// WACC needs to be decimal for calculation (e.g., 8% = 0.08)
var waccDecimal = waccInput / 100;
// 5. Calculate Implied Growth Rate (g)
// Formula: g = (TV * WACC – FCFn) / (TV + FCFn)
var numerator = (tv * waccDecimal) – fcf;
var denominator = tv + fcf;
var g = numerator / denominator;
// Convert back to percentage
var gPercent = g * 100;
// 6. Display Result
resultContainer.style.display = "block";
resultValueElement.innerHTML = gPercent.toFixed(2) + "%";
// 7. Contextual Message
var msg = "";
var color = "#34495e";
if (gPercent > waccInput) {
msg = "Note: Implied growth exceeds WACC. This is mathematically inconsistent with the standard perpetuity formula (denominator WACC-g would be negative). Ensure inputs are correct.";
color = "#c0392b";
} else if (gPercent > 4.0) {
msg = "This rate is significantly higher than long-term GDP growth. This implies a very optimistic valuation.";
color = "#e67e22";
} else if (gPercent >= 2.0 && gPercent <= 4.0) {
msg = "This rate is within the standard range for mature companies (tracking with GDP/Inflation).";
color = "#27ae60";
} else if (gPercent < 0) {
msg = "This implies the company is expected to shrink in perpetuity.";
color = "#7f8c8d";
} else {
msg = "This is a conservative growth estimate.";
color = "#2980b9";
}
contextMsgElement.innerHTML = msg;
contextMsgElement.style.color = color;
}