earnings-recap
使用雅虎财经(Yahoo Finance)数据为任意股票生成一份财报后分析。当用户想回顾财报公布后发生了什么、理解是否超预期/未达预期的结果、查看股价反应,或获取财报要点回顾时使用。触发条件:“AAPL 财报回顾”“TSLA 财报表现如何”“MSFT 财报结果”“NVDA 是否超出预期”“财报后分析”“财报意外(盈余惊喜)”“GOOGL 财报发生了什么”“财报反应”“财报后股价走势”“EPS 超预期还是未达”“营收超预期还是未达”“某某公司的季度业绩”“他们的财报怎么样”“AMZN 昨晚发布了财报”“财报电话会议回顾”,或任何关于公司近期财报结果的请求。只要用户提到过去的某次财报事件(即使只是说“ AAPL 已公布财报”或“他们表现如何”),就使用该技能。
分类
金融分析安装
下载并解压到你的 skills 目录
复制命令,发送给 OpenClaw 自动安装:
Earnings Recap Skill
Generates a post-earnings analysis using Yahoo Finance data via 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.
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 Data
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.recommendationsWhat to extract
| 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 |
Step 3: Determine the Most Recent Earnings
The most recent earnings result is the first row (most recent date) in earnings_history. Use its date to:
Price reaction calculation
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) * 100Note: 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.
Step 4: Build the Earnings Recap
Section 1: Headline Result
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."
Section 2: Earnings vs. Estimates Detail
| 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.
Section 3: Quarterly Financial Trends
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:
Section 4: Stock Price Reaction
earnings_history)Section 5: Context & What Changed
Based on the data, note:
earnings_history)recommendations if availableStep 5: Respond to the User
Present the recap as a clean, structured summary:
Caveats to include
Reference Files
references/api_reference.md — Detailed yfinance API reference for earnings history and financial statement methodsRead the reference file when you need exact method signatures or to handle edge cases in the financial data.