View source: R/financial_functions.R
| fin_stock_justifiedPE | R Documentation |
Compute the Justified Price-to-Earnings (P/E) ratio for a stock using a single-stage or two-stage (high-growth + ROIC) Gordon Growth Model.
fin_stock_justifiedPE(
dividend = 0.8,
EPS = 2,
growthRate = 0.06,
discountRate = 0.1,
buybackYield = 0,
ROIC = NULL,
yearsHighGrowth = 0,
terminalGrowth = 0.03,
type = c("trailing", "leading")
)
dividend |
Dividend per share ( |
EPS |
Earnings per share ( |
growthRate |
Sustainable growth rate ( |
discountRate |
Required rate of return / cost of equity ( |
buybackYield |
Net share repurchase yield added to payout ratio, as a decimal (e.g. 0.015 for 1.5%). Default = 0. |
ROIC |
Return on Invested Capital, as a decimal (e.g. 0.30 for 30%). If specified, payout ratio during high growth is derived as |
yearsHighGrowth |
Duration of high-growth phase in years (default = 0 for single-stage model). If |
terminalGrowth |
Long-term terminal growth rate after high-growth phase, as a decimal (e.g. 0.03 for 3%). Default = 0.03. |
type |
Character string indicating |
Justified P/E represents the fundamental value multiple that a stock should trade at based on its payout ratio (or ROIC reinvestment),
expected growth rate (g), and required rate of return / discount rate (r).
Single-Stage Model (when yearsHighGrowth = 0):
For stable-growth companies where r > g:
\text{Justified Trailing P/E} = \frac{\text{Payout Ratio} \times (1 + g)}{r - g}
\text{Justified Leading P/E} = \frac{\text{Payout Ratio}}{r - g}
Two-Stage Model (when yearsHighGrowth > 0):
For growth companies where high-growth rate g_{\text{high}} may exceed the cost of capital (r),
payout ratio during high growth is derived from Return on Invested Capital (\text{ROIC}):
\text{Payout Ratio} = 1 - \frac{g}{\text{ROIC}} + \text{buybackYield}
Cash flows during the yearsHighGrowth period are discounted at rate r. After yearsHighGrowth,
growth transitions to terminalGrowth (g_{\text{term}} < r), and the terminal value is discounted back to present value.
Typical Values & Interpretation: Typical justified P/E ratios for mature, stable-growth companies generally fall between 12 and 25. High-growth companies with high ROIC (e.g. 30%+ ROIC and 20% growth) justify 20x-30x+ P/E multiples.
Worked Example ($NVDA):
Suppose Nvidia ($NVDA) has high growth of 20% (g = 0.20) for 5 years, high ROIC of 30% (\text{ROIC} = 0.30),
cost of equity of 10% (r = 0.10), and long-term terminal growth of 3% (g_{\text{term}} = 0.03).
The justified P/E is calculated as:
fin_stock_justifiedPE(EPS = 2.70, growthRate = 0.20, discountRate = 0.10, ROIC = 0.30, yearsHighGrowth = 5, terminalGrowth = 0.03)
Numeric justified P/E ratio.
Gordon, M. J. (1962). The Investment, Financing, and Valuation of the Corporation. R. D. Irwin.
Pinto, J. E., Henry, C., Robinson, T. R., & Stowe, J. D. (2020). Equity Asset Valuation (4th ed.). Wiley.
Mauboussin, M. J., & Rappaport, A. (2021). Expectations Investing: Reading Stock Prices for Better Returns. Columbia University Press.
fin_value_interest(), fin_value_percent(), fin_tax_NI()
Other financial functions:
fin_options_Greeks(),
fin_options_LeapSimulate(),
fin_options_plotGreeks(),
fin_options_teach(),
fin_stock_CAGR(),
fin_stock_target(),
fin_stock_ticker(),
fin_stock_valuation(),
fin_tax_FIF(),
fin_tax_NI(),
fin_value_CAGR(),
fin_value_CarryCost(),
fin_value_NPV(),
fin_value_interest(),
fin_value_percent()
# Example 1: Standard trailing Justified P/E
fin_stock_justifiedPE(dividend = 0.8, EPS = 2.0, growthRate = 0.06, discountRate = 0.10)
# Example 2: Two-Stage growth model for 20% growth company with 30% ROIC for 5 years
fin_stock_justifiedPE(EPS = 2.70, growthRate = 0.20, discountRate = 0.10,
ROIC = 0.30, yearsHighGrowth = 5, terminalGrowth = 0.03)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.