Agent skill

dcf-valuation

Performs discounted cash flow (DCF) valuation analysis to estimate intrinsic value per share. Triggers when user asks for fair value, intrinsic value, DCF, valuation, "what is X worth", price target, undervalued/overvalued analysis, or wants to compare current price to fundamental value.

Stars 21,210
Forks 2,552

Install this agent skill to your Project

npx add-skill https://github.com/virattt/dexter/tree/main/src/skills/dcf

SKILL.md

DCF Valuation Skill

Workflow Checklist

Copy and track progress:

DCF Analysis Progress:
- [ ] Step 1: Gather financial data
- [ ] Step 2: Calculate FCF growth rate
- [ ] Step 3: Estimate discount rate (WACC)
- [ ] Step 4: Project future cash flows (Years 1-5 + Terminal)
- [ ] Step 5: Calculate present value and fair value per share
- [ ] Step 6: Run sensitivity analysis
- [ ] Step 7: Validate results
- [ ] Step 8: Present results with caveats

Step 1: Gather Financial Data

Call the get_financials tool with these queries:

1.1 Cash Flow History

Query: "[TICKER] annual cash flow statements for the last 5 years"

Extract: free_cash_flow, net_cash_flow_from_operations, capital_expenditure

Fallback: If free_cash_flow missing, calculate: net_cash_flow_from_operations - capital_expenditure

1.2 Financial Metrics

Query: "[TICKER] financial metrics snapshot"

Extract: market_cap, enterprise_value, free_cash_flow_growth, revenue_growth, return_on_invested_capital, debt_to_equity, free_cash_flow_per_share

1.3 Balance Sheet

Query: "[TICKER] latest balance sheet"

Extract: total_debt, cash_and_equivalents, current_investments, outstanding_shares

Fallback: If current_investments missing, use 0

1.4 Analyst Estimates

Query: "[TICKER] analyst estimates"

Extract: earnings_per_share (forward estimates by fiscal year)

Use: Calculate implied EPS growth rate for cross-validation

1.5 Current Price

Call the get_market_data tool:

Query: "[TICKER] price snapshot"

Extract: price

1.6 Company Facts

Call the get_financials tool:

Query: "[TICKER] company facts"

Extract: sector, industry, market_cap

Use: Determine appropriate WACC range from sector-wacc.md

Step 2: Calculate FCF Growth Rate

Calculate 5-year FCF CAGR from cash flow history.

Cross-validate with: free_cash_flow_growth (YoY), revenue_growth, analyst EPS growth

Growth rate selection:

  • Stable FCF history → Use CAGR with 10-20% haircut
  • Volatile FCF → Weight analyst estimates more heavily
  • Cap at 15% (sustained higher growth is rare)

Step 3: Estimate Discount Rate (WACC)

Use the sector from company facts to select the appropriate base WACC range from sector-wacc.md.

Default assumptions:

  • Risk-free rate: 4%
  • Equity risk premium: 5-6%
  • Cost of debt: 5-6% pre-tax (~4% after-tax at 30% tax rate)

Calculate WACC using debt_to_equity for capital structure weights.

Reasonableness check: WACC should be 2-4% below return_on_invested_capital for value-creating companies.

Sector adjustments: Apply adjustment factors from sector-wacc.md based on company-specific characteristics.

Step 4: Project Future Cash Flows

Years 1-5: Apply growth rate with 5% annual decay (multiply growth rate by 0.95, 0.90, 0.85, 0.80 for years 2-5). This reflects competitive dynamics.

Terminal value: Use Gordon Growth Model with 2.5% terminal growth (GDP proxy).

Step 5: Calculate Present Value

Discount all FCFs → sum for Enterprise Value → subtract Net Debt → divide by outstanding_shares for fair value per share.

Step 6: Sensitivity Analysis

Create 3×3 matrix: WACC (base ±1%) vs terminal growth (2.0%, 2.5%, 3.0%).

Step 7: Validate Results

Before presenting, verify these sanity checks:

  1. EV comparison: Calculated EV should be within 30% of reported enterprise_value

    • If off by >30%, revisit WACC or growth assumptions
  2. Terminal value ratio: Terminal value should be 50-80% of total EV for mature companies

    • If >90%, growth rate may be too high
    • If <40%, near-term projections may be aggressive
  3. Per-share cross-check: Compare to free_cash_flow_per_share × 15-25 as rough sanity check

If validation fails, reconsider assumptions before presenting results.

Step 8: Output Format

Present a structured summary including:

  1. Valuation Summary: Current price vs. fair value, upside/downside percentage
  2. Key Inputs Table: All assumptions with their sources
  3. Projected FCF Table: 5-year projections with present values
  4. Sensitivity Matrix: 3×3 grid varying WACC (±1%) and terminal growth (2.0%, 2.5%, 3.0%)
  5. Caveats: Standard DCF limitations plus company-specific risks

Expand your agent's capabilities with these related and highly-rated skills.

virattt/dexter

x-research

X/Twitter public sentiment research. Searches X for real-time perspectives, market sentiment, expert opinions, breaking news, and community discourse. Use when: user asks "what are people saying about", "X/Twitter sentiment", "check X for", "search twitter for", "what's CT saying about", or wants public opinion on a stock, sector, company, or market event.

21,210 2,552
Explore
mattpocock/skills

setup-pre-commit

Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo. Use when user wants to add pre-commit hooks, set up Husky, configure lint-staged, or add commit-time formatting/typechecking/testing.

111,310 9,758
Explore
mattpocock/skills

edit-article

Edit and improve articles by restructuring sections, improving clarity, and tightening prose. Use when user wants to edit, revise, or improve an article draft.

111,310 9,758
Explore
mattpocock/skills

scaffold-exercises

Create exercise directory structures with sections, problems, solutions, and explainers that pass linting. Use when user wants to scaffold exercises, create exercise stubs, or set up a new course section.

111,310 9,758
Explore
mattpocock/skills

obsidian-vault

Search, create, and manage notes in the Obsidian vault with wikilinks and index notes. Use when user wants to find, create, or organize notes in Obsidian.

111,310 9,758
Explore
mattpocock/skills

git-guardrails-claude-code

Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute. Use when user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code.

111,310 9,758
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results