earnings-sentiment
Earnings sentiment analysis, analyst estimates vs guidance, earnings surprise history, consensus sentiment, earnings revision trends, analyst rating changes, earnings beat miss track record, guidance accuracy, whisper numbers, pre-announcement sentiment
Install
npx skills add https://github.com/agentii-ai/agentii-investment-intelligence/tree/main/plugins/agent-plugins/agentii-equity-agent/skills/agentii/earnings-sentiment
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
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
- analyze dim earnings sentiment
- run dim earnings sentiment analysis
- produce dim earnings sentiment report
- dim earnings sentiment breakdown
- dim earnings sentiment deep dive
- build a dim earnings sentiment
- assess dim earnings sentiment
- quantify dim earnings sentiment
- compare dim earnings sentiment across peers
- review dim earnings sentiment for
- generate dim earnings sentiment on
- dim earnings sentiment for investment decision
Defaults
| Parameter | Default | Notes |
|---|---|---|
| lookback_years | 3 | Historical data window |
| include_peers | false | Whether to surface a peer comparison block |
Methodology
Retrieval Scope
This skill performs unstructured document search at scale (10-K, 10-Q, 8-K filings and earnings call transcripts spanning multiple fiscal periods). The three-layer agent-use-ready retrieval protocol (Document Discovery → Page Map → Deep Read) applies to all unstructured document search at scale.
Retrieval Strategy
Ownership & insider signals: search_institutional_holdings (top-10 holders + whale portfolios, direction=accumulating|reducing|new|exited) and search_insider_trades (Form-4 transactions with SEC URLs) are available as signal inputs.
See contracts/retrieval.md for the canonical decision tree; skill-specific retrieval detail is in references/methodology.md.
Temporal Scope
Default: 4 fiscal quarters (max 8). Earnings sentiment: trailing 4 quarters for earnings-call tone and guidance trends
Tool Allowlist
See frontmatter allowed_tools.
Protocol
Step-by-step execution detail is in references/methodology.md.
Analyst Modes
This skill exposes addressable analysis modes (--mode=<slug> / --modes=<s1>,<s2> / --mode=all; see Mode syntax). The full mode definitions and their output templates live in references/modes.md. The default invocation runs the essentials subset.
Tool Fallbacks
Per-tool failure modes and fallback actions are tabulated in references/tool-fallbacks.md.
Output File
Write the final deliverable to {ticker}/{YYYY-MM-DD_HHMM}_earnings-sentiment_analyst-sentiment.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.
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 | Detection | Action | User-Facing Message |
|---|---|---|---|
| Missing data | Data API returns empty result set | Widen date range and retry once | "No data available for in requested window." |
| Partial data | Data API returns <80% expected records | Proceed with coverage gaps section | "Analysis based on partial data; see Coverage Gaps section." |
| Sector mismatch | Peer sector != target sector | Filter out mismatched peers | "Removed peer(s) due to sector mismatch." |
| Insufficient history | Ticker <3 years on public markets | Downgrade to limited-history profile | "Limited historical data; analysis adjusted accordingly." |
| MCP unreachable | Preflight probe fails | Halt with actionable error | "agentii data plane unreachable; check connection." |
Files (agentii-investment-intelligence)
-
references
-
knowledge-frameworks.md 2.2 KB
# Knowledge Frameworks — {SKILL_NAME} This file augments the skill methodology with practitioner frameworks, case precedents, and sector-specific analysis rubrics from the agentii knowledge base (spec 037). It is progressively disclosed — loaded on demand, not at skill activation (FR-014). ## How to Use Before executing the analysis, scan the relevant frameworks below for the target sector and analysis type. Where a framework applies, incorporate its methodology alongside the standard protocol. Cite knowledge entries by their `/v/knowledge/{citation_id}` link. ## Practitioner Frameworks ### Fundamental Analysis (L2) - **Fisher Scuttlebutt Method**: Channel checks, supplier interviews, customer surveys — validate management claims through primary research. - **Morningstar Moats**: Network effects, switching costs, intangible assets, cost advantage, efficient scale — score competitive durability. - **Greenblatt Magic Formula**: Rank on earnings yield + ROIC — quantitative screen for quality-at-a-reasonable-price. - **Mauboussin Expectations Investing**: Price-implied expectations vs. fundamentals — identify the gap. ### Management Assessment - **CEO/CFO track record**: Past capital allocation decisions, M&A history, share buyback timing. - **Incentive alignment**: Compensation structure, insider ownership, option grants. ### Sector-Specific Playbooks - **Healthcare (Pharma/Biotech)**: Pipeline depth analysis, FDA catalyst calendar, patent cliff exposure, drug pricing risk. - **Technology**: Adoption S-curves, network effects quantification, R&D efficiency, platform ecosystem lock-in. - **Financials**: Spread analysis (NIM), credit cycle positioning, loan loss reserve adequacy, capital return capacity. - **Consumer**: Brand strength metrics, unit economics, channel mix trends, customer acquisition cost payback. ## Historical Analogues When the current situation matches a known pattern, query `search_by_analogue` with the appropriate `market_regime`/`event_type`/`company_situation` tags. Cite relevant cases as precedent. ## References All frameworks sourced from `gold.knowledge_entries` (spec 037). See `contracts/citation-and-memory.md` for citation format conventions. -
methodology.md 2 KB
# earnings-sentiment — Methodology Detail Extracted from SKILL.md for progressive disclosure (US5). ## Retrieval Strategy Follow the retrieval strategy decision tree in `contracts/retrieval.md`. This skill was upgraded from `structured_only` to `unstructured_document_search` scope (2026-06-03) to pull 8-K earnings press releases, MD&A guidance, and Item 1A risk factors alongside XBRL EPS data. This skill uses: - Branch (a) for structured financial metrics via `search_xbrl_facts` with `list_xbrl_concepts` pre-condition for unfamiliar concepts. - Branch (b) for multi-period unstructured queries spanning 8-K earnings press releases (management tone, sentiment language, guidance language), MD&A guidance discussion (forward-looking sentiment, confidence signals), and Item 1A risk factors (uncertainty context, cautionary language). - Branch (c) for single-period document queries via direct `read_source_outline` → `read_source_pages`. - Branch (d) for simple lookups via `get_company_profile` / `search_earnings_calendar`. **Layer 1 `secondary_label` allowlist **: prefer `?secondary_labels=financial_results_2_02,regulation_fd_disclosure_7_01` to capture earnings-related 8-Ks AND Reg-FD guidance disclosures before Layer 2. For uncertainty context, also query `?secondary_label=other_events_8_01` for material-event 8-Ks that may signal sentiment shifts. **Earnings call transcripts**: add `form_type=earnings_call_transcript` (citation prefix `ect<N>`) — pages carry `section_type` (prepared_remarks/qa/closing) as session_title and `sentiment`/`guidance`/`forward_looking`/`analyst_questions` in labels; Q&A pages are the highest-signal pages for management tone under pressure. ## Protocol This skill delivers analyst-grade output via 6 addressable mode(s); invoke with `--mode=<slug>` / `--modes=<slug1>,<slug2>` / `--mode=all` (see [Mode syntax](../../../../docs/commands/MODE_SYNTAX.md). The default invocation (no flag) runs the `essentials_modes` subset declared in this skill's frontmatter. -
modes.md 11.3 KB
# earnings-sentiment — Analyst Mode Definitions Extracted from SKILL.md for progressive disclosure (US5). The skill body keeps a pointer under `## Methodology → Analyst Modes`. ### Mode: analyst-sentiment-assessment-current-quarter **Display name**: analyst-sentiment-assessment-current-quarter <!-- ported_from: references/prompts/7/7_1.yaml --> **Focus**: Analyze sell-side preview reports to assess analyst sentiment and conviction level. (rewritten via tool-name-map.json:system_v2_7) - `get_company_profile` - `list_sources` - `read_source_outline` - `read_source_pages` - `search_keyword_in_source` - consistency_checks - evidence_requirements - sentiment_classification - **structure**: ## Current-Quarter Analyst Sentiment Assessment **Assessment Date**: {Current date} **Upcoming Earnings Date**: {Next earnings date from fetch_stock_info} **Analysis Period**: {30-day window before earnings} **Data Sources Analyzed**: - Morgan Stanley: {Report title and date if available, or "N/A"} - Jefferies: {Report title and date if available, or "N/A"} ### Current-Quarter Estimates & Tone Summary | **Key Financials** | **Expected Tone** | **Commentary / Notes** | |:-------------------|:-----------------:|:-----------------------| | Revenues | Highly Convicted / Positive / Negative / N/A | {Brief explanation with analyst quotes} [📄 {ticker} {form_type} p.{N}](https://agentii.ai/v/{ticker}/{citation_id}/{N}) | | EPS | Highly Convicted / Positive / Negative / N/A | {Brief explanation with analyst quotes} [📄 {ticker} {form_type} p.{N}](https://agentii.ai/v/{ticker}/{citation_id}/{N}) | | EBITDA | Highly Convicted / Positive / Negative / N/A | {Brief explanation with analyst quotes} [📄 {ticker} {form_type} p.{N}](https://agentii.ai/v/{ticker}/{citation_id}/{N}) | | **Adj. EBITDA** | Highly Convicted / Positive / Negative / N/A | {Brief explanation with analyst quotes} [📄 {ticker} {form_type} p.{N}](https://agentii.ai/v/{ticker}/{citation_id}/{N}) | | Net Income | Highly Convicted / Positive / Negative / N/A | {Brief explanation with analyst quotes} [📄 {ticker} {form_type} p.{N}](https://agentii.ai/v/{ticker}/{citation_id}/{N}) | **Overall Sentiment Summary**: {2-3 sentence synthesis of overall analyst sentiment for upcoming quarter} **Key Sentiment Drivers**: - {List 2-3 main factors driving analyst conviction or concern} ### Mode: fy0-analyst-estimates-extraction **Display name**: fy0-analyst-estimates-extraction <!-- ported_from: references/prompts/7/7_2.yaml --> **Focus**: Extract and calculate mean (average) analyst estimates for the current fiscal year (FY0). (rewritten via tool-name-map.json:system_v2_7) - `get_company_profile` - `list_sources` **Fiscal Year**: FY{year} **Earnings Release Date**: {date} **Data Sources**: - Morgan Stanley: {title, date} - Jefferies: {title, date} | **Key Financials** | **Mean Estimate** | **Notes / Source Commentary** | |:-------------------|:-----------------:|:-----------------------------| | Revenues | <XXXM-amount> | Avg of MS: <XXXM-amount>, Jefferies: <XXXM-amount> [📄 {ticker} {form_type} p.{N}](https://agentii.ai/v/{ticker}/{citation_id}/{N}) | | EPS (Non-GAAP) | <X.XX-amount> | Avg of MS: <X.XX-amount>, Jefferies: <X.XX-amount> [📄 {ticker} {form_type} p.{N}](https://agentii.ai/v/{ticker}/{citation_id}/{N}) | | EBITDA | <XXXM-amount> | {or N/A if not disclosed} | | **Adj. EBITDA** | <XXXM-amount> | {or N/A if not disclosed} | | Net Income | <XXXM-amount> | {or N/A if not disclosed} | | **Gross Margin** | XX.XX% | {or N/A if not disclosed} | | **Operating Margin** | XX.XX% | {or N/A if not disclosed} | | Net Margin | XX.XX% | {or N/A if not disclosed} | **Calculation Notes**: - Mean calculated as (MS estimate + Jefferies estimate) / 2 - If only one source available, use that single estimate - All estimates rounded to appropriate precision ### Mode: current-quarter-fiscal-year-analyst-estimates **Display name**: current-quarter-fiscal-year-analyst-estimates <!-- ported_from: references/prompts/7/7_3_1.yaml --> **Focus**: Extract and calculate mean analyst estimates from Morgan Stanley, Jefferies, and SEC filings. (rewritten via tool-name-map.json:system_v2_7) - `get_company_profile` **Current Quarter**: Q{X} {Year} **Current Fiscal Year**: FY{Year} **Earnings Release Date**: {date} **Data Sources**: - Morgan Stanley: {report title, date} - Jefferies: {report title, date} - SEC 8-K: {filing date if applicable, or N/A} | **Key Financials** | **Current Quarter Estimate** | **Current Fiscal Year Estimate (FY0)** | |:-------------------|:---------------------------:|:-------------------------------------:| | Revenues | <XXXM-amount> | <XXXM-amount> | | EPS (Non-GAAP) | <X.XX-amount> | <X.XX-amount> | | EBITDA | <XXXM-amount> | <XXXM-amount> | | **Adj. EBITDA** | <XXXM-amount> | <XXXM-amount> | | Net Income | <XXXM-amount> | <XXXM-amount> | **Sources and Calculations**: - Revenues (Quarter): Mean of MS: <XXXM-amount>, Jefferies: <XXXM-amount> [📄 {ticker} {form_type} p.{N}](https://agentii.ai/v/{ticker}/{citation_id}/{N}), [📄 {ticker} {form_type} p.{N}](https://agentii.ai/v/{ticker}/{citation_id}/{N}) - Revenues (FY0): Mean of MS: <XXXM-amount>, Jefferies: <XXXM-amount> [📄 {ticker} {form_type} p.{N}](https://agentii.ai/v/{ticker}/{citation_id}/{N}), [📄 {ticker} {form_type} p.{N}](https://agentii.ai/v/{ticker}/{citation_id}/{N}) {Repeat for each metric} **Notes**: - All estimates represent analyst consensus as of {date} - Estimates averaged across available sources - N/A indicates metric not disclosed by any source ### Mode: management-guidance-extraction **Display name**: management-guidance-extraction <!-- ported_from: references/prompts/7/7_3_2.yaml --> **Focus**: Extract management's official guidance for current quarter and fiscal year. (rewritten via tool-name-map.json:system_v2_7) - `get_company_profile` - `list_sources` **Source Earnings Date**: {last earnings date} **Current Quarter**: Q{X} {Year} **Current Fiscal Year**: FY{Year} **Data Sources**: - SEC 8-K: {filing date} - Earnings Presentation: {title, date if applicable} | **Key Financials** | **Current Quarter Guidance** | **Current Fiscal Year Guidance (FY0)** | |:-------------------|:---------------------------:|:-------------------------------------:| | Revenues | <XXXM-amount> | <XXXM-amount> | | EPS (Non-GAAP) | <X.XX-amount> | <X.XX-amount> | | EBITDA | <XXXM-amount> | <XXXM-amount> | | **Adj. EBITDA** | <XXXM-amount> | <XXXM-amount> | | Net Income | <XXXM-amount> | <XXXM-amount> | **Guidance Details**: - Revenues (Quarter): {<XXX-amount>-XXXM range → midpoint <XXXM-amount>} [📄 {ticker} {form_type} p.{N}](https://agentii.ai/v/{ticker}/{citation_id}/{N}) - Revenues (FY0): {<XXX-amount>-XXXM range → midpoint <XXXM-amount>} [📄 {ticker} {form_type} p.{N}](https://agentii.ai/v/{ticker}/{citation_id}/{N}) {Repeat for each metric} **Guidance Notes**: - All values represent midpoint of ranges where applicable - Guidance provided by management on {earnings date} - N/A indicates no guidance provided for that metric ### Mode: current-quarter-estimates-vs-guidance **Display name**: current-quarter-estimates-vs-guidance <!-- ported_from: references/prompts/7/7_3_3.yaml --> ### Objective Compile side-by-side comparison of analyst estimates and management guidance for the CURRENT FISCAL QUARTER ahead of upcoming earnings release. Calculate and present variance (delta) between analyst expectations and official guidance. **Current Quarter**: Q{X} FY{Year} **Upcoming Earnings Date**: {date} **Data Sources**: - Analyst Estimates: {MS and Jefferies previews with dates} - Management Guidance: {8-K from last earnings, date} | **Key Financials** | **Analyst Estimates** | **Management Guidance** | **Variance** | **% Var** | |:-------------------|:---------------------:|:-----------------------:|:------------:|:---------:| | Revenues | <XXXM-amount> | <XXXM-amount> | +<XXM-amount> | +X.X% | | EPS (Non-GAAP) | <X.XX-amount> | <X.XX-amount> | +$0.XX | +X.X% | | EBITDA | <XXXM-amount> | <XXXM-amount> | -<XXM-amount> | -X.X% | | **Adj. EBITDA** | <XXXM-amount> | <XXXM-amount> | $0M | 0.0% | | Net Income | <XXXM-amount> | <XXXM-amount> | +<XXM-amount> | +X.X% | **Variance Analysis**: - {Metric with largest positive variance}: Analysts {X}% above guidance - Potential drivers: {Brief explanation} [📄 {ticker} {form_type} p.{N}](https://agentii.ai/v/{ticker}/{citation_id}/{N}) - {Metric with negative variance if any}: Analysts {X}% below guidance - Potential concerns: {Brief explanation} [📄 {ticker} {form_type} p.{N}](https://agentii.ai/v/{ticker}/{citation_id}/{N}) **Overall Assessment**: {2-3 sentences summarizing whether analysts are generally above, in-line, or below guidance, and potential implications for upcoming earnings} **Key Observations**: - {Notable variance patterns} - {Consistency or inconsistency across metrics} - {Context for variances from preview reports} - **variance_interpretation**: - in_line - material_variance - negative_variance - positive_variance ### Mode: full-year-estimates-vs-guidance **Display name**: full-year-estimates-vs-guidance <!-- ported_from: references/prompts/7/7_3_4.yaml --> ### Objective Compile side-by-side comparison of analyst estimates and management guidance for the CURRENT FISCAL YEAR (FY0). Calculate variance to assess if analysts are above, in-line, or below guidance. **Fiscal Year**: FY{Year} (ending {month/day/year}) **Data as of**: {current date} **Data Sources**: - Analyst Estimates (FY0): {MS and Jefferies previews, dates} - Management Guidance (FY0): {8-K from last earnings, date} | **Key Financials** | **Analyst Estimates** | **Management Guidance** | **Variance** | **% Var** | |:-------------------|:---------------------:|:-----------------------:|:------------:|:---------:| | Revenues | <XXXM-amount> | <XXXM-amount> | +<XXM-amount> | +X.X% | | EPS (Non-GAAP) | <X.XX-amount> | <X.XX-amount> | +$0.XX | +X.X% | | EBITDA | <XXXM-amount> | <XXXM-amount> | +<XXM-amount> | +X.X% | | **Adj. EBITDA** | <XXXM-amount> | <XXXM-amount> | -<XXM-amount> | -X.X% | | Net Income | <XXXM-amount> | <XXXM-amount> | $0M | 0.0% | **Variance Analysis**: ### Metrics Above Guidance {For each metric with +variance > 5%}: - **{Metric}**: Analysts {X}% above guidance - Analyst rationale: {Key drivers from preview reports} [📄 {ticker} {form_type} p.{N}](https://agentii.ai/v/{ticker}/{citation_id}/{N}) - Implied upside: <XXM> or <X.XX> per share ### Metrics Below Guidance {For each metric with -variance > 5%}: - **{Metric}**: Analysts {X}% below guidance - Analyst concerns: {Key reasons from preview reports} [📄 {ticker} {form_type} p.{N}](https://agentii.ai/v/{ticker}/{citation_id}/{N}) - Potential downside: <XXM> or <X.XX> per share ### Metrics In-Line (±2%) {List metrics with minimal variance} **Overall Assessment**: {Summary paragraph assessing whether analysts are generally constructive, in-line, or cautious relative to management guidance. Discuss implications for potential guidance revisions in upcoming earnings.} **Strategic Implications**: - **For Investors**: {What variance pattern suggests about potential outcomes} - **Guidance Outlook**: {Likelihood of guidance raise/lower/maintain based on variance} - **Key Drivers of Variance**: {Top 2-3 factors explaining estimate vs. guidance delta} - **variance_significance**: - in_line - material - moderate <!-- END port-dimension-prompts methodology + modes --> -
output-structure.md 1.2 KB
# earnings-sentiment — Output Structure (full template) Extracted from SKILL.md for progressive disclosure (US5). The skill body keeps a compact summary under `## Output Structure`. The final deliverable MUST be written as a markdown file to the workspace using the convention : ``` {ticker}/{YYYY-MM-DD_HHMM}_earnings-sentiment_{affix}.md ``` Where `affix` is a short descriptive slug (e.g., `guidance-vs-estimates`, `analyst-tone`, `call-sentiment`, `surprise-bridge`). Examples: - `LLY/2026-05-25_1430_earnings-sentiment_guidance-vs-estimates.md` - `NVDA/2026-05-25_1545_earnings-sentiment_analyst-tone.md` The path is RELATIVE to the agent's invocation cwd. Skills MUST NOT write under absolute paths. **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`. -
tool-fallbacks.md 1.8 KB
# earnings-sentiment — Tool Fallbacks Extracted from SKILL.md for progressive disclosure (US5). | Tool | Failure Mode | Fallback Action | Coverage Annotation | |------|-------------|-----------------|---------------------| | `read_source_pages` | SQL error / PROXY_ERROR | Use `search_keyword_in_source(document_id, keyword)` if document_id known; otherwise `search_documents` with same query | "source file unavailable; used keyword search instead" | | `read_source_deep_outline` | PROXY_ERROR / 404 | Use lightweight `read_source_outline` and flag `deep_outline_degraded: true` | "deep outline unavailable; used lightweight page map instead" | | `read_source_outline` | PROXY_ERROR / 404 | Use `list_sources` for document-level metadata | "page map unavailable; used document listing instead" | | `list_xbrl_concepts` | Timeout / 503 | Use direct `search_xbrl_facts` with standard US-GAAP concepts (Revenues, NetIncomeLoss, EarningsPerShareDiluted, OperatingIncomeLoss, Assets) | "concept discovery skipped due to timeout; using standard US-GAAP concepts" | | `get_company_fiscal_calendar` | Cross-validation failed | Use XBRL-derived period grid from `search_xbrl_facts` `period_end` dates | "fiscal calendar mismatch; using XBRL-derived period grid" | | `search_unified` | Intermittent error | Use parallel `search_documents` + `search_xbrl_facts` with the same query | "unified search unavailable; used parallel document + XBRL search" | | `batch_search` | PROXY_ERROR | Use sequential individual calls (one per sub-query) | "batch search unavailable; used sequential calls" | Tool errors are retried ONCE with the fallback action before escalating to the retrieval gaps failure policy. If both Layer 2 and Layer 3 tools are unavailable, enter document access degradation mode (structured data + metadata only, flag output as degraded). -
wsp-methodology.md 5.3 KB
# earnings-sentiment -- Consensus vs. Variant View and FEV Framework Institutional buy-side methodology for earnings analysis, sentiment assessment, and valuation signal extraction. Applied to earnings call interpretation, sell-side report deconstruction, and investment thesis construction. ## Protocol ### Consensus vs. Variant View Framework The buy-side analytical edge comes from systematically identifying where the consensus narrative is incomplete or incorrect. **Phase 1 -- Map the Consensus**: Reconstruct what the market is pricing in: the structural tailwind, the company's stated competitive advantage, the growth algorithm, and the valuation support. Sources: sell-side initiation reports, earnings transcripts, management presentations. **Phase 2 -- Interrogate Each Pillar**: Test each element independently. Does scale create a moat in a local business with a 5-mile catchment radius? Are wage pressures fully reflected in consensus margin estimates? Is supply in the company's largest markets adequately discounted? **Phase 3 -- Identify the Variant Perception**: Where the consensus is weak is where alpha lives. The variant perception must be specific, falsifiable, and tied to a valuation consequence. Example: consolidated EV/EBITDA comps suggest fair value, but sum-of-the-parts decomposition reveals owned real estate assigned zero incremental value -- worth 50-100% of current equity when properly separated. ### FEV Framework Apply this lens to every earnings event: **Fundamentals**: Establish ground truth from the most recent quarter and trailing periods. Revenue drivers: occupancy by segment, pricing trajectory, payer mix shifts. Cost structure: largest expense categories, wage inflation sensitivity, merger synergy realization. Capital intensity: CFFO versus capex gap, discretionary versus mandatory capex decomposition. Balance sheet: debt trajectory, off-balance-sheet obligations via capitalized operating leases, goodwill impairment risk. Segment-level margin trends with black-box risks flagged where management provides insufficient disclosure. **Expectations**: Back out what the current price embeds. Using consensus multiples, extract implied growth, margin, and return assumptions. When comps trade at 8.3x and 17.3x LTM EBITDA, the dispersion is informative -- the lower multiple reflects business mix and quality, not simply a discount. Blindly averaging comps destroys signal. Ask: what must be true for the current price to be correct? For the variant view to be correct? **Valuation**: Apply multiple lenses. Never rely on a single methodology: 1. **DCF**: Baseline intrinsic value for businesses with visible cash flow trajectories. 2. **EV/EBITDA comps**: LTM and NTM. Select peers based on business model similarity, not just industry. Understand why each peer trades where it does before weighting it. Adjust EBITDA for non-recurring items. Include all debt-like items in net debt, including capitalized operating leases. 3. **Sum-of-the-parts**: When the company owns material assets that consolidated multiples obscure. Separate owned real estate (valued via cap rates on implied chargeable rent) from operations (valued via EBITDAR multiples). Value ancillary and management-service segments at their own multiples. 4. **Scenario analysis**: Vary coverage ratios, cap rates, and segment multiples across defensible ranges. The range -- not just the midpoint -- informs position sizing. ### Sell-Side Report Deconstruction Sell-side research is an input, not an answer. Extract key assumptions driving the target price. Test each against independent data. Identify whether the conclusion follows from consensus thinking or contains a variant perception. Note omissions -- unaddressed material risks signal consensus blind spots. ### Earnings Call Protocol **Pre-call**: Read the press release and 8-K. Build updated common-size statements. Identify the three to five questions the filing alone cannot resolve. Review the prior quarter's transcript for forward-looking statements to validate: `search_documents(ticker={T}, form_type="earnings_call_transcript")` → `read_source_outline` → `read_source_pages` on the guidance/forward_looking-labeled pages. **During the call**: Listen for tone shifts, new emphasis or de-emphasis of segments, and guidance specificity. The Q&A session surfaces variant views: note which analysts ask which questions, whether management deflects or engages, and whether any question produces a pause or inconsistency. **Post-call**: Update projections immediately. Cross-reference call claims against the filed 10-Q/10-K -- divergences in emphasis between spoken and written record are analytically significant. For unresolved questions, initiate IR contact. ### Position Building and Incentive Alignment When an earnings event strengthens the variant view without full conviction, enter with a small position while continuing due diligence. The downside cushion (embedded asset value, hard catalyst) provides margin of safety to enter before certainty. Scale as evidence accumulates; exit if the thesis deteriorates. Deconstruct management compensation from the proxy: stock options align with share price; time-based RSUs do not. Performance metrics must connect to the thesis catalyst. If the thesis requires real estate monetization but management is compensated on CFFO, incentives are misaligned -- a quiet thesis-killer.
-
-
SKILL.md 6.5 KB
--- name: earnings-sentiment multi_ticker_semantics: single_target description: Earnings sentiment analysis, analyst estimates vs guidance, earnings surprise history, consensus sentiment, earnings revision trends, analyst rating changes, earnings beat miss track record, guidance accuracy, whisper numbers, pre-announcement sentiment essentials_modes: [analyst-sentiment-assessment-current-quarter, fy0-analyst-estimates-extraction, current-quarter-fiscal-year-analyst-estimates] temporal_scope: default_quarters: 4 max_quarters: 8 description: "Typical lookback: 4 quarters, max: 8" allowed_tools: - search_companies - search_xbrl_facts - search_documents - read_source_outline - read_source_deep_outline - read_source_pages - search_earnings_calendar - get_company_financials - get_company_profile - list_xbrl_concepts - search_keyword_in_source - search_knowledge_entries - get_knowledge_entry - search_by_analogue retrieval_scope: unstructured_document_search min_tool_diversity: 10 --- <!-- analog: catalyst-calendar --> ## 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 - analyze dim earnings sentiment - run dim earnings sentiment analysis - produce dim earnings sentiment report - dim earnings sentiment breakdown - dim earnings sentiment deep dive - build a dim earnings sentiment - assess dim earnings sentiment - quantify dim earnings sentiment - compare dim earnings sentiment across peers - review dim earnings sentiment for - generate dim earnings sentiment on - dim earnings sentiment for investment decision ## Defaults | Parameter | Default | Notes | |---|---|---| | lookback_years | 3 | Historical data window | | include_peers | false | Whether to surface a peer comparison block | <!-- BEGIN port-dimension-prompts methodology + modes --> ## Methodology ### Retrieval Scope This skill performs unstructured document search at scale (10-K, 10-Q, 8-K filings and earnings call transcripts spanning multiple fiscal periods). The three-layer agent-use-ready retrieval protocol (Document Discovery → Page Map → Deep Read) applies to all unstructured document search at scale. ### Retrieval Strategy **Ownership & insider signals**: `search_institutional_holdings` (top-10 holders + whale portfolios, `direction=accumulating|reducing|new|exited`) and `search_insider_trades` (Form-4 transactions with SEC URLs) are available as signal inputs. See `contracts/retrieval.md` for the canonical decision tree; skill-specific retrieval detail is in `references/methodology.md`. ### Temporal Scope Default: 4 fiscal quarters (max 8). Earnings sentiment: trailing 4 quarters for earnings-call tone and guidance trends ### Tool Allowlist See frontmatter `allowed_tools`. ### Protocol Step-by-step execution detail is in `references/methodology.md`. ### Analyst Modes This skill exposes addressable analysis modes (`--mode=<slug>` / `--modes=<s1>,<s2>` / `--mode=all`; see [Mode syntax](../../../../docs/commands/MODE_SYNTAX.md)). The full mode definitions and their output templates live in `references/modes.md`. The default invocation runs the essentials subset. ## Tool Fallbacks Per-tool failure modes and fallback actions are tabulated in `references/tool-fallbacks.md`. ## Output File Write the final deliverable to `{ticker}/{YYYY-MM-DD_HHMM}_earnings-sentiment_analyst-sentiment.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`. ## 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 | Detection | Action | User-Facing Message | |---|---|---|---| | Missing data | Data API returns empty result set | Widen date range and retry once | "No data available for {ticker} in requested window." | | Partial data | Data API returns <80% expected records | Proceed with coverage gaps section | "Analysis based on partial data; see Coverage Gaps section." | | Sector mismatch | Peer sector != target sector | Filter out mismatched peers | "Removed {n} peer(s) due to sector mismatch." | | Insufficient history | Ticker <3 years on public markets | Downgrade to limited-history profile | "Limited historical data; analysis adjusted accordingly." | | MCP unreachable | Preflight probe fails | Halt with actionable error | "agentii data plane unreachable; check connection." |
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.