finance-sentiment
Fetch structured stock sentiment across Reddit, X.com, news, and Polymarket using the Adanos Finance API. Use this skill whenever the user asks how much people…
Generate a post-earnings analysis for any stock using Yahoo Finance data. Use when the user wants to review what happened after earnings, understand beat/miss results, see stock reaction, or get an earnings recap. Triggers: "AAPL earnings recap", "how did TSLA earnings go",
$ npx -y skills add himself65/finance-skills --skill earnings-recap --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/earnings-recapContext preview
The summary Claude sees to decide when to auto-load this skill.
Generate a post-earnings analysis for any stock using Yahoo Finance data. Use when the user wants to review what happened after earnings, understand beat/miss results, see stock reaction, or get an earnings recap. Triggers: "AAPL earnings recap", "how did TSLA earnings go",
name: earnings-recap description: > Generate a post-earnings analysis for any stock using Yahoo Finance data. Use when the user wants to review what happened after earnings, understand beat/miss results, see stock reaction, or get an earnings recap. Triggers: "AAPL earnings recap", "how did TSLA earnings go", "MSFT earnings results", "did NVDA beat earnings", "post-earnings analysis", "earnings surprise", "what happened with GOOGL earnings", "earnings reaction", "stock moved after earnings", "EPS beat or miss", "revenue beat or miss", "quarterly results for", "how were earnings", "AMZN reported last night", "earnings call recap", or any request about a company's recent earnings outcome. Use this skill when the user references a past earnings event, even if they just say "AAPL reported" or "how did they do".
Generates a post-earnings analysis using Yahoo Finance data via [yfinance](https://github.com/ranaroussi/yfinance). Covers the actual vs estimated numbers, surprise magnitude, stock price reaction, and financial context — a complete picture of what happened.
**Important**: Data is for research and educational purposes only. Not financial advice. yfinance is not affiliated with Yahoo, Inc.
---
**Current environment status:**
!`python3 -c "exec('try:\n import yfinance\n print(\'yfinance \' + yfinance.__version__ + \' installed\')\nexcept Exception:\n print(\'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.
---
Extract the ticker from the user's request. Fetch all relevant post-earnings data in one script.
import yfinance as yf
import pandas as pd
from datetime import datetime, timedelta
ticker = yf.Ticker("AAPL") # replace with actual ticker
# --- Earnings result ---
earnings_hist = ticker.earnings_history
# --- Financial statements ---
quarterly_income = ticker.quarterly_income_stmt
quarterly_cashflow = ticker.quarterly_cashflow
quarterly_balance = ticker.quarterly_balance_sheet
# --- Price reaction ---
# Get ~30 days of history to capture the reaction window
hist = ticker.history(period="1mo")
# --- Context ---
info = ticker.info
news = ticker.news
recommendations = ticker.recommendations| Data Source | Key Fields | Purpose | |---|---|---| | `earnings_history` | epsEstimate, epsActual, epsDifference, surprisePercent | Beat/miss result | | `quarterly_income_stmt` | TotalRevenue, GrossProfit, OperatingIncome, NetIncome, BasicEPS | Actual financials | | `history()` | Close prices around earnings date | Stock price reaction | | `info` | currentPrice, marketCap, forwardPE | Current context | | `news` | Recent headlines | Earnings-related news |
---
The most recent earnings result is the first row (most recent date) in `earnings_history`. Use its date to:
1. **Identify the earnings date** for the price reaction analysis 2. **Match to the corresponding quarter** in the financial statements 3. **Calculate stock price reaction** — compare the close before earnings to the next trading day's close (or open, depending on whether earnings were before/after market)
import numpy as np
# Find the earnings date from earnings_history index
earnings_date = earnings_hist.index[0] # most recent
# Get daily prices around the earnings date
hist_extended = ticker.history(start=earnings_date - timedelta(days=5),
end=earnings_date + timedelta(days=5))
# The reaction is typically measured as:
# - Close on the last trading day before earnings -> Close on the first trading day after
# Be careful with before/after market reports
if len(hist_extended) >= 2:
pre_price = hist_extended['Close'].iloc[0]
post_price = hist_extended['Close'].iloc[-1]
reaction_pct = ((post_price - pre_price) / pre_price) * 100**Note**: The exact reaction window depends on when the company reported (before market open vs after close). The price data will reflect this — look for the biggest gap between consecutive closes near the earnings date.
---
Lead with the key numbers:
Example: "AAPL beat Q3 EPS estimates by 3.7% ($1.40 actual vs $1.35 expected). Revenue grew 5.4% YoY to $94.3B. The stock rose +2.1% on the report."
| Metric | Estimate | Actual | Surprise | |---|---|---|---| | EPS | $1.35 | $1.40 | +$0.05 (+3.7%) |
If the user asked about a specific quarter (not the most recent), look further back in `earnings_history`.
Show the last 4 quarters of key metrics from `quarterly_income_stmt`:
| Quarter | Revenue | YoY Growth | Gross Margin | Operating Margin | EPS | |---|---|---|---|---|---| | Q3 2024 | $94.3B | +5.4% | 46.2% | 30.1% | $1.40 | | Q2 2024 | $85.8B | +4.9% | 46.0% | 29.8% | $1.33 | | Q1 2024 | $119.6B | +2.1% | 45.9% | 33.5% | $2.18 | | Q4 2023 | $89.5B | -0.3% | 45.2% | 29.2% | $1.26 |
Calculate margins from the raw financials:
This project is for educational and informational purposes only. Nothing here constitutes financial advice. Always do your own research and consult a qualified financial advisor before making investment decisions.
Repo: himself65/finance-skills
Fetch structured stock sentiment across Reddit, X.com, news, and Polymarket using the Adanos Finance API. Use this skill whenever the user asks how much people…
Query Fintel (fintel.io) institutional market intelligence via the REST API at https://api.fintel.io/v1 with FINTEL_API_KEY (X-API-KEY header), or the official…
Check the current status of the Strait of Hormuz — shipping transit data, oil price impact, stranded vessels, insurance risk levels, diplomatic developments,…
Read Hyperliquid (app.hyperliquid.xyz) perp + spot market data via opencli (read-only, public info API). Use whenever the user wants Hyperliquid perpetual or…
Query TradingView market data through the bundled tradingview MCP server without a desktop app or login. Use whenever the user wants a technical analysis…
Read TradingView desktop app for market data, news, alerts, watchlists, and screener results using opencli (read-only). Use this skill whenever the user wants…