Back to Skills

etf-premium

Calculate ETF premium/discount vs NAV via Yahoo Finance, and decompose single-day surges into NAV-driven vs structural components (gamma squeeze, dealer hedging, blocked AP arbitrage). Use whenever the user asks about an ETF's premium or discount, NAV comparison, why an ETF diverged from its holdings, or how much of a move is dealer-hedging-driven. Triggers: "ETF premium", "ETF discount", "NAV premium", "is SPY at a premium", "BITO premium", "IBIT premium", "bond ETF discount", "trading above/be

3,115stars362forksUpdated 8/5/2026

Security Assessment

Safe(92/100)
Security Score92/100

About etf-premium

The etf-premium skill calculates the premium or discount of an ETF's market price relative to its Net Asset Value (NAV) using data from Yahoo Finance via the yfinance library, and goes further by decomposing single-day price surges into NAV-driven versus structural components such as gamma squeeze, dealer hedging, and blocked authorized-participant arbitrage. It solves the problem of understanding when an ETF's traded price has diverged from the value of its underlying holdings — a divergence that is tiny for liquid US equity ETFs but can be significant for bond, international, leveraged/inverse, commodity, and crypto ETFs, especially under market stress.

The skill first checks for and installs its Python dependencies (yfinance, pandas, numpy), then routes the user's request to one of several sub-skills: a single-ETF snapshot, a multi-ETF comparison, a premium screener for finding extreme discounts, a deep dive with context, or a premium-surge decomposition that estimates how much of a move is dealer-hedging-driven. Its reference material explains the creation/redemption arbitrage mechanism and why it breaks down, documents the key yfinance data fields and their limitations (no historical NAV, end-of-day NAV timing, delayed prices), and provides category-specific 'normal' premium/discount benchmark ranges, stress-scenario examples, curated ETF universes for screening, peer-comparison groups, and a bid-ask-spread reality check.

The target users are retail and professional investors, analysts, and quant-curious traders who want to evaluate ETF pricing efficiency or investigate why an ETF jumped. The skill is explicitly framed as for research and educational purposes only and not financial advice. It performs read-only market-data fetches and computation; the only notable behavior is that it may run pip to install its data dependencies, which is a standard, benign setup step.

FAQ

What data source does it use and what are the limits?

It uses Yahoo Finance via the yfinance library, reading the navPrice and regularMarketPrice fields. Limitations include no historical NAV (only the most recent value), end-of-day NAV timing while prices move intraday, possible 15-minute price delays, and missing navPrice for some very new or obscure ETFs.

What kinds of analysis can it perform?

Five routes: a single-ETF snapshot with peer context, a multi-ETF comparison, a premium screener for finding extreme premiums or discounts, a deep dive with context, and a premium-surge decomposition separating NAV-driven moves from structural drivers like gamma squeeze and dealer hedging.

Is this financial advice?

No. The skill states explicitly that it is for research and educational purposes only and is not financial advice, and notes that yfinance is not affiliated with Yahoo, Inc.

What does it need to run?

Python with the yfinance, pandas, and numpy packages. The skill checks whether these are present and, if missing, installs them via pip before proceeding. A premium smaller than the bid-ask spread is flagged as not economically meaningful.

All Files

4 files
references/etf_premium_reference.md7.6 KB
View
references/gamma_squeeze_reference.md9.6 KB
View
SKILL.md33.1 KB
View
README.md2.2 KB
View

Install etf-premium

Download and extract the skill files to your .claude/skills/ directory.

Quick Setup:

  1. Copy the skill folder to .claude/skills/
  2. Claude will automatically detect and use the skill