HKUDS/Vibe-Trading/agent/src/skills/earnings-revision/SKILL.md
earnings-revision
Earnings estimate revisions, guidance analysis, and post-earnings drift (PEAD) — track analyst consensus changes, earnings surprise patterns, and management guidance shifts for US/HK equities.
- Source repository stars
- 29,558
- Declared platforms
- 0
- Static risk flags
- 0
- Last source update
- 2026-08-04
- Source checked
- 2026-08-04
Decision brief
What it does—and where it fits
Earnings estimate revisions, guidance analysis, and post-earnings drift (PEAD) — track analyst consensus changes, earnings surprise patterns, and management guidance shifts for US/HK equities.
Not for
- Tasks that require unconfirmed production actions or broad system permissions.
- Environments where the pinned source and install steps cannot be inspected.
Compatibility matrix
Platform support, with evidence labels
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
Inspect first. Install second.
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/HKUDS/Vibe-Trading --skill "agent/src/skills/earnings-revision"Inspect the Agent Skill "earnings-revision" from https://github.com/HKUDS/Vibe-Trading/blob/3a752d5a8ed088633040893de1cc9e6dc712596f/agent/src/skills/earnings-revision/SKILL.md at commit 3a752d5a8ed088633040893de1cc9e6dc712596f. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
What the source asks the agent to do
- 01
Earnings Calendar and Workflow
1. Consensus snapshot: current EPS/revenue consensus, revision trend (30d/60d/90d) 2. Historical surprise pattern: has the company consistently beat/missed? By how much? 3. Guidance comparison: last quarter's guidance vs current consensus 4. Whisper number: buy-side expectations…
Consensus snapshot: current EPS/revenue consensus, revision trend (30d/60d/90d)Historical surprise pattern: has the company consistently beat/missed? By how much?Guidance comparison: last quarter's guidance vs current consensus - 02
Core Concepts
The revision signal hierarchy (strongest to weakest):
The revision signal hierarchy (strongest to weakest):Earnings Surprise: python - 03
1. Earnings Revision Momentum
The revision signal hierarchy (strongest to weakest):
The revision signal hierarchy (strongest to weakest): - 04
2. Key Metrics
Earnings Surprise: python
Earnings Surprise: python - 05
Standardized Unexpected Earnings (SUE)
sue = (actualeps - consensuseps) / stdofforecasterrors
sue = (actualeps - consensuseps) / stdofforecasterrors
Permission review
Static risk signals and limitations
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
Why each signal appears
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 85/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 29,558 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Provenance and original SKILL.md
- Repository
- HKUDS/Vibe-Trading
- Skill path
- agent/src/skills/earnings-revision/SKILL.md
- Commit
- 3a752d5a8ed088633040893de1cc9e6dc712596f
- License
- MIT
- Collected
- 2026-08-04
- Default branch
- main
View the original SKILL.md
Earnings Revision & Guidance Analysis
Overview
Track sell-side analyst estimate revisions, management guidance changes, and post-earnings price drift to generate investment signals. Earnings revisions are among the most persistent and well-documented alpha factors in equity markets — stocks with upward revisions tend to continue outperforming, and vice versa.
Core Concepts
1. Earnings Revision Momentum
The revision signal hierarchy (strongest to weakest):
| Signal Type | Description | Typical Alpha (annualized) | Persistence |
|---|---|---|---|
| Earnings surprise (beat/miss) | Actual EPS vs consensus | 3-8% post-event drift | 60-90 days (PEAD) |
| Consensus revision breadth | % of analysts revising up vs down | 4-6% long-short spread | 3-6 months |
| Estimate magnitude change | Size of revision relative to prior estimate | 3-5% | 1-3 months |
| Guidance revision | Management guidance change vs prior | 5-10% on event | Immediate + 30-60 day drift |
| Whisper number miss/beat | Actual vs buy-side whisper (not official consensus) | 2-4% | 1-2 weeks |
2. Key Metrics
Earnings Surprise:
# Standardized Unexpected Earnings (SUE)
sue = (actual_eps - consensus_eps) / std_of_forecast_errors
# Interpretation
# SUE > +2: large positive surprise → strong PEAD signal
# SUE < -2: large negative surprise → strong negative PEAD
# |SUE| < 0.5: in-line with expectations → weak signal
Revision Breadth:
# Revision breadth ratio
breadth = (num_upgrades - num_downgrades) / total_analysts
# Interpretation
# breadth > +0.5: strong consensus upgrade momentum
# breadth < -0.5: strong consensus downgrade momentum
# |breadth| < 0.2: mixed / no clear direction
Estimate Dispersion:
# Analyst disagreement
dispersion = std_of_estimates / abs(mean_estimate)
# High dispersion (>15%): high uncertainty → larger potential surprise
# Low dispersion (<5%): tight consensus → smaller surprise but higher confidence
3. Post-Earnings Announcement Drift (PEAD)
The most robust anomaly in equity markets: prices continue to drift in the direction of the earnings surprise for 60-90 days after the announcement.
PEAD trading rules:
| Surprise Quintile | Average 60-day Drift | Strategy |
|---|---|---|
| Q5 (top surprise) | +4 to +8% | Go long, hold 60-90 days |
| Q4 | +1 to +3% | Mild long |
| Q3 (in-line) | ~0% | No action |
| Q2 | -1 to -3% | Mild short / underweight |
| Q1 (worst surprise) | -4 to -8% | Go short / avoid, hold 60-90 days |
PEAD enhancement filters:
- Small/mid cap > large cap (less analyst coverage = slower price discovery)
- Low institutional ownership > high ownership (slower information diffusion)
- First surprise in a direction > consecutive same-direction surprises
- Revenue surprise + EPS surprise together > EPS surprise alone
4. Management Guidance Analysis
Guidance types:
| Type | What It Covers | Signal Weight |
|---|---|---|
| Revenue guidance | Top-line outlook | High (harder to manipulate) |
| EPS guidance | Bottom-line outlook | Medium (can be managed via buybacks, tax rate) |
| Margin guidance | Profitability trajectory | High (reflects pricing power and cost control) |
| CapEx guidance | Investment intentions | Medium (forward-looking growth signal) |
| Segment guidance | Division-level detail | High (reveals where growth is coming from) |
Guidance change signals:
# Guidance revision scoring
def score_guidance_change(current_guide, prior_guide, consensus):
# Guide above consensus = positive signal
if current_guide.midpoint > consensus * 1.02:
guide_vs_consensus = "above"
elif current_guide.midpoint < consensus * 0.98:
guide_vs_consensus = "below"
else:
guide_vs_consensus = "inline"
# Guide raised vs lowered vs maintained
if prior_guide:
if current_guide.midpoint > prior_guide.midpoint * 1.01:
guide_revision = "raised"
elif current_guide.midpoint < prior_guide.midpoint * 0.99:
guide_revision = "lowered"
else:
guide_revision = "maintained"
# Strongest signal: raised guidance above consensus
# Weakest signal: lowered guidance below consensus
Guidance language analysis:
| Language Pattern | Interpretation | Signal |
|---|---|---|
| "Raising full-year outlook" | Confidence in acceleration | Strong positive |
| "Reaffirming guidance" | No change, on-track | Mild positive (met expectations) |
| "Narrowing guidance range to upper half" | Soft raise without formal revision | Positive |
| "Updating guidance to reflect..." | Euphemism for guidance cut | Negative |
| "Withdrawing guidance" | High uncertainty, loss of visibility | Strong negative |
| "Providing preliminary results" | Pre-announcement, usually bad news | Negative (if below consensus) |
5. Earnings Quality Indicators
Red flags in earnings reports:
- Revenue growing but cash flow declining → accrual manipulation
- Changing revenue recognition policy → inflating top line
- Declining DSO (Days Sales Outstanding) story contradicted by rising AR → channel stuffing
- Beating EPS via lower tax rate or share buyback, not operating improvement
- Frequent "non-GAAP adjustments" that always add back expenses → questionable earnings quality
- Inventory build outpacing revenue growth → future write-down risk
Quality scoring:
earnings_quality = {
"fcf_conversion": fcf / net_income, # >0.8 = good, <0.5 = poor
"accrual_ratio": (net_income - ocf) / avg_assets, # <5% = good, >10% = concern
"revenue_cash_alignment": revenue_growth - ocf_growth, # small gap = good
"non_gaap_gap": non_gaap_eps - gaap_eps, # large gap = red flag
"buyback_eps_boost": eps_growth - net_income_growth, # large = artificial
}
Earnings Calendar and Workflow
Pre-Earnings Analysis Checklist
- Consensus snapshot: current EPS/revenue consensus, revision trend (30d/60d/90d)
- Historical surprise pattern: has the company consistently beat/missed? By how much?
- Guidance comparison: last quarter's guidance vs current consensus
- Whisper number: buy-side expectations (often 1-3% above street consensus for serial beaters)
- Options market pricing: implied move from at-the-money straddle
- Sector peers already reported: read-through signals from competitors
Post-Earnings Analysis Checklist
- Headline numbers: EPS surprise %, revenue surprise %
- Quality of beat/miss: operating income-driven or one-time items?
- Guidance change: raised / maintained / lowered / withdrawn
- Call tone: management confidence level, Q&A defensiveness
- Analyst reaction: immediate revision direction (first 24-48 hours)
- Price/volume reaction: gap up/down, reversal, volume multiple vs average
Multi-Market Considerations
US Equities
- Earnings season: Jan/Apr/Jul/Oct (roughly 2-6 weeks after quarter-end)
- Data: SEC filings (10-Q within 40 days, 10-K within 60 days for large accelerated filers)
- Consensus: Bloomberg, Refinitiv, FactSet, Visible Alpha
- Via yfinance:
ticker.earnings_dates,ticker.earnings_history
Hong Kong Equities
- Earnings season: Mar-Apr (annual), Aug-Sep (interim)
- Many HK-listed companies report semi-annually, not quarterly
- Dual-listed (A+H): compare A-share analyst estimates vs HK analyst estimates for arbitrage
- Via yfinance:
yf.Ticker("0700.HK").financials
Key Differences
| Dimension | US | HK |
|---|---|---|
| Reporting frequency | Quarterly | Semi-annual (most) |
| Guidance practice | Common | Rare |
| Analyst coverage | Deep (>20 for large caps) | Thinner (5-15 for large caps) |
| Pre-announcement | Regulated (Reg FD) | Less regulated |
| Earnings call | Standard | Less common for mid/small caps |
Output Format
## Earnings Revision Analysis — [Ticker]
### Consensus Snapshot
- **Current FY EPS consensus**: $X.XX (N analysts)
- **30-day revision**: [up/down X%] — [N upgrades / N downgrades]
- **60-day revision**: [up/down X%]
- **Estimate dispersion**: [low/medium/high] (CV = X%)
### Last Earnings Event
- **Date**: YYYY-MM-DD | **Quarter**: FY25Q3
- **EPS**: $X.XX actual vs $X.XX consensus (surprise: +X%)
- **Revenue**: $X.XB actual vs $X.XB consensus (surprise: +X%)
- **Guidance**: [raised / maintained / lowered] — FY25 EPS guide: $X.XX-$X.XX
- **Price reaction**: [+X% on day, +X% over 5 days]
### Revision Momentum
- **Breadth**: [+0.6 → strong upgrade momentum]
- **Magnitude**: [average revision +X% over 30 days]
- **PEAD status**: [still within 60-day drift window / drift exhausted]
### Earnings Quality
- **FCF conversion**: X% [strong/adequate/weak]
- **Accrual ratio**: X% [clean/moderate/concern]
- **Non-GAAP gap**: $X.XX [small/large]
### Signal
- **Direction**: [bullish / neutral / bearish]
- **Catalyst**: [next earnings date: YYYY-MM-DD]
- **Confidence**: [high / medium / low]
Notes
- Earnings revision data requires real-time consensus feeds (Bloomberg, Refinitiv) for professional-grade signals; yfinance provides historical actuals but not real-time consensus
- PEAD is strongest in the first 30 days post-announcement; signal decays significantly after 60 days
- Guidance withdrawals are almost always negative — companies rarely withdraw guidance when business is going well
- Beware of "beat and lower" — beating current quarter but lowering forward guidance is often net negative
- This framework is for research purposes only and does not constitute investment advice
Alternatives
Compare before choosing
alirezarezvani/claude-skills
app-store-optimization
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
wanshuiyin/Auto-claude-code-research-in-sleep
citation-audit
Use it for operations and research tasks; the detail page covers purpose, installation, and practical steps.
K-Dense-AI/scientific-agent-skills
dask
Distributed computing for larger-than-RAM pandas/NumPy workflows. Use when you need to scale existing pandas/NumPy code beyond memory or across clusters. Best for parallel file processing, distributed ML, integration with existing pandas code. For out-of-core analytics on single machine use vaex; for in-memory speed use polars.
K-Dense-AI/scientific-agent-skills
neurokit2
Use NeuroKit2 to build or audit reproducible research workflows for physiological time-series preprocessing, event/interval analysis, multimodal alignment, variability, and complexity. Trigger when code imports neurokit2 or needs its current APIs, schemas, and method-aware validation—not for diagnosis or device validation.