earnings-trade-analyzer
Analyze recent post-earnings stocks using a 5-factor scoring system (Gap Size, Pre-Earnings Trend, Volume Trend, MA200 Position, MA50 Position). Scores each stock 0-100 and assigns A/B/C/D grades. Use when user asks about earnings trade analysis, post-earnings momentum screening, earnings gap scorin
By tradermonty · 2,164 installs
npx skills add tradermonty/claude-trading-skills --skill earnings-trade-analyzer
Source repository · Upstream listing
Earnings Trade Analyzer Post Earnings 5 Factor Scoring
Analyze recent post earnings stocks using a 5 factor weighted scoring system to identify the strongest earnings reactions for potential momentum trades.
When to Use
User asks for post earnings trade analysis or earnings gap screening
User wants to find the best recent earnings reactions
User requests earnings momentum scoring or grading
User asks about post earnings accumulation day (PEAD) candidates
Prerequisites
FMP API key (set FMP API KEY environment variable or pass api key )
Free tier (250 calls/day) is sufficient for default screening (lookback 2 days, top 20)
Paid tier recommended for larger lookback windows or full screening
Workflow
Step 1: Run the Earnings Trade Analyzer
Execute the analyzer script:
Degraded endpoint / budget fallback for scheduled reviews
If the analyzer reports a 404, an implausible empty earnings calendar, or exhausts its API call budget before producing scored candidates during a scheduled after close/pre market run, do not report "no earnings reactions" immediately. A clean empty response over a date window containing at least one XNYS session exits 1 with ZERO RESULT REASON=earnings calendar empty with market sessions . If the shared XNYS calendar cannot classify the window, it exits 1 with ZERO RESULT REASON=market calendar unavailable . Budget or daily rate limit exhaustion during profile fetching exits 1 with ZERO RESULT REASON=profiles budget exhausted . Treat each as a failed run to retry or fall back on, not a quiet day. Only a clean empty response over a zero session window exits 0 as ZERO RESULT REASON=no earnings rows .
1. First retry once with a narrower liquid universe configuration so the full 5 factor scorer has a chance to complete, for example:
2. If the scored run still returns no candidates or cannot complete, verify the same range through the stable endpoint used by the compatibility shim and clearly label the result as an ungraded fallback:
Then optionally enrich returned US tickers through the analyzer's stable first FMP client or per symbol /stable/quote?symbol=<ticker calls to rank by same day changesPercentage , market cap, and liquidity. Use legacy /api/v3 quote calls only as a legacy key fallback after stable has failed. Present these as preliminary / ungraded reactions because the 5 factor scorer did not run; do not assign A/B/C/D grades from the fallback alone.
No candidate output pitfall: The analyzer may print Candidates after filtering: 0 / No candidates found matching criteria. and exit successfully without writing an earnings trade analyzer .json file. In that case, do not try to run PEAD Mode B from a nonexistent candidate file. Say explicitly that no scored analyzer JSON was produced, run the endpoint/quote enrichment fallback above if the routine needs an earnings section, and label any names as manual review only. This success exit path does not cover budget exhaustion during profile fetching: that case exits 1 ( ZERO RESULT REASON=profiles budget exhausted ) instead.
Empty windows and today only runs
The earnings calendar window is inclusive and uses the America/New York
calendar date from as of (or the current ET date). A clean provider []
is a benign quiet window result only when the shared XNYS calendar successfully
counts zero exchange sessions in that exact window, such as a weekend or
holiday. If the window contains an XNYS session, the same clean [] exits 1
with ZERO RESULT REASON=earnings calendar empty with market sessions so a
provider drop is not reported as a quiet day. If the XNYS calendar cannot be
queried, the run also exits 1 with
ZERO RESULT REASON=market calendar unavailable .
lookback days 0 is valid and queries exactly the single ET as of date. Use
it after the relevant announcements have been published (normally after the
session close); an empty response on an XNYS session remains intentionally
fail closed. A non empty response whose rows do not carry a symbol retains
the separate ZERO RESULT REASON=no earnings rows behavior; that case is not
the literal empty list session check above.
Step 2: Review Results
1. Read the generated JSON and Markdown reports
2. Load references/scoring methodology.md for scoring interpretation context
3. Focus on Grade A and B stocks for actionable setups
Step 3: Present Analysis
For each top candidate, present:
Composite score and letter grade (A/B/C/D)
Earnings gap size and direction
Pre earnings 20 day trend
Volume ratio (20 day vs 60 day average)
Position relative to 200 day and 50 day moving averages
Weakest and strongest scoring components
Step 4: Provide Actionable Guidance
Based on grades:
Grade A (85+): Strong earnings reaction with institutional accumulation consider entry
Grade B (70 84): Good earnings reaction worth monitoring wait for pullback or confirmation
Grade C (55 69): Mixed signals use caution, additional analysis needed
Grade D (<55): Weak setup avoid or wait for better conditions
Output
earnings trade analyzer YYYY MM DD HHMMSS.json Structured results with schema version "1.0"
earnings trade analyzer YYYY MM DD HHMMSS.md Human readable report with tables
Unknown earnings timing
FMP does not confirm a bmo/amc session for every earnings row; unconfirmed
rows report earnings timing: "unknown" and the gap calculation assumes the
AMC window as a fallback. Both reports surface timing unknown count out of
timing candidates total so this assumption stays visible rather than
blending unnoticed into the scores.
Resources
references/scoring methodology.md 5 factor scoring system, grade thresholds, and entry quality filter rules