CtrlK
BlogDocsLog inGet started
Tessl Logo

etf-premium

Calculate an ETF's premium or discount to NAV from Yahoo Finance data (yfinance), compare or screen ETFs by premium, explain why a gap exists, and decompose a sudden ETF move into NAV-driven vs structural components (dealer gamma exposure, blocked AP arbitrage, sentiment). Use this skill whenever the user asks whether an ETF trades above or below NAV, compares ETF premiums or discounts, screens for the biggest ones, asks about ETF arbitrage or premium convergence, or wants to know why an ETF jumped or diverged from its holdings — including gamma squeezes, dealer gamma exposure (GEX), and blocked creation/redemption. Especially relevant for leveraged, inverse, international, bond, commodity, and crypto ETFs (IBIT, BITO, HYG, KWEB).

75

Quality

92%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

85%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-engineered skill: a dependency check, an explicit routing table with defaults, five well-scoped sub-skills with executable code or precise formulas, error-handling and missing-data-reporting checkpoints, response checklists, and clean one-level-deep references that were verified to exist. The main weaknesses are minor: a small amount of background explanation Claude already knows, slight duplication between the A3 context table and the category-benchmark reference, and the absence of executable code for Sub-Skills C/D/E.

Suggestions

Trim the 'Why this matters' paragraph to a single sentence (or drop it) and remove the concepts Claude already knows, keeping only the category-stress facts that are not in the reference file.

Deduplicate the A3 category-context bullets against references/etf_premium_reference.md's 'What's Normal by Category' table — keep the inline version to one line per category and point to the reference for detail.

Add short executable snippets for Sub-Skills D and E (e.g., the annualized-volatility/dollar-volume computation and the Black-Scholes gamma + chain-aggregation loop), mirroring the completeness of Sub-Skills A and B.

DimensionReasoningScore

Conciseness

The body is dense with domain-specific value (routing table, peer-group mappings, category benchmark tables, GEX interpretation thresholds), but "Why this matters: An ETF's market price can diverge from the value of its underlying holdings (NAV). When you buy at a premium, you're overpaying relative to the assets" explains a concept Claude already knows, and the A3 category-context bullets overlap the reference file's "What's Normal Premium/Discount by Category" section. Not 5: a few sections could be trimmed or delegated to references; not 3: the padding is minor and most tokens earn their place.

4 / 5

Actionability

Sub-Skills A and B ship complete, copy-paste-ready Python with error handling ("if quote_type != 'ETF'", "NAV data not available"), and E gives precise formulas ("NAV proxy return = sum(weight_i x return_i) / covered weight", "Implied dealer-driven dollars = abs(GEX per 1% move) x abs(ETF return…)"). However, Sub-Skills C, D, and E provide field lists and formulas without executable code, leaving implementation details to the model. Not 5: guidance is not uniformly copy-paste ready across all five sub-skills; not 3: what is given is concrete and executable, with only minor gaps.

4 / 5

Workflow Clarity

The flow is explicit and well-gated: Step 1 verifies dependencies ("If `DEPS_MISSING`, install required packages… If already installed, skip"), Step 2 routes via a request-type table with a stated default ("default to Sub-Skill A"), and each sub-skill ends in Step 3's "Always include" / "Always caveat" response checklists. Error feedback loops are built in: error returns for non-ETFs and missing NAV, "Skip unavailable NAV rows but report how many peers were requested and returned", "Keep failed or missing-NAV counts visible instead of silently treating them as zero", and "Keep unavailable fields as `null` rather than inventing values". Not 4: no validation checkpoint is missing — dependency checks, per-symbol error handling, and batch-missing-data reporting are all explicit.

5 / 5

Progressive Disclosure

The body is an overview with a routing layer and clearly signaled, one-level-deep references: "`references/etf_premium_reference.md` — Detailed formulas, category-specific benchmarks, common ETF universe list…" and "`references/gamma_squeeze_reference.md` — Premium decomposition framework, Black-Scholes gamma + GEX formulas… Read this **before** running Sub-Skill E", with an in-line directive at E2 as well. Both files exist, are self-contained, and contain no nested second-level references. Not 4: references are well-labeled with content summaries and read-order guidance, and the split (core workflow inline, derivations/universe/worked examples in files) is appropriate.

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: it enumerates concrete capabilities matching each sub-skill, provides an explicit 'Use this skill when…' clause with natural trigger phrases and synonyms, and names the ETF categories and tickers where the skill is most relevant. It is specific, complete, and highly distinctive with minimal conflict risk.

DimensionReasoningScore

Specificity

Quotes: "Calculate an ETF's premium or discount to NAV from Yahoo Finance data (yfinance), compare or screen ETFs by premium, explain why a gap exists, and decompose a sudden ETF move into NAV-driven vs structural components (dealer gamma exposure, blocked AP arbitrage, sentiment)" — multiple specific concrete actions matching every sub-skill. Not 4: no coverage gaps remain; the actions map one-to-one onto the skill's five routes.

5 / 5

Completeness

Explicit what ("Calculate… compare or screen… explain why… decompose") followed by explicit when ("Use this skill when the user asks whether an ETF trades above or below NAV, compares ETF premiums or discounts, screens for the biggest ones…") plus scope notes ("Especially relevant for leveraged, inverse, international, bond, commodity, and crypto ETFs"). Both what and when answered with concrete trigger phrases. Not 4: the when clause is fully explicit, not weakly implied.

5 / 5

Trigger Term Quality

Quotes: "whether an ETF trades above or below NAV", "screens for the biggest ones", "ETF arbitrage or premium convergence", "why an ETF jumped or diverged from its holdings", "gamma squeezes, dealer gamma exposure (GEX)", plus concrete tickers (IBIT, BITO, HYG, KWEB). Natural user phrasings, synonyms, and specific examples are all present. Not 4: no common variation a user would say is missing.

5 / 5

Distinctiveness Conflict Risk

Quotes: "premium or discount to NAV from Yahoo Finance data (yfinance)", "blocked creation/redemption", "dealer gamma exposure (GEX)" — a clear niche unlikely to trigger general finance or stock-quote skills. Not 4: the trigger vocabulary (NAV, premium/discount, GEX, gamma squeeze, named ETF tickers) is essentially unique to this skill.

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.