defeat-beta/defeatbeta-api/defeatbeta-earnings-analysis
Claude Code and agent skill by defeat-beta/defeatbeta-api
- community
Checking that the SKILL.md file is still in the repository.
Create professional equity research earnings update reports (8-12 pages, 3,000-5,000 words) analyzing quarterly results for companies already under coverage. Fast-turnaround format focusing on beat/miss analysis, key metrics, updated estimates, and revised thesis. Includes 1-3 summary tables and 8-12 charts. Use when user requests "earnings update", "quarterly update", "earnings analysis", "Q1/Q2/Q3/Q4 results", or post-earnings report.
Install
npx vskill@latest install defeat-beta/defeatbeta-api/defeatbeta-earnings-analysisSKILL.md
Equity Research Earnings Update
Create professional EARNINGS UPDATE REPORTS analyzing quarterly results for companies already under coverage, following institutional standards (JPMorgan, Goldman Sachs, Morgan Stanley format).
Key Characteristics:
- Length: 8-12 pages
- Word Count: 3,000-5,000 words
- Tables: 1-3 summary tables (NOT comprehensive)
- Figures: 8-12 charts
- Audience: Clients already familiar with the company
- Focus: What's NEW — beat/miss, updated estimates, thesis impact
- Font: Times New Roman throughout (unless user specifies otherwise)
When to Use
Use when the user requests:
- "Create an earnings update for [Company] Q3 2024"
- "Analyze [Company]'s quarterly results"
- "Post-earnings report for [Company]"
- "Q1/Q2/Q3/Q4 update for [Company]"
Do NOT use if:
- User requests "initiation report" → Use different skill
- User requests "flash note" or "quick take" → Different format
- Company is not already covered → Need initiation first
Critical Requirements
1. Language Matching
- Match the user's language for all user-facing output, including the DOCX report, delivery summary, replies, visible reasoning notes, assumptions, methodology explanations, and clarification questions
- If the user mixes languages, use the language that dominates the user's request unless the user explicitly specifies the report language
- Keep company names, tickers, financial terms, source names, accounting labels, and quoted source text in their original language when translation would reduce precision
- Do not expose hidden chain-of-thought; provide concise visible rationale, assumptions, and methodology in the user's language when useful
- If the report language differs from the source language, preserve source citations, MCP tool names, ticker symbols, and financial labels accurately
2. Focus
- Focus on what's NEW from this quarter — don't rehash company background
- Assume reader has seen the prior coverage (initiation report or prior earnings update on this name)
3. Beat/Miss Analysis
- Lead with whether company beat or missed estimates
- Quantify variances (e.g., "Revenue beat by $120M or 3%")
- Explain WHY results differed from expectations
4. Summary Format
- Keep tables to 1-3 (summary only, not comprehensive)
- No full P&L/Cash Flow/Balance Sheet (just key metrics)
- Assume reader has seen initiation report
5. Data Source Tiers ⭐⭐⭐ MANDATORY
Every data point in the report falls into exactly one of three tiers. Each tier has a fixed source policy — there is no "default to MCP, sometimes web" ambiguity.
Tier 1 — MCP only (strict)
Reported, authoritative financial data. No web fallback. If MCP returns nothing, state the data gap in the report and proceed; do not patch from 10-Q, press release, IR site, or news snippets.
| Content | MCP tool | |
|---|---|---|
| Reported income statement | get_stock_quarterly_income_statement | |
| Reported balance sheet | get_stock_quarterly_balance_sheet | |
| Reported cash flow statement | get_stock_quarterly_cash_flow | |
| Earnings call transcript (management commentary, Q&A) | get_stock_earning_call_transcripts_list then get_stock_earning_call_transcript | |
| Stock price | get_stock_price | |
| Market capitalization | get_stock_market_capitalization | |
| WACC | get_stock_wacc | |
| DCF / fair value | get_stock_dcf_analysis (or trigger the defeatbeta-dcf skill) | |
| Valuation multiples | get_stock_ttm_pe, get_stock_enterprise_value, get_stock_enterprise_to_ebitda, get_stock_enterprise_to_revenue, get_stock_ps_ratio, get_stock_pb_ratio, get_stock_peg_ratio | |
| Margins | get_stock_quarterly_gross_margin, get_stock_quarterly_operating_margin, get_stock_quarterly_net_margin, get_stock_quarterly_ebitda_margin, get_stock_quarterly_fcf_margin | |
| YoY growth | get_stock_quarterly_revenue_yoy_growth, get_stock_quarterly_ebitda_yoy_growth, get_stock_quarterly_diluted_eps_yoy_growth, get_stock_quarterly_fcf_yoy_growth, get_stock_quarterly_operating_income_yoy_growth, get_stock_quarterly_net_income_yoy_growth, get_stock_quarterly_ttm_diluted_eps_yoy_growth | |
| Capital efficiency | get_stock_quarterly_roic, get_stock_quarterly_roa, get_stock_quarterly_roe, get_stock_quarterly_asset_turnover, get_stock_quarterly_equity_multiplier, get_stock_quarterly_debt_to_equity | |
| EPS | get_stock_eps_and_ttm_eps | |
| Dataset date probe | get_latest_data_update_date |
Tier 2 — MCP preferred, web fallback allowed (must be labeled)
MCP is the primary source; web fallback is allowed when MCP returns nothing or coverage is incomplete. Fallback rows must be explicitly labeled in figures, tables, and the Sources section — never blended with MCP data.
| Content | Primary (MCP) | Fallback | |
|---|---|---|---|
| Segment revenue | get_quarterly_revenue_by_segment | Company 10-Q / earnings release supplementary tables | |
| Geography revenue | get_quarterly_revenue_by_geography | Company 10-Q / earnings release supplementary tables | |
| Prior guidance | get_stock_earning_call_transcript (prior quarter) | Prior-quarter earnings release / 8-K | |
| Industry / peer comparables | get_industry_ttm_pe, get_industry_ps_ratio, get_industry_pb_ratio, get_industry_quarterly_gross_margin, get_industry_quarterly_ebitda_margin, get_industry_quarterly_net_margin, get_industry_quarterly_roa, get_industry_quarterly_roe, get_industry_quarterly_asset_turnover, get_industry_quarterly_equity_multiplier | Bloomberg / FactSet peer screens |
Tier 3 — Web only (MCP does not cover)
Data MCP does not provide. Cite source name and "as of" date. No pretense of MCP coverage.
| Content | Source examples | |
|---|---|---|
| Consensus estimates (revenue, EPS forecast) | Bloomberg, FactSet, Refinitiv, Yahoo Finance, TipRanks, Insider Monkey — pre-earnings where possible | |
| Analyst price targets (avg / high / low / count) | Yahoo Finance, TipRanks, Insider Monkey | |
| Stock reaction history (earnings-day price moves) | Web search, Yahoo Finance | |
| Options-implied move / IV skew | Options data providers, web search | |
| Operating metrics (DAU/MAU/ARPU, customer count, store count, units shipped, occupancy, RPO, NRR, etc.) | Company IR site, 10-Q supplementary tables, investor presentation | |
| Recent news / policy catalysts | Reuters, Bloomberg, sector news outlets |
Where each tool's cache file lives (Call-Then-Write — Phase 1)
After Phase 1, every T1 and T2 MCP tool call has produced one cache file under ./<TICKER>_<PERIOD>/cache/. This is the map: pick the right file to Read when drafting each section.
| Need this data | MCP tool called | Cache file (T1 unless noted) | |
|---|---|---|---|
| Reported income statement | get_stock_quarterly_income_statement | income_statement.json | |
| Reported balance sheet | get_stock_quarterly_balance_sheet | balance_sheet.json | |
| Reported cash flow | get_stock_quarterly_cash_flow | cash_flow.json | |
| Earnings call transcript (target period) | get_stock_earning_call_transcript | transcript_current.txt | |
| Earnings call transcript (prior period — for prior guidance) | get_stock_earning_call_transcript (prior FY/Q) | transcript_prior.txt | |
| Stock price | get_stock_price | price.json | |
| Market cap | get_stock_market_capitalization | market_cap.json | |
| EPS + TTM EPS | get_stock_eps_and_ttm_eps | eps.json | |
| WACC | get_stock_wacc | wacc.json | |
| Structured DCF + fair price | get_stock_dcf_analysis | dcf_analysis.json | |
| P/E, EV/*, P/S, P/B, PEG | multiple multiple tools | valuation_multiples.json (one file, multiple tool returns) | |
| Gross/op/net/EBITDA/FCF margins (history) | 5 margin tools | margins.json (one file, 5 returns) | |
| Revenue/op-income/EBITDA/net-income/FCF/EPS YoY (history) | 6 growth tools | growth.json (one file, 6 returns) | |
| ROIC, ROE, ROA, asset turnover, equity multiplier, D/E | 6 tools | capital_efficiency.json (one file, 6 returns) | |
| Segment revenue (T2) | get_quarterly_revenue_by_segment | segment.json | |
| Geography revenue (T2) | get_quarterly_revenue_by_geography | geography.json | |
| Industry comparables (T2) | several get_industry_* tools | industry.json (one file, several returns) |
Two helpful conventions for the multi-tool bundles (valuation_multiples, margins, growth, capital_efficiency, industry):
- Within one bundled file, store each tool's return under a key named after the tool, e.g.
``json { "ttm_pe": {...}, "ev_to_ebitda": {...}, "ps_ratio": {...}, "pb_ratio": {...}, "peg_ratio": {...} } ``
- This still satisfies the verbatim rule — you concatenate raw returns under labeled keys; you don't summarize.
Tier 3 data lands in ./<TICKER>_<PERIOD>/cache/web_<topic>.txt (web excerpts written verbatim from the search result). Phase 1's MCP fetch does not include Tier 3.
6. Citations & Source Attribution ⭐⭐⭐ MANDATORY
Every data point cites its source. The format depends on tier (see Section 5).
Citation formats by tier
Tier 1 (MCP only):
For transcript-derived commentary, also cite speaker and paragraph number where available:
Tier 2 (MCP preferred, web fallback labeled):
- If sourced from MCP, use the Tier 1 format above.
- If sourced from web fallback, prefix with "Fallback:" and cite source name + retrieval date:
Tier 3 (web only):
General rules
- Cite the exact tool name (T1/T2) or source name + "as of" date (T3) — never a generic "Bloomberg" or "company filings"
- Do not display raw URLs for T1/T2 MCP sources; do display URLs for T2 fallback and T3 web sources
- For derived metrics that combine multiple MCP tools, cite each tool used
- For T2, never blend MCP rows and fallback rows in the same column without a fallback label
Sources section layout (end of report)
Group by tier so readers can immediately see what is authoritative vs. fallback vs. web:
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/defeatbeta-earnings-analysis/SKILL.md
Popularity
- Repository stars
- 671
- Repository forks
- 54
- 7-day trend score
- 33
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 23 Jun 2026, 4 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/defeat-beta/defeatbeta-api/defeatbeta-earnings-analysis)