mcpbeat

Quantitative Valuation

joellewis/quantitative-valuation

Estimate intrinsic value of stocks and companies using DCF, dividend discount models, comparable multiples, and residual income. Use when the user asks about discounted cash flow, DCF models, WACC, terminal value, dividend discount models, comparable multiples, or sum-of-the-parts valuation. Also trigger when users mention 'what is this stock worth', 'fair value estimate', 'Gordon growth model', 'free cash flow valuation', 'cost of equity', 'sensitivity analysis', 'exit multiple', or ask whether a stock is overvalued or undervalued.

8k tokens
context cost
the whole folder, loaded on every use
2
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
161
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/JoelLewis/finance_skills --skill quantitative-valuation

What comes with it

24 094 bytes besides the instruction
scripts/quantitative_valuation.py

The instruction itself

21 sections, as written by the author

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 = w_e × r_e + w_d × r_d × (1 - τ)

where w_e and w_d are equity and debt weights, r_e and r_d 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:

r_e = R_f + β × (R_m - R_f)

where R_f is the risk-free rate, β is the stock's sensitivity to market returns, and (R_m - 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 g_1 to g_3
  • 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 = BV_0 + Σ (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

| Formula | Expression | Use Case |

|---------|-----------|----------|

| DCF Value | V = Σ FCF_t/(1+WACC)^t + TV/(1+WACC)^n | Enterprise valuation from cash flows |

| Gordon Growth TV | TV = FCF_n×(1+g)/(WACC-g) | Terminal value assuming perpetual growth |

| Exit Multiple TV | TV = EBITDA_n × multiple | Terminal value using market multiples |

| WACC | WACC = w_e×r_e + w_d×r_d×(1-τ) | Blended discount rate |

| CAPM | r_e = R_f + β×(R_m - R_f) | Cost of equity estimation |

| Gordon Growth DDM | P = D_1/(r-g) | Stock value from dividends |

| Residual Income | V = BV_0 + Σ (ROE-r)×BV_{t-1}/(1+r)^t | Value from economic profit |

| Implied Value (Comps) | V = Metric × Peer Median Multiple | Relative 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.

How to use it

Copy the folder

Take joellewis/quantitative-valuation from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.

Install what it needs

The instructions reference pip. Without those the skill loads but fails at the first command.