Atlas / Skills / tradermonty / Earnings Trade Analyzer

Earnings Trade AnalyzerSAFE

skills/tradermonty/earnings-trade-analyzer

Claude Code skills for equity investors and traders — market analysis, technical charting, economic calendars, screeners, and trading strategy development.

Verdict
SAFE
Grade
B
Trust score
89 /100
Version
—
Hosts
—
License
MIT
Stars
3,379
01

Overview

Claude Code skills for equity investors and traders — market analysis, technical charting, economic calendars, screeners, and trading strategy development.

Read from source at commit c91a4ba0d6ecOBSERVED · 2026-10-28
Advertisement
02

What it tells the agent

The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.

---
name: earnings-trade-analyzer
description: 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 scoring, or finding best recent earnings reactions.
---

# 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:

```bash
# Default: last 2 days of earnings, top 20 results
python3 skills/earnings-trade-analyzer/scripts/analyze_earnings_trades.py --output-dir reports/

# Custom lookback and market cap filter
python3 skills/earnings-trade-analyzer/scripts/analyze_earnings_trades.py \
  --lookback-days 5 \
  --min-market-cap 1000000000 \
  --top 30 \
  --output-dir reports/

# Deterministic anchor date (America/New_York); the window is anchored on the
# ET calendar date, not the runner's local clock. For reproducible runs/tests.
python3 skills/earnings-trade-analyzer/scripts/analyze_earnings_trades.py \
  --as-of 2026-09-15 \
  --output-dir reports/

# With entry quality filter
python3 skills/earnings-trade-analyzer/scripts/analyze_earnings_trades.py \
  --apply-entry-filter \
  --output-dir reports/
```

#### 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:

```bash
python3 skills/earnings-trade-analyzer/scripts/analyze_earnings_trades.py \
  --lookback-days 2 \
  --min-market-cap 5000000000 \
  --top 20 \
  --max-api-calls 600 \
  --output-dir reports/<routine-date>
```

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:

```bash
curl "https://financialmodelingprep.com/stable/earnings-calendar?from=YYYY-MM-DD&to=YYYY-MM-DD&apikey=$FMP_API_KEY"
```

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 Anal
03

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
none-observed
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (2)

LOWInventory / provenance · inv.symlink · CWE-1104
examples/daily-market-dashboard/.claude/skills
examples/daily-market-dashboard/.claude/skills
Why it matters. link not followed
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
requirements.txt
requests
Why it matters. 1 requirement(s) not pinned with ==
Fix. pin exact versions

Gates applied: no_behavioural_pass.

Audited 2026-10-28 · audit v0.4.1 · source sha c91a4ba0d6ecfull audit observations/trust-audit/skill/tradermonty__earnings-trade-analyzer.json · Report an issue / request a re-scan
04

Audit history

Every audit this skill has had.

DateSourceVerdictGradeScoreChange
2026-10-28c91a4ba0d6ecSAFEB89first audit
05

Questions

What does the earnings-trade-analyzer — tradermonty/claude-trading-skills skill do?

Claude Code skills for equity investors and traders — market analysis, technical charting, economic calendars, screeners, and trading strategy development.

Is earnings-trade-analyzer — tradermonty/claude-trading-skills safe to install?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.

What can earnings-trade-analyzer — tradermonty/claude-trading-skills access on my machine?

The audit observed no filesystem, network or shell use at all in its source.

How current is this page?

The grade is for one exact copy of the source (c91a4ba0d6ec), read on 2026-10-28. The repository is watched, and a new audit runs when it changes — this is the first audit.

Add this badge to your README

Shows this page's audit result and links back to it. It updates when the audit does.

ModelsAtlas audit badge

Markdown
[![ModelsAtlas audit: Earnings Trade Analyzer](https://modelsatlas.com/skills/tradermonty/earnings-trade-analyzer/badge.svg)](https://modelsatlas.com/skills/tradermonty/earnings-trade-analyzer/)

Not your listing, or something out of date? Claim or update your listing.

Advertisement