Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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 mi
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | -23% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 19% | 0% |
| case-20 | ✗→✓ | ▲ Improved | 18% | 0% |
| case-04 | ✓→✗ | ▼ Worse | -62% | 0% |
| case-05 | ✓→✗ | ▼ Worse | 1% | 0% |
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.
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:
pythonimport 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.
pythonimport 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:
pythonimport 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:
earnings_history)Based on the data, note:
earnings_history)recommendations if availablePresent the recap as a clean, structured summary:
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.
Other measured skills in the registry, with their headline benchmark lift.