reverse-dcf
Reverse DCF valuation, implied growth rate, market expectations analysis, reverse discounted cash flow, implied valuation assumptions, market-implied projections, DCF sanity check
Install
npx skills add https://github.com/agentii-ai/agentii-investment-intelligence/tree/main/plugins/vertical-plugins/quantitative-analysis/skills/agentii/reverse-dcf
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install agentii-ai-agentii-investment-intelligence@llmmart
git clone https://github.com/agentii-ai/agentii-investment-intelligence.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole agentii-ai/agentii-investment-intelligence collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Reverse DCF — Market-Implied Expectations
Starts from the current stock price and solves backward: "What growth rate, margin, or WACC does the market currently price in?" Answers: "Is the market too optimistic or too pessimistic about ?" This is a sanity-check tool used by professional analysts to test whether consensus assumptions are already reflected in the stock price.
Preflight
Run the canonical pre-flight sequence — MCP health probe, ticker resolution, workspace style.md override, memory load, and coverage check. See contracts/preflight.md.
Include the X-Agentii-Trace header on every tool call per contracts/x-agentii-trace-header.md.
Triggers
- reverse DCF
- implied growth rate
- what does the market price in
- market-implied valuation
- reverse discounted cash flow
- is priced for perfection
- market expectations DCF
- sanity check valuation
- implied assumptions
- DCF reverse engineer
Defaults
| Parameter | Default | Notes |
|---|---|---|
| projection_years | 5 | Explicit forecast period |
| solve_for | growth_rate | growth_rate, terminal_margin, or wacc |
| terminal_growth | 2.5% | Long-term GDP-like growth rate |
| compare_to | consensus | Compare implied to consensus estimates |
Methodology
Retrieval Scope
structured_only — Reverse DCF uses current price + XBRL financials + consensus estimates.
Retrieval Strategy
See contracts/retrieval.md for the canonical decision tree; skill-specific retrieval detail is in references/methodology.md.
Temporal Scope
Default lookback: 4 fiscal quarter(s); maximum: 12. The default balances recency against the trend window this analysis requires.
Tool Allowlist
Per frontmatter allowed_tools:
search_xbrl_facts— primary structured financial facts (is_primary default)get_realtime_quote— latest market price for valuation cross-checkssearch_earnings_calendar— EPS actual/estimate/surprise + report dates
Protocol
Step-by-step execution detail is in references/methodology.md.
Reverse DCF & PVGO: When quantifying expectations embedded in the current stock price, apply the methodology in references/reverse-dcf-methodology.md. Solve for implied growth/WACC/margin assumptions, decompose enterprise value into Steady-State Value vs. PVGO, and apply the One Job expectations gap framework to structure the variant view. The Reverse DCF is an expectations diagnostic, not a valuation tool.
Output File
Write the final deliverable to {ticker}/{YYYY-MM-DD_HHMM}_reverse-dcf_{affix}.md.
Output Structure
The deliverable is a structured markdown report written to the path in ## Output File. Full section-by-section template (headings, tables, and field definitions) lives in references/output-structure.md. Required elements:
- Executive Summary — headline conclusions (≤200 words).
- Core analysis sections — per this skill's methodology and analyst modes.
- Data classification — tag findings
[FACT]/[DEDUCTED]/[VIEW]percontracts/snapshot-synthesis.md. - Coverage Gaps & Citations — inline
/v/citations are PRIMARY (immediately after each fact); the bottom Citations section is a non-duplicative roll-up index. - Output frontmatter — emit the FR-090 structured block per
contracts/output-frontmatter-schema.md.
Citations & memory: follow contracts/citation-and-memory.md — ≥1 citation per 200 words; every material fact, table row, and metric is immediately followed by its inline clickable https://agentii.ai/v/{ticker}/{citation_id}/{N} link; a bottom Citations section provides a non-duplicative roll-up index; the closing TUI reply includes a compact Key Citations list (headline 5–10 facts) of clickable /v/ URLs; and append the run to agentii.md per contracts/agentii-md-schema.md.
Validation Gates
- Convergence: DCF must converge to market price within 1% within 50 iterations. If failed: flag "DCF does not converge — extreme assumptions required."
- Economic plausibility: implied growth rate must be between -10% and +50%. If failed: flag "Implied growth outside economically plausible range — market may be pricing non-fundamental factors."
Memory & Snapshot
- Memory load (pre-flight): load prior workspace context for the ticker before retrieval — see
contracts/memory-load.md. - Structured output frontmatter: emit the FR-090 block (
key_metrics,conclusions,facts_count,deducted_count,views_count,citation_count) percontracts/output-frontmatter-schema.md. - Snapshot synthesis: after writing the deliverable, update the two-tier snapshot and classify findings as
[FACT]/[DEDUCTED]/[VIEW]— seecontracts/snapshot-synthesis.md. - Session archival: record the run under
sessions/{YYYY-MM-DD}/and updatesessions/INDEX.mdpercontracts/session-format.md.
Final Summary (TUI)
End the closing chat reply with a compact Key Citations list (headline 5–10 facts), each a clickable https://agentii.ai/v/{ticker}/{citation_id}/{N} link, so the user can cmd+click straight to the exact SEC page. See contracts/citation-and-memory.md.
Error Handling
| Failure Mode | Action | User-Facing Message |
|---|---|---|
| No price data | Halt | "Current stock price unavailable for ." |
| Negative FCF | Flag — reverse DCF unreliable | "Negative free cash flow — reverse DCF may produce nonsensical results." |
| Non-convergence | Flag extreme assumptions required | "Reverse DCF did not converge within 50 iterations — market may be pricing extreme scenarios." |
Files (agentii-investment-intelligence)
-
references
-
methodology.md 1.4 KB
# reverse-dcf — Methodology Detail Extracted from SKILL.md for progressive disclosure (US5). ## Retrieval Strategy Follows the retrieval strategy decision tree in `contracts/retrieval.md`. Primary branch: **(a) Structured Data Query**. Resolve the canonical ticker first (exact → fuzzy alias → share-class) before any data call. ## Protocol 1. **Inputs**: current stock price from `get_realtime_quote(ticker)`. Shares outstanding and latest financials from `search_xbrl_facts`. 2. **Set up DCF model**: standard DCF with UFCF = EBIT × (1-T) + D&A - Capex - ΔWC. Terminal value via Gordon Growth Model. 3. **Solve for implied growth rate**: iterate growth rate until DCF fair value = current market price (within 1% tolerance). 4. **Solve for implied terminal margin**: if solving for margin, iterate terminal EBITDA/FCF margin instead. 5. **Solve for implied WACC**: if solving for WACC, iterate WACC until DCF = market price (reveals market-implied discount rate). 6. **Compare to benchmarks**: - Implied growth vs. consensus estimates (from `search_earnings_calendar`) - Implied growth vs. historical CAGR (from XBRL) - Implied margin vs. current margin + historical trend - Implied WACC vs. CAPM-derived WACC 7. **Assessment**: flag when market prices in >20% above consensus (potentially overvalued) or >20% below consensus (potentially undervalued). 8. **Output**: per with YAML frontmatter . -
modes.md 693 B
# reverse-dcf — Analyst Mode Definitions Derived from the skill's own methodology structure (scripts/mode_backfill.py, spec 046 M1). ### Mode: preflight **Objective**: Preflight analysis per the skill's methodology (see SKILL.md sections). ### Mode: triggers **Objective**: Triggers analysis per the skill's methodology (see SKILL.md sections). ### Mode: defaults **Objective**: Defaults analysis per the skill's methodology (see SKILL.md sections). ### Mode: methodology **Objective**: Methodology analysis per the skill's methodology (see SKILL.md sections). ### Mode: retrieval-scope **Objective**: Retrieval Scope analysis per the skill's methodology (see SKILL.md sections). -
output-structure.md 1.3 KB
# reverse-dcf — Output Structure (full template) Extracted from SKILL.md for progressive disclosure (US5). The skill body keeps a compact summary under `## Output Structure`. 1. **Executive Summary** — implied growth rate, comparison to consensus, market sentiment assessment 2. **Inputs** — current price, shares outstanding, current financials, WACC assumptions 3. **Implied Growth Rate** — solved growth rate, comparison to consensus LTG and historical CAGR 4. **Implied Terminal Margin** — solved terminal EBITDA/FCF margin vs. current and historical margins 5. **Market Expectation Assessment** — is the market pricing in aggressive (>20% above consensus), reasonable (within ±20%), or pessimistic (>20% below consensus) assumptions? 6. **Sensitivity** — implied growth at varying WACC (±1%, ±2%) 7. **Coverage Gaps & Citations** **Citations & memory**: follow `contracts/citation-and-memory.md` — ≥1 citation per 200 words; every material fact, table row, and metric is immediately followed by its inline clickable `https://agentii.ai/v/{ticker}/{citation_id}/{N}` link; a bottom **Citations** section provides a non-duplicative roll-up index; the closing TUI reply includes a compact **Key Citations** list (headline 5–10 facts) of clickable `/v/` URLs; and append the run to `agentii.md` per `contracts/agentii-md-schema.md`. -
reverse-dcf-methodology.md 7.3 KB
# Reverse DCF & PVGO — Institutional Methodology Methodology synthesized from institutional investment research; all text is an original paraphrase. --- ## The Core Insight A stock price is a set of embedded assumptions about future free cash flows. The conventional DCF asks: "Given my assumptions about growth, margins, and risk, what is the stock worth?" The Reverse DCF asks the opposite and far more useful question: "Given the current stock price, what growth, margin, and return assumptions is the market pricing in?" The Reverse DCF is therefore not a valuation tool — it is an expectations diagnostic. It reveals what must happen for the current price to be justified. --- ## Reverse DCF Methodology ### Step 1: Set Up the Base Model Build a standard 2-stage DCF: - Stage 1: Explicit forecast period (5-10 years, typically 5 years) - Stage 2: Terminal value using perpetuity growth method ### Step 2: Fix Known Parameters Lock in the observable inputs: - **Current revenue**: Trailing twelve months - **Current margins**: EBIT margin, tax rate - **WACC**: Estimated per cost of capital methodology - **Current invested capital**: From balance sheet - **Current share count**: Diluted shares outstanding ### Step 3: Solve for the Implied Variable Set the DCF enterprise value equal to the current enterprise value and solve for the unknown: **Implied revenue CAGR**: What growth rate justifies the current price, assuming margins and returns are sustainable? **Implied terminal growth rate**: What perpetuity growth rate justifies the current price, assuming explicit-period forecasts are reasonable? **Implied EBIT margin**: What steady-state margin justifies the current price, assuming current growth expectations? **Implied ROIC**: What return on capital justifies the current price, assuming current growth and margin assumptions? ### Step 4: Compare to Independent Assessment The analyst's independent fundamental assessment produces a range of reasonable values for each variable. The gap between the implied value and the independent assessment is the expectations gap. --- ## PVGO Decomposition ### The Framework Enterprise value can be decomposed into two components: ``` Enterprise Value = Steady-State Value + Present Value of Growth Opportunities (PVGO) ``` **Steady-State Value** = NOPAT / WACC This is the value of the company if it never grows again — simply sustaining current profits into perpetuity. It represents the "no-growth" or "steady-state" value. **PVGO** = Enterprise Value − Steady-State Value This is the portion of the current stock price that depends on FUTURE value creation — growth, margin improvement, new products, market expansion. ### Interpretation | PVGO as % of EV | Interpretation | |:---:|------| | < 20% | The market prices minimal future value creation. The company is valued primarily on current earnings power. Common for mature, slow-growth industries. | | 20-50% | Moderate growth expectations. The market prices some improvement but not transformation. | | 50-80% | High growth expectations. The majority of the stock price depends on future outcomes that have not yet materialized. | | > 80% | Extreme growth expectations. The stock is almost entirely a bet on the future. Common for pre-profit, high-growth companies. | A PVGO above 80% is not automatically overvalued — but it means the investment thesis is almost entirely about whether growth expectations will be met, not about current business quality. --- ## Math of Value and Growth ### The Fundamental Principle Growth creates value ONLY when the return on invested capital exceeds the cost of capital. If ROIC = WACC, growth adds zero value regardless of how fast the company expands. ``` Value Created by Growth = (ROIC − WACC) / (WACC − g) × New Investment ``` When ROIC > WACC: faster growth → more value created. Each dollar of investment generates returns above the opportunity cost. When ROIC = WACC: growth is value-neutral. The company is a treadmill — it can run faster or slower but never goes anywhere. When ROIC < WACC: faster growth → more value DESTROYED. Each dollar of investment generates returns below the opportunity cost. This is the trap of "growth at any cost." ### The Walmart 1972-1986 Case Walmart generated negative free cash flow for 15 consecutive years while its stock compounded at 29% annually against the S&P 500's 11%. Every year, Walmart invested more than it earned — yet it was building one of the greatest value-creation machines in corporate history because its ROIC averaged 18%, far above its cost of capital. The first profile (profitable, growing, dividend-paying) and the second profile (negative FCF, rising debt, dwindling cash) describe the SAME company. The difference between a Ponzi scheme and a growth compounder is not free cash flow — it is ROIC relative to WACC. --- ## The One Job Framework ### The Investor's Single Task The one job of an equity investor is to take advantage of gaps between expectations and fundamentals. **Expectations**: The future free cash flows the company must deliver to justify today's stock price. Revealed by Reverse DCF. **Fundamentals**: The company's actual business trajectory. Assessed through independent analysis of KPIs, competitive position, industry dynamics, and management quality. **The Gap**: Tomorrow's outcomes that are different from today's perceptions lead to revisions in expectations — and revisions in expectations are the source of excess returns. ### The Consensus Disconnect Framework The thesis structure: ``` The market believes [consensus expectation, quantified via Reverse DCF]. We believe [independent fundamental assessment, based on KPI/competitive evidence]. This will converge when [specific catalyst] occurs within [timeframe], generating approximately [expected return] against a risk of [key downside]. ``` This framework applies at every level: - **Company level**: Consensus revenue growth vs. our KPI-based assessment - **Sector level**: Consensus sector margins vs. our competitive dynamics assessment - **Macro level**: Market-priced economic regime vs. our leading-indicator assessment --- ## Expectations vs. Fundamentals: The Horse Racing Analogy Expectations are like the odds on the tote board at a racetrack. Fundamentals are the result of the race. Handicappers know two things: 1. You don't make money by betting on favorites — you make money by spotting mispriced odds. 2. The odds change as new information arrives — the pari-mutuel system continuously updates. The equity market operates the same way. The current stock price reflects the consensus expectation. Alpha comes from identifying where the consensus is wrong and WHY — not from knowing things the market already knows. --- ## Scenario Analysis and Expectations Expectations are inherently uncertain. The appropriate way to handle this uncertainty is through scenario analysis: 1. **Base Case (55%)**: Consensus estimates adjusted by variant view 2. **Bull Case (20%)**: All catalysts materialize; multiple expansion 3. **Bear Case (25%)**: Catalyst failure; multiple contraction The probability-weighted expected value is the fair value estimate. The Reverse DCF applied to each scenario reveals what each scenario implies about the company's fundamentals. This creates a three-dimensional expectations map, not a single point estimate.
-
-
SKILL.md 6.8 KB
--- name: reverse-dcf multi_ticker_semantics: target_with_optional_peers description: Reverse DCF valuation, implied growth rate, market expectations analysis, reverse discounted cash flow, implied valuation assumptions, market-implied projections, DCF sanity check # Curated subset inherited from skill-registry.yaml (spec 058 T005, resolving Check 31). # Its provenance is unexplained: the kit's only documented derivation — "essentials_modes = # their first <=3 modes" (scripts/mode_backfill.py) — would give [preflight, triggers, # defaults], which are this file's own document sections, not analysis modes. Declared here # so the source of truth stops contradicting the registry. The curation itself is OUTSTANDING # and belongs to whoever owns this skill's methodology; this declaration is not a review of it. essentials_modes: [methodology] temporal_scope: default_quarters: 4 max_quarters: 12 description: "Current price input; historical data for comparison" allowed_tools: - search_xbrl_facts - get_realtime_quote - search_earnings_calendar retrieval_scope: structured_only min_tool_diversity: 3 --- # Reverse DCF — Market-Implied Expectations Starts from the current stock price and solves backward: "What growth rate, margin, or WACC does the market currently price in?" Answers: "Is the market too optimistic or too pessimistic about {ticker}?" This is a sanity-check tool used by professional analysts to test whether consensus assumptions are already reflected in the stock price. ## Preflight Run the canonical pre-flight sequence — MCP health probe, ticker resolution, workspace `style.md` override, memory load, and coverage check. See `contracts/preflight.md`. Include the `X-Agentii-Trace` header on every tool call per `contracts/x-agentii-trace-header.md`. ## Triggers - reverse DCF {ticker} - implied growth rate {ticker} - what does the market price in {ticker} - market-implied valuation {ticker} - reverse discounted cash flow {ticker} - is {ticker} priced for perfection - market expectations DCF {ticker} - sanity check valuation {ticker} - implied assumptions {ticker} - DCF reverse engineer {ticker} ## Defaults | Parameter | Default | Notes | |-----------|---------|-------| | projection_years | 5 | Explicit forecast period | | solve_for | growth_rate | growth_rate, terminal_margin, or wacc | | terminal_growth | 2.5% | Long-term GDP-like growth rate | | compare_to | consensus | Compare implied to consensus estimates | ## Methodology ### Retrieval Scope `structured_only` — Reverse DCF uses current price + XBRL financials + consensus estimates. ### Retrieval Strategy See `contracts/retrieval.md` for the canonical decision tree; skill-specific retrieval detail is in `references/methodology.md`. ### Temporal Scope Default lookback: 4 fiscal quarter(s); maximum: 12. The default balances recency against the trend window this analysis requires. ### Tool Allowlist Per frontmatter `allowed_tools`: - `search_xbrl_facts` — primary structured financial facts (is_primary default) - `get_realtime_quote` — latest market price for valuation cross-checks - `search_earnings_calendar` — EPS actual/estimate/surprise + report dates ### Protocol Step-by-step execution detail is in `references/methodology.md`. **Reverse DCF & PVGO**: When quantifying expectations embedded in the current stock price, apply the methodology in `references/reverse-dcf-methodology.md`. Solve for implied growth/WACC/margin assumptions, decompose enterprise value into Steady-State Value vs. PVGO, and apply the One Job expectations gap framework to structure the variant view. The Reverse DCF is an expectations diagnostic, not a valuation tool. ## Output File Write the final deliverable to `{ticker}/{YYYY-MM-DD_HHMM}_reverse-dcf_{affix}.md`. ## Output Structure The deliverable is a structured markdown report written to the path in `## Output File`. Full section-by-section template (headings, tables, and field definitions) lives in `references/output-structure.md`. Required elements: 1. **Executive Summary** — headline conclusions (≤200 words). 2. **Core analysis sections** — per this skill's methodology and analyst modes. 3. **Data classification** — tag findings `[FACT]` / `[DEDUCTED]` / `[VIEW]` per `contracts/snapshot-synthesis.md`. 4. **Coverage Gaps & Citations** — inline `/v/` citations are PRIMARY (immediately after each fact); the bottom **Citations** section is a non-duplicative roll-up index. 5. **Output frontmatter** — emit the FR-090 structured block per `contracts/output-frontmatter-schema.md`. **Citations & memory**: follow `contracts/citation-and-memory.md` — ≥1 citation per 200 words; every material fact, table row, and metric is immediately followed by its inline clickable `https://agentii.ai/v/{ticker}/{citation_id}/{N}` link; a bottom **Citations** section provides a non-duplicative roll-up index; the closing TUI reply includes a compact **Key Citations** list (headline 5–10 facts) of clickable `/v/` URLs; and append the run to `agentii.md` per `contracts/agentii-md-schema.md`. ## Validation Gates 1. **Convergence**: DCF must converge to market price within 1% within 50 iterations. *If failed*: flag "DCF does not converge — extreme assumptions required." 2. **Economic plausibility**: implied growth rate must be between -10% and +50%. *If failed*: flag "Implied growth outside economically plausible range — market may be pricing non-fundamental factors." ## Memory & Snapshot - **Memory load** (pre-flight): load prior workspace context for the ticker before retrieval — see `contracts/memory-load.md`. - **Structured output frontmatter**: emit the FR-090 block (`key_metrics`, `conclusions`, `facts_count`, `deducted_count`, `views_count`, `citation_count`) per `contracts/output-frontmatter-schema.md`. - **Snapshot synthesis**: after writing the deliverable, update the two-tier snapshot and classify findings as `[FACT]`/`[DEDUCTED]`/`[VIEW]` — see `contracts/snapshot-synthesis.md`. - **Session archival**: record the run under `sessions/{YYYY-MM-DD}/` and update `sessions/INDEX.md` per `contracts/session-format.md`. ## Final Summary (TUI) End the closing chat reply with a compact **Key Citations** list (headline 5–10 facts), each a clickable `https://agentii.ai/v/{ticker}/{citation_id}/{N}` link, so the user can cmd+click straight to the exact SEC page. See `contracts/citation-and-memory.md`. ## Error Handling | Failure Mode | Action | User-Facing Message | |-------------|--------|---------------------| | No price data | Halt | "Current stock price unavailable for {ticker}." | | Negative FCF | Flag — reverse DCF unreliable | "Negative free cash flow — reverse DCF may produce nonsensical results." | | Non-convergence | Flag extreme assumptions required | "Reverse DCF did not converge within 50 iterations — market may be pricing extreme scenarios." |
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.