This calculator helps estimate the intrinsic value of a company's stock using the Dividend Discount Model (DDM) or earnings-based valuation. Enter the relevant financial data to get an estimated share price.
Dividend Discount Model (DDM)
Earnings Per Share (EPS) Based
Valuation Result
N/A
Understanding Share Valuation
Share valuation is the process of determining the current worth of a company's stock. Investors and analysts use various methods to estimate this intrinsic value, which can then be compared to the current market price to make investment decisions. A stock trading below its intrinsic value might be considered undervalued and a potential buy, while a stock trading above might be overvalued.
Common Valuation Methods
There are numerous approaches to share valuation, broadly categorized into:
Intrinsic Value Models: These models attempt to calculate the true value of a stock based on its underlying fundamentals, such as earnings, dividends, and growth prospects. The Dividend Discount Model (DDM) and discounted cash flow (DCF) analysis are prominent examples.
Relative Valuation Models: These methods compare the company's stock to similar companies or to its own historical multiples. Common metrics include Price-to-Earnings (P/E) ratio, Price-to-Sales (P/S) ratio, and Enterprise Value/EBITDA.
Dividend Discount Model (DDM)
The Dividend Discount Model is a method of valuing a stock by projecting its future dividends and discounting them back to their present value. The simplest form is the Gordon Growth Model, which assumes dividends grow at a constant rate indefinitely. The formula is:
Intrinsic Value = D1 / (r – g)
Where:
D1: The expected dividend per share in the next period (Last Dividend * (1 + Growth Rate)).
r: The required rate of return (investor's minimum expected return).
g: The constant dividend growth rate.
For this model to be valid, the required rate of return (r) must be greater than the dividend growth rate (g). If g >= r, the model yields an infinite or negative value, indicating it's not suitable for that company or its assumptions are flawed.
Earnings Per Share (EPS) Based Valuation
When a company does not pay dividends or pays very small ones, valuation often relies on its earnings. A common approach is to project future earnings and then apply a P/E multiple or discount those earnings. A simplified earnings-based approach for growth companies involves estimating future EPS and discounting it back. This calculator uses a variation where we can infer a potential dividend from EPS and a payout ratio, and then use the DDM logic on this inferred dividend, or directly consider earnings growth. A common variation to the DDM using earnings would be:
This formula calculates the value based on an inferred future dividend (EPS * Payout Ratio * (1+g)) and discounts it using the required rate of return and growth rate.
Using the Calculator
1. Select Method: Choose between the Dividend Discount Model (DDM) or an EPS-based approach.
2. Input Data:
* For DDM: Enter the last dividend paid, the expected annual dividend growth rate, and your required rate of return.
* For EPS-Based: Enter the current EPS, the dividend payout ratio, the expected EPS growth rate, and your required rate of return.
3. Calculate: Click the "Calculate Value" button.
The result will provide an estimated intrinsic value per share. Remember that these are just estimates based on your inputs and the chosen model. Actual market prices are influenced by many other factors, including market sentiment, economic conditions, and company-specific news.
function toggleInputs() {
var selectedMethod = document.getElementById("valuationMethod").value;
var ddmInputs = document.getElementById("ddm-inputs");
var earningsInputs = document.getElementById("earnings-inputs");
if (selectedMethod === "ddm") {
ddmInputs.style.display = "block";
earningsInputs.style.display = "none";
} else {
ddmInputs.style.display = "none";
earningsInputs.style.display = "block";
}
}
function calculateShareValue() {
var selectedMethod = document.getElementById("valuationMethod").value;
var resultDiv = document.getElementById("result-value");
var methodUsedP = document.getElementById("valuation-method-used");
var valuation = null;
var displayMethod = "";
if (selectedMethod === "ddm") {
var lastDividend = parseFloat(document.getElementById("lastDividend").value);
var expectedDividendGrowthRate = parseFloat(document.getElementById("expectedDividendGrowthRate").value) / 100;
var requiredRateOfReturn = parseFloat(document.getElementById("requiredRateOfReturn").value) / 100;
displayMethod = "Dividend Discount Model (DDM)";
if (isNaN(lastDividend) || isNaN(expectedDividendGrowthRate) || isNaN(requiredRateOfReturn)) {
resultDiv.textContent = "Error: Please fill in all fields.";
return;
}
if (requiredRateOfReturn <= expectedDividendGrowthRate) {
resultDiv.textContent = "Error: Required Rate of Return must be greater than Dividend Growth Rate for DDM.";
return;
}
var dividendNextYear = lastDividend * (1 + expectedDividendGrowthRate);
valuation = dividendNextYear / (requiredRateOfReturn – expectedDividendGrowthRate);
} else { // Earnings Based
var eps = parseFloat(document.getElementById("eps").value);
var payoutRatio = parseFloat(document.getElementById("payoutRatio").value) / 100;
var expectedEPSGrowthRate = parseFloat(document.getElementById("expectedEPSGrowthRate").value) / 100;
var requiredRateOfReturnEarnings = parseFloat(document.getElementById("requiredRateOfReturnEarnings").value) / 100;
displayMethod = "Earnings Per Share (EPS) Based Valuation";
if (isNaN(eps) || isNaN(payoutRatio) || isNaN(expectedEPSGrowthRate) || isNaN(requiredRateOfReturnEarnings)) {
resultDiv.textContent = "Error: Please fill in all fields.";
return;
}
if (requiredRateOfReturnEarnings <= expectedEPSGrowthRate) {
resultDiv.textContent = "Error: Required Rate of Return must be greater than EPS Growth Rate for this method.";
return;
}
var inferredDividend = eps * payoutRatio;
var dividendNextYear = inferredDividend * (1 + expectedEPSGrowthRate); // Using EPS growth for dividend growth assumption
valuation = dividendNextYear / (requiredRateOfReturnEarnings – expectedEPSGrowthRate);
}
if (valuation !== null && !isNaN(valuation)) {
resultDiv.textContent = "$" + valuation.toFixed(2);
methodUsedP.textContent = "Method Used: " + displayMethod;
} else {
resultDiv.textContent = "Calculation Error. Please check inputs.";
}
}
// Initialize DDM inputs on load
document.addEventListener("DOMContentLoaded", toggleInputs);