본문으로 건너뛰기
cccskills
무료GitHub에 공개

earnings-recap

Review a company's latest or specified past earnings report using Yahoo Finance data. Compare earnings per share with estimates, examine revenue and profit margins, and measure the stock's price reaction against previous earnings moves.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

원문원문 설명 보기

Analyze a company's most recent (or a specified past) earnings report from Yahoo Finance data (yfinance): actual vs estimated EPS, surprise size, revenue and margin trends, and the stock's price reaction. Use this skill whenever the user asks how earnings went — beat or miss, earnings surprise, quarterly results, the post-earnings move, or an earnings call recap — including casual references to a past report such as "AMZN reported last night" or "how did they do". For an upcoming report, use earnings-preview.

연동 도구Yahoo Finance
설치 방법 보기

이럴 때 유용합니다

  • Check whether reported earnings beat estimates
  • Review quarterly revenue and profit margin trends
  • Compare the stock reaction with earlier earnings reports
  • Revisit a specified past earnings report

포함된 파일(3)

  • SKILL.md7.0 KB
  • README.md1.1 KB
  • references/api_reference.md5.0 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Earnings Recap Skill

If your host has not already executed the shell probes below (for example, in Codex), run the commands inside the ! wrappers with its shell tool before choosing a setup path. Use the actual output; if shell access is unavailable, report that limitation.

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 "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.


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

ticker = yf.Ticker("AAPL")  # replace with actual ticker

# --- Earnings results ---
earnings_dates = ticker.get_earnings_dates(limit=12)  # report timestamps, newest first
earnings_hist = ticker.earnings_history               # last 4 quarters, indexed by fiscal quarter-end, oldest first

# --- Financial statements (about five quarters, newest first) ---
quarterly_income = ticker.quarterly_income_stmt
quarterly_cashflow = ticker.quarterly_cashflow
quarterly_balance = ticker.quarterly_balance_sheet

# --- Context ---
info = ticker.info
news = ticker.news
recommendations = ticker.recommendations

What to extract

Data SourceKey FieldsPurpose
get_earnings_dates()Earnings Date, EPS Estimate, Reported EPS, Surprise(%)Which report, when, and the beat/miss
earnings_historyepsEstimate, epsActual, epsDifference, surprisePercentLast four quarters' results by fiscal quarter
quarterly_income_stmtTotalRevenue, GrossProfit, OperatingIncome, NetIncome, BasicEPSActual financials
history()Daily closes around each reportStock price reaction
infocurrentPrice, marketCap, forwardPECurrent context
newsRecent headlinesEarnings-related news

Step 3: Find the Report and Measure the Reaction

earnings_history is indexed by fiscal quarter-end, not by announcement date, so take report timing from get_earnings_dates(): the most recent report is the newest row with a Reported EPS. Its timestamp (US Eastern) sets the reaction window: at or after 16:00 means the company reported after the close; anything earlier means before the open or, occasionally, during the session. If the user asked about a specific quarter, use that row instead.

def earnings_reaction(ticker, report_ts):
    """% move from the last close before the report to the first close after it."""
    daily = ticker.history(start=(report_ts - pd.Timedelta(days=10)).date(),
                           end=(report_ts + pd.Timedelta(days=10)).date())
    closes = daily["Close"]
    days = closes.index.date
    d = report_ts.date()
    if report_ts.hour >= 16:  # reported after the close: report-day close -> next close
        pre, post = closes[days <= d], closes[days > d]
    else:                     # before the open or intraday: prior close -> report-day close
        pre, post = closes[days < d], closes[days >= d]
    if pre.empty or post.empty:
        return None           # the reaction session hasn't closed yet
    return (post.iloc[0] / pre.iloc[-1] - 1) * 100

reported = earnings_dates[earnings_dates["Reported EPS"].notna()]
latest_ts = reported.index[0]
reaction_pct = earnings_reaction(ticker, latest_ts)

# Typical earnings-day move over the prior four reports
prior_moves = [earnings_reaction(ticker, ts) for ts in reported.index[1:5]]
avg_abs_move = pd.Series([abs(m) for m in prior_moves if m is not None]).mean()

If reaction_pct is None, the report came after the most recent close; say the regular-session reaction is still pending (an intraday history(..., prepost=True) call shows the after-hours move if the user wants it).


Step 4: Build the Earnings Recap

Cover these areas, leading with the result:

  1. Headline result — EPS actual vs estimate with the surprise %, revenue with year-over-year growth, and the stock's reaction.
  2. Estimates vs actuals — EPS estimate, actual, and surprise ($ and %) for the quarter in question.
  3. Quarterly trends — revenue, gross margin, operating margin, and EPS for the recent quarters, with margins computed from the statements (gross profit / revenue, operating income / revenue). yfinance usually returns about five quarters, so year-over-year growth is available for the latest quarter only (column 0 vs column 4); show sequential change for the others rather than inventing a comparison.
  4. Price reaction — the move in the reaction session, how it compares with the stock's average absolute earnings move over the prior four reports, and whether the stock has since held, given back, or extended the move.
  5. What changed — margin direction vs the prior quarter, any shift in the revenue growth trajectory, how this surprise compares with the company's usual pattern, and current analyst sentiment if available.

Step 5: Respond to the User

Open with the headline — which quarter, when it was reported, the beat or miss, revenue growth, and the reaction — then the supporting tables. Say what matters: whether this was a meaningful beat or a low bar cleared, and whether the trend is improving or deteriorating. Keep it factual and leave out investment recommendations.

Include the caveats that apply: Yahoo Finance data doesn't capture everything from the call (guidance, segment detail), revenue is compared year over year from the statements rather than against a revenue consensus, the price reaction can reflect a broader market move that day, and this is not financial advice.


Reference Files

  • references/api_reference.md — Detailed yfinance API reference for earnings history and financial statement methods

Read the reference file when you need exact method signatures or to handle edge cases in the financial data.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Estimate a public company's value using projected cash flows, peer comparisons, and separate business segments where applicable. Produce an implied share price, compare it with the market price, and show how different assumptions change the result.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Estimating a company's fair share price
  • Comparing valuation multiples with industry peers
  • Testing how growth and discount rates affect value
himself65/finance-skills3.4천2026년 10월 19일 업데이트

Read and search Discord discussions for financial research through opencli. Review servers, channels, members, and recent messages, then organize comments about stocks or crypto by topic, attribution, and bullish or bearish views.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Reviewing recent posts in a market discussion channel
  • Searching Discord conversations about a stock or coin
  • Checking available servers, channels, and online members
himself65/finance-skills3.4천2026년 10월 19일 업데이트

Prepare a briefing before a company's earnings report using Yahoo Finance data. Review the reporting schedule, expected earnings and revenue, past results versus forecasts, analyst views, and company-specific points to watch.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Preparing for an upcoming earnings report
  • Checking earnings and revenue forecast ranges
  • Comparing past earnings with analyst estimates
himself65/finance-skills3.4천2026년 10월 19일 업데이트

Analyze company earnings and revenue forecasts using Yahoo Finance data. Compare analyst consensus, meaning their combined expectations, across periods, track upward and downward revisions, assess forecast ranges, and review how past estimates compared with actual results.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Tracking changes in earnings forecasts
  • Comparing optimistic and pessimistic estimates
  • Comparing growth forecasts with industry benchmarks
himself65/finance-skills3.4천2026년 10월 19일 업데이트

Calculate how far an ETF’s market price sits above or below its net asset value, the value of its holdings. Compare funds, screen for large gaps, and investigate sudden moves using holdings data and options-based estimates.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Check an ETF’s price gap relative to its net asset value
  • Compare premiums and discounts across similar ETFs
  • Screen ETFs for unusually large price gaps
himself65/finance-skills3.4천2026년 10월 19일 업데이트

Compare how stocks are discussed on Reddit, X.com, financial news, and Polymarket using the Adanos Finance API. Get attention scores, bullish percentages, activity counts, and trends to identify agreement or differences across sources and stocks.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Checking how much a stock is discussed on Reddit
  • Comparing sentiment across X.com and financial news
  • Comparing attention across several stocks
himself65/finance-skills3.4천2026년 10월 19일 업데이트

himself65의 스킬 모두 보기

이 스킬의 문제 신고