joellewis/finance_skills

quantitative-valuation

Estimate intrinsic value of stocks and companies using DCF, dividend discount models, comparable multiples, and residual income.

Quelltext ansehen
Originales Skill-Dokument

Aus dem Quell-Repository gerendert; Überschriften, Beispiele, Code, Tabellen, Links und Bilder bleiben erhalten.

Quantitative Valuation

Core Concepts

Discounted Cash Flow (DCF)

The DCF model values a company as the present value of its future free cash flows plus a terminal value:

V = Σ FCF_t / (1 + WACC)^t + TV / (1 + WACC)^n

where FCF_t is the free cash flow in year t, WACC is the weighted average cost of capital, and TV is the terminal value at the end of the explicit forecast period.

Terminal Value — Gordon Growth Model

Estimates the value of all cash flows beyond the explicit forecast period assuming perpetual growth:

TV = FCF_n × (1 + g) / (WACC - g)

where g is the long-term sustainable growth rate (typically near nominal GDP growth, 2-4%).

Terminal Value — Exit Multiple Method

Estimates terminal value by applying a market multiple to the final-year financial metric:

TV = EBITDA_n × EV/EBITDA multiple

The exit multiple is typically based on current peer trading multiples or long-run sector averages.

Weighted Average Cost of Capital (WACC)

Blends the cost of equity and after-tax cost of debt weighted by their market-value proportions:

WACC = we × re + wd × rd × (1 - τ)

where we and wd are equity and debt weights, re and rd are their respective costs, and τ is the marginal tax rate.

Cost of Equity — CAPM

The Capital Asset Pricing Model estimates the required return on equity:

re = Rf + β × (Rm - Rf)

where Rf is the risk-free rate, β is the stock's sensitivity to market returns, and (Rm - R_f) is the equity risk premium.

Dividend Discount Model (DDM)

Values a stock as the present value of its future dividends. The Gordon Growth (single-stage) form:

P = D_1 / (r - g)

where D_1 is the next-period dividend, r is the required return, and g is the constant dividend growth rate.

Multi-Stage DDM

Accommodates companies transitioning through growth phases:

  • Stage 1 (High growth): Dividends grow at g_1 for n years
  • Stage 2 (Transition): Growth declines linearly from g1 to g3
  • Stage 3 (Stable): Dividends grow at g_3 in perpetuity (valued via Gordon Growth)

Residual Income Model

Values a company as its book value plus the present value of economic profits:

V = BV0 + Σ (ROE - r) × BV{t-1} / (1 + r)^t

This model is useful when free cash flows are negative but the company earns above its cost of equity.

Comparable Multiples

Relative valuation uses pricing ratios from a peer group to infer value:

  • P/E (Price-to-Earnings): most common for profitable companies
  • EV/EBITDA (Enterprise Value to EBITDA): capital-structure neutral
  • P/S (Price-to-Sales): useful for unprofitable or early-stage companies
  • P/B (Price-to-Book): useful for asset-heavy businesses (banks, REITs)

Use the median of the peer group to reduce outlier effects. Adjust for differences in growth, margins, and risk.

Relative Valuation

Compare a stock's current multiple to:

  • Its own historical average (time-series comparison)
  • Sector or industry median (cross-sectional comparison)

A stock trading at a discount to both may be undervalued, or there may be fundamental deterioration.

Sum-of-the-Parts (SOTP)

Value each business segment separately using the most appropriate method (DCF, multiples, or asset-based), then sum. Subtract net debt and add non-operating assets to arrive at equity value.

Sensitivity Analysis

Vary key assumptions (WACC and terminal growth rate are the most impactful) in a two-way data table to understand the range of possible valuations. This exposes which assumptions drive the result.

Key Formulas

FormulaExpressionUse Case
DCF ValueV = Σ FCF_t/(1+WACC)^t + TV/(1+WACC)^nEnterprise valuation from cash flows
Gordon Growth TVTV = FCF_n×(1+g)/(WACC-g)Terminal value assuming perpetual growth
Exit Multiple TVTV = EBITDA_n × multipleTerminal value using market multiples
WACCWACC = we×re + wd×rd×(1-τ)Blended discount rate
CAPMre = Rf + β×(Rm - Rf)Cost of equity estimation
Gordon Growth DDMP = D_1/(r-g)Stock value from dividends
Residual IncomeV = BV0 + Σ (ROE-r)×BV{t-1}/(1+r)^tValue from economic profit
Implied Value (Comps)V = Metric × Peer Median MultipleRelative valuation

Worked Examples

Example 1: Two-Stage DCF

Given:

  • Current FCF: $100M
  • Stage 1: 15% FCF growth for 5 years
  • Terminal growth rate: 3%
  • WACC: 10%

Calculate: Enterprise value

Solution:

Projected free cash flows:

  • Year 1: $100M × 1.15 = $115.0M
  • Year 2: $115M × 1.15 = $132.3M
  • Year 3: $132.3M × 1.15 = $152.1M
  • Year 4: $152.1M × 1.15 = $174.9M
  • Year 5: $174.9M × 1.15 = $201.1M

PV of Stage 1 cash flows:

  • PV = $115.0/1.10 + $132.3/1.10² + $152.1/1.10³ + $174.9/1.10⁴ + $201.1/1.10⁵
  • PV = $104.5 + $109.3 + $114.3 + $119.5 + $124.9 = $572.5M

Terminal value (Gordon Growth):

  • TV = $201.1M × 1.03 / (0.10 - 0.03) = $207.2M / 0.07 = $2,959.6M
  • PV of TV = $2,959.6M / 1.10⁵ = $1,837.7M

Enterprise Value = $572.5M + $1,837.7M = $2,410.1M

Note: Terminal value represents 76% of total value, which is typical but underscores the importance of terminal assumptions.

Example 2: Comparable P/E Analysis

Given:

  • Target company EPS: $5.00
  • Peer group P/E ratios: 15x, 17x, 18x, 19x, 22x

Calculate: Implied share price using peer median

Solution:

Peer median P/E = 18x (middle value of the sorted set)

Implied share price = EPS × Peer Median P/E = $5.00 × 18 = $90.00

If the stock trades at $75, it appears undervalued relative to peers (16.7% discount). Before concluding, check whether lower growth, margins, or higher risk justify the discount.

Common Pitfalls

  • Terminal value dominates DCF output (often 60-80% of total value) — scrutinize terminal assumptions carefully
  • Garbage-in-garbage-out: a DCF is only as good as its assumptions; false precision gives false confidence
  • Using trailing multiples when forward multiples are more relevant for fast-growing or cyclical companies
  • Not adjusting comparable multiples for differences in growth rates, margins, and capital structure
  • Circular reference when WACC depends on market cap which depends on the WACC-derived valuation — iterate or use target capital structure
  • Projecting high growth rates indefinitely without considering competitive dynamics and mean reversion
  • Ignoring dilution from stock-based compensation in per-share value estimates

Cross-References

  • historical-risk (wealth-management plugin): historical beta estimation for CAPM inputs
  • forward-risk (wealth-management plugin): cost of equity estimation via CAPM and factor models
  • financial-statements (wealth-management plugin): FCF and EBITDA derivation from financials
  • qualitative-valuation (wealth-management plugin): complements quantitative models with moat and quality analysis
  • asset-allocation (wealth-management plugin): valuation outputs feed into portfolio construction decisions

Running the script

uv run scripts/quantitative_valuation.py

The PEP 723 header resolves the numpy dependency automatically. Alternatively run python3 scripts/quantitative_valuation.py after pip install numpy.

  • Bare run prints a demo covering WACC/CAPM, a two-stage DCF with sensitivity table, dividend discount models, residual income, and comparable multiples.
  • --verify re-runs the demo computations and asserts the outputs match this skill's worked examples (prints PASS/FAIL, nonzero exit on mismatch).
  • --help lists the available classes.

The file is primarily meant to be imported as a module, e.g. from quantitative_valuation import DCF, WACC, DividendDiscount, ComparableMultiples.

aus demselben Repository

Weitere Skills

Alle Skills
joellewis
Community

investment-policy

Construct comprehensive Investment Policy Statements governing return objectives, risk tolerance, and portfolio constraints. Use when the user asks about building an IPS, setting return objectives, assessing risk tolerance, defining investment constraints, or establishing rebalancing and benchmark policies. Also trigger when users mention 'investment plan', 'policy portfolio', 'risk capacity vs willingness', 'spending rate for an endowment', 'foundation payout', 'manager selection criteria', or ask how to document their investment strategy.

Installationen
1
GitHub Stars
184
Aktualisiert
18. Juli
joellewis
Community

account-maintenance

Process account maintenance requests across the account lifecycle. Use when changing a client address or contact info with identity verification, updating beneficiary designations after marriage, divorce, birth, or death, re-registering or re-titling an account to a trust or new entity, selecting tax lot methods or fixing cost basis records, applying legal or compliance holds or Reg T freezes, setting up systematic withdrawals or standing instructions, processing a death notification and estate account setup, handling a QDRO, power of attorney, or guardianship, closing accounts and managing escheatment, or designing data quality review programs.

Installationen
1
GitHub Stars
179
Aktualisiert
18. Juli
joellewis
Community

account-transfers

Process and manage account transfers between and within financial institutions. Use when handling full or partial ACAT transfers between broker-dealers, troubleshooting ACAT rejection codes or FINRA Rule 11870 timelines, setting up non-ACAT transfers (Fund/SERV, DTC free delivery, physical certificates), processing internal journal entries, handling retirement rollovers or Roth conversions with proper tax reporting, transferring cost basis under IRC Section 6045A, moving decedent assets to beneficiaries with date-of-death step-up, or reconciling residual credits and fractional shares after transfer completion.

Installationen
1
GitHub Stars
179
Aktualisiert
18. Juli
joellewis
Community

bet-sizing

Determine how much capital to allocate to individual positions within a portfolio. Use when the user asks about position sizing, the Kelly criterion, fractional Kelly, risk budgeting, or conviction weighting. Also trigger when users mention 'how much to put in one stock', 'maximum position size', 'how concentrated should my portfolio be', 'number of holdings', 'VaR budget per position', 'how big a bet', or ask about scaling position sizes with volatility.

Installationen
1
GitHub Stars
179
Aktualisiert
18. Juli