/dcf-valuation
Cosa fa. Calcola il valore intrinseco con un modello DCF.
Quando usarlo. Per una valutazione fondata sui flussi di cassa.
Argomenti. TICKER
Esempio. /dcf-valuation AAPL
Cosa restituisce. Ipotesi (crescita, WACC, terminale), scenari bear/base/bull e barra del fair value.
Come funziona
Sezione intitolata “Come funziona”Quando lanci /dcf-valuation, Dexter non esegue codice fisso: invia all’AI la prompt qui sotto — il segnaposto {arg} viene sostituito con ciò che scrivi dopo il comando — e l’agente la esegue chiamando da sé gli strumenti necessari. Vedi Come funzionano i comandi per le convenzioni comuni (chiamate in parallelo, anti-allucinazione, fasi, widget di chiusura).
Strumenti che può usare: get_sec_financials, get_balance_sheets, get_key_ratios, get_analyst_estimates, get_stock_price, get_company_info, get_cash_flow_statements, render_value_range, show_ticker_link.
Flusso/visualizzazione: chiude con la barra del fair value (render_value_range) e i pulsanti di dettaglio (show_ticker_link).
Prompt completa
Sezione intitolata “Prompt completa”È la prompt esatta inviata all’AI quando usi il comando (sostituendo {arg}).
Calculate the intrinsic value of {arg} via a rigorous DCF model.
FIRST, before writing anything, call ALL of these tools in ONE single parallel step — every figure must come from them, write N/A if missing, NEVER from memory and NEVER from earlier turns in this conversation. Pass ONLY the parameters shown (no source):- get_sec_financials(ticker={arg}, metric=revenue, period=annual, limit=7)- get_sec_financials(ticker={arg}, metric=operating_income, period=annual, limit=7)- get_sec_financials(ticker={arg}, metric=operating_cash_flow, period=annual, limit=7)- get_sec_financials(ticker={arg}, metric=capex, period=annual, limit=7)- get_sec_financials(ticker={arg}, metric=depreciation, period=annual, limit=3)- get_sec_financials(ticker={arg}, metric=interest_expense, period=annual, limit=1)- get_sec_financials(ticker={arg}, metric=income_tax_expense, period=annual, limit=3)- get_balance_sheets(ticker={arg}, period=annual, limit=1) → total_debt, cash_and_equivalents, current_investments (missing → 0), outstanding_shares- get_key_ratios(ticker={arg}) → beta, debt_to_equity, market_cap, enterprise_value, free_cash_flow_per_share, revenue_growth- get_analyst_estimates(ticker={arg}, period=annual) → forward EPS by fiscal year (implied growth, cross-check)- get_stock_price(ticker={arg}) → current price- get_company_info(ticker={arg}) → sector, industryMake NO other tool call unless a value you need is missing (then use the closest available tool once, e.g. get_cash_flow_statements if operating_cash_flow is absent).
## Model1. FCF = operating_cash_flow − capex (GAAP, preferred) over the 7-year history. Fallback: UFCF = EBIT × (1 − tax rate) + D&A − CapEx − ΔNWC, showing each component (tax rate = income_tax_expense / pre-tax operating income).2. Growth rate: historical FCF CAGR with a 10-20% haircut; volatile FCF → weight analyst implied EPS growth more heavily. Cross-check against revenue_growth (key_ratios). Cap at 15%.3. Project 5 explicit years, decaying the growth rate annually (×0.95, ×0.90, ×0.85, ×0.80 for years 2-5), then terminal value via Gordon Growth at 2-3% perpetual growth (≤ long-run GDP). Motivate the revenue path with drivers where the data allows (price × volume × mix), not just a single CAGR.4. WACC via CAPM: Ke = Rf + β×ERP (Rf 4%, ERP 5-6%, beta from key_ratios, Blume-adjusted). Kd = interest_expense / total_debt, tax-affected. Weight Ke/Kd with a TARGET capital structure (industry-typical, not the current one). Start from the company's sector range below, then apply the adjustments: | Sector | Base WACC | |---|---| | Communication Services / Consumer Discretionary / Financials / Health Care / Materials | 8-10% | | Consumer Staples | 7-8% | | Energy | 9-11% | | Industrials | 8-9% | | Information Technology | 8-12% (higher end for high-growth) | | Real Estate | 7-9% | | Utilities | 6-7% | Adjustments: +1-2% high debt (D/E > 1.5) or small cap (< $2B); +0.5-3% emerging-markets exposure, concentrated customers, or regulatory uncertainty; −0.5-1% moat/market leader or recurring revenue. Sanity: WACC should sit 2-4% below ROIC for value-creating companies (if ROIC available).5. Enterprise value = Σ PV(projected FCF) + PV(terminal value). Equity value = EV − net debt (total_debt − cash_and_equivalents − current_investments). Intrinsic value per share = equity / outstanding_shares.6. Sanity checks — if any fails, revisit WACC or growth before presenting: implied EV within ~30% of reported enterprise_value; terminal value 50-80% of total EV for a mature company (>90% = growth too high); per-share value in the rough range of free_cash_flow_per_share × 15-25.7. Terminal cross-check (ONE line): state an exit EV/EBITDA multiple typical for the sector, the implied per-share value, and reconcile any large gap with the Gordon result.
## ScenariosBear / Base / Bull with explicit assumption changes (revenue growth, margins, WACC, terminal growth) and probability weights. Compute the probability-weighted fair value — this is your central estimate.
## Sensitivity (MANDATORY)ONE 5×5 table: WACC (5 values around your base, ~0.5-1% step) as rows vs terminal growth rate (5 values around 2.5%) as columns. Intrinsic value per share per cell, each marked ✅ undervalued vs current price, ⚠️ roughly fair, ❌ overvalued.
## Output| Assumption | Bear | Base | Bull ||------------|------|------|------|[revenue growth, margins, WACC, terminal growth]
| Scenario | Intrinsic Value | Upside/Downside ||----------|----------------|-----------------|
**Fair Value Range:** $X–$Y**Recommendation:** BUY (if >20% upside) / HOLD (0–20%) / SELL (below current)State all critical assumptions clearly. Flag the assumption that would invalidate the thesis if wrong.
Output rules (the terminal renders plain Markdown):- NO HTML tags and NO LaTeX/$...$ math. Write every formula as plain text, e.g. "Ke = Rf + β×ERP = 4.45% + 1.10×5.0% = 9.95%".- This is a VALUATION command — do NOT call render_price_chart (that's for price-trend analysis). The bar is the ONLY visual widget here.- Write the COMPLETE report FIRST — model, scenarios, sensitivity table, recommendation, key assumptions. ONLY THEN, as the very LAST action, call render_value_range (low=Bear, base=probability-weighted fair value, high=Bull, current price, method="DCF", scenarios=[Bear/Base/Bull with a one-line note each], caption e.g. "Fair value $15.05–$33.22, central $22.32 → HOLD vs $21.55") TOGETHER WITH show_ticker_link for {arg} in the SAME step. They render the bar and the detail buttons and END your turn: do NOT introduce them with a sentence and write NOTHING after these calls. Calling the bar mid-report truncates your answer.
FINAL STEP (mandatory — your answer is NOT complete without these calls): render_value_range + show_ticker_link for {arg}, in the same step, as the very last thing you emit. No introducing sentence, no prose after them.