Finance-skills earnings-preview
git clone https://github.com/himself65/finance-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/himself65/finance-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/market-analysis/skills/earnings-preview" ~/.claude/skills/himself65-finance-skills-earnings-preview && rm -rf "$T"
plugins/market-analysis/skills/earnings-preview/SKILL.mdEarnings Preview Skill
Generates a pre-earnings briefing using Yahoo Finance data via yfinance. Pulls together upcoming earnings date, consensus estimates, historical accuracy, analyst sentiment, and key financial context — everything you need before an earnings call.
Important: Data is for research and educational purposes only. Not financial advice. yfinance is not affiliated with Yahoo, Inc.
Step 1: Ensure yfinance Is Available
Current environment status:
!`python3 -c "import yfinance; print('yfinance ' + yfinance.__version__ + ' installed')" 2>/dev/null || echo "YFINANCE_NOT_INSTALLED"`
If
YFINANCE_NOT_INSTALLED, install it:
import subprocess, sys subprocess.check_call([sys.executable, "-m", "pip", "install", "-q", "yfinance"])
If already installed, skip to the next step.
Step 2: Identify the Ticker and Gather All Data
Extract the ticker symbol from the user's request. If they mention a company name without a ticker, look it up. Then fetch all relevant data in one script to minimize API calls.
import yfinance as yf import pandas as pd from datetime import datetime ticker = yf.Ticker("AAPL") # replace with actual ticker # --- Core data --- info = ticker.info calendar = ticker.calendar # --- Estimates --- earnings_est = ticker.earnings_estimate revenue_est = ticker.revenue_estimate # --- Historical track record --- earnings_hist = ticker.earnings_history # --- Analyst sentiment --- price_targets = ticker.analyst_price_targets recommendations = ticker.recommendations # --- Recent financials for context --- quarterly_income = ticker.quarterly_income_stmt quarterly_cashflow = ticker.quarterly_cashflow
What to extract from each source
| Data Source | Key Fields | Purpose |
|---|---|---|
| Earnings Date, Ex-Dividend Date | When earnings are and key dates |
| avg, low, high, numberOfAnalysts, yearAgoEps, growth (for 0q, +1q, 0y, +1y) | Consensus EPS expectations |
| avg, low, high, numberOfAnalysts, yearAgoRevenue, growth | Revenue expectations |
| epsEstimate, epsActual, epsDifference, surprisePercent | Beat/miss track record |
| current, low, high, mean, median | Street price targets |
| Buy/Hold/Sell counts | Sentiment distribution |
| TotalRevenue, NetIncome, BasicEPS | Recent trajectory |
Step 3: Build the Earnings Preview
Assemble the data into a structured briefing. The goal is to give the user everything they need in one glance.
Section 1: Earnings Date & Key Info
Report the upcoming earnings date from
calendar. Include:
- Company name, ticker, sector, industry
- Upcoming earnings date (and whether it's before/after market)
- Current stock price and recent performance (1-week, 1-month)
- Market cap
Section 2: Consensus Estimates
Present the current quarter estimates from
earnings_estimate and revenue_estimate:
| Metric | Consensus | Low | High | # Analysts | Year Ago | Growth |
|---|---|---|---|---|---|---|
| EPS | $1.42 | $1.35 | $1.50 | 28 | $1.26 | +12.7% |
| Revenue | $94.3B | $92.1B | $96.8B | 25 | $89.5B | +5.4% |
If the estimate range is unusually wide (high/low spread > 20% of consensus), note that as a sign of high uncertainty.
Section 3: Historical Beat/Miss Track Record
From
earnings_history, show the last 4 quarters:
| Quarter | EPS Est | EPS Actual | Surprise | Beat/Miss |
|---|---|---|---|---|
| Q3 2024 | $1.35 | $1.40 | +3.7% | Beat |
| Q2 2024 | $1.30 | $1.33 | +2.3% | Beat |
| Q1 2024 | $1.52 | $1.53 | +0.7% | Beat |
| Q4 2023 | $2.10 | $2.18 | +3.8% | Beat |
Summarize: "AAPL has beaten EPS estimates in 4 of the last 4 quarters by an average of 2.6%."
Section 4: Analyst Sentiment
From
recommendations and analyst_price_targets:
- Current recommendation distribution (Strong Buy / Buy / Hold / Sell / Strong Sell)
- Price target range: low, mean, median, high vs. current price
- Implied upside/downside from mean target
Section 5: Key Metrics to Watch
Based on the quarterly financials, highlight 3-5 things the market will focus on:
- Revenue growth trend (accelerating or decelerating?)
- Margin trajectory (expanding or compressing?)
- Any notable line items that changed significantly quarter-over-quarter
- Segment breakdowns if available in the data
This section requires judgment — think about what matters for this specific company/sector.
Step 4: Respond to the User
Present the preview as a clean, structured briefing:
- Lead with the headline: "AAPL reports earnings on [date]. Here's what to expect."
- Show all 5 sections with clear headers and tables
- End with a brief summary: 2-3 sentences capturing the overall setup (bullish/bearish lean based on estimates, track record, and sentiment — frame as "the street expects" not personal recommendation)
Caveats to include
- Estimates can change up until the report date
- Historical beats don't guarantee future beats
- Yahoo Finance data may lag real-time consensus by a few hours
- This is not financial advice
Reference Files
— Detailed yfinance API reference for earnings and estimate methodsreferences/api_reference.md
Read the reference file when you need exact method signatures or edge case handling.