CtrlK
BlogDocsLog inGet started
Tessl Logo

earnings-recap

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.

75

Quality

93%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

86%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is a well-structured, highly actionable workflow with executable code and genuinely non-obvious domain knowledge (report timing, reaction windows, YoY column availability), and it properly delegates API detail to a real one-level-deep reference file. The only weaknesses are minor: a clunky environment-check block and missing error-recovery guidance for bad tickers or empty data.

Suggestions

Replace the '!`python3 -c ...`' environment-status block in Step 1 with a plain instruction (e.g., check for yfinance and pip-install if missing) — the current construct is non-standard and adds tokens without adding clarity.

Add a brief error-recovery note in Step 2 or 3 for failure cases: an unrecognized ticker or empty earnings_history/get_earnings_dates(), stating what to tell the user or how to fall back.

Trim redundant phrasing such as 'If already installed, skip to the next step' to tighten token efficiency toward the lean 5-anchor.

DimensionReasoningScore

Conciseness

The body is lean and adds only non-obvious knowledge (e.g., 'earnings_history is indexed by fiscal quarter-end, not by announcement date'; the 16:00 after-close vs before-open reaction windows), with no padding about what yfinance or EPS are. It falls short of the 5 anchor because of minor trimmable material: the awkward '!`python3 -c ...`' environment-status block in Step 1 and the slightly redundant 'If already installed, skip to the next step' line.

4 / 5

Actionability

The guidance is fully executable: copy-paste-ready Python for fetching data, a working earnings_reaction() function handling the after-close/before-open split, a table of key fields per data source, and explicit direction for edge cases ('If reaction_pct is None, ... say the regular-session reaction is still pending'). It matches the top anchor — the common cases are covered by specific, runnable code.

5 / 5

Workflow Clarity

The five-step sequence (ensure yfinance → gather data → find report and measure reaction → build recap → respond) is clear, and Step 1's install check plus Step 3's None-reaction fallback act as checkpoints. It falls short of 5 because some validation gaps remain: no guidance for what to do when the ticker is invalid or earnings_history/get_earnings_dates() returns empty data — error recovery beyond the pending-reaction case is not addressed.

4 / 5

Progressive Disclosure

The SKILL.md is a workflow-level overview with detailed API signatures correctly split into a single one-level-deep reference ('references/api_reference.md — Detailed yfinance API reference...'), which exists and matches that description. The reference is well-signaled with guidance on when to read it ('Read the reference file when you need exact method signatures or to handle edge cases'), matching the top anchor for clean navigation.

5 / 5

Total

18

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is exemplary: specific actions, an explicit 'Use when' trigger clause with natural user phrasings including casual variants, third-person voice, and explicit disambiguation from the related earnings-preview skill. It matches the strongest reference examples in the rubric.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — 'actual vs estimated EPS, surprise size, revenue and margin trends, and the stock's price reaction' — with a named data source (yfinance), comprehensively covering the skill's scope. It is not below 5 because no capability area is missing, and not above because 5 is the top anchor.

5 / 5

Completeness

Both 'what' (analyze a company's earnings report: EPS actual vs estimate, surprise, revenue/margin trends, price reaction) and 'when' ('Use this skill whenever the user asks how earnings went...') are explicit with concrete trigger phrases. The 'when' clause is not weakly implied but stated outright, so it clearly matches the 5 anchor rather than the 4 anchor.

5 / 5

Trigger Term Quality

Natural user phrasings are covered comprehensively: 'beat or miss', 'earnings surprise', 'quarterly results', 'the post-earnings move', 'earnings call recap', plus casual examples like 'AMZN reported last night' and 'how did they do'. These are exactly the synonyms a user would say, matching the top anchor including informal variations.

5 / 5

Distinctiveness Conflict Risk

The skill occupies a clear niche (post-earnings recap) and explicitly disambiguates the nearest neighbor: 'For an upcoming report, use earnings-preview.' This boundary statement eliminates the main overlap risk, keeping it clearly at the minimal-conflict anchor.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
himself65/finance-skills
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.