Finance-skills yfinance-data
install
source · Clone the upstream repo
git clone https://github.com/himself65/finance-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/himself65/finance-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/market-analysis/skills/yfinance-data" ~/.claude/skills/himself65-finance-skills-yfinance-data && rm -rf "$T"
manifest:
plugins/market-analysis/skills/yfinance-data/SKILL.mdsource content
yfinance Data Skill
Fetches financial and market data from Yahoo Finance using the yfinance Python library.
Important: yfinance is not affiliated with Yahoo, Inc. Data is for research and educational purposes.
Step 1: Ensure yfinance Is Available
Current environment status:
!`python3 -c "import yfinance; print('yfinance ' + yfinance.__version__ + ' installed')" 2>/dev/null || echo "YFINANCE_NOT_INSTALLED"`
If
YFINANCE_NOT_INSTALLED, install it before running any code:
import subprocess, sys subprocess.check_call([sys.executable, "-m", "pip", "install", "-q", "yfinance"])
If yfinance is already installed, skip the install step and proceed directly.
Step 2: Identify What the User Needs
Match the user's request to one or more data categories below, then use the corresponding code from
references/api_reference.md.
| User Request | Data Category | Primary Method |
|---|---|---|
| Stock price, quote | Current price | or |
| Price history, chart data | Historical OHLCV | or |
| Balance sheet | Financial statements | |
| Income statement, revenue | Financial statements | |
| Cash flow | Financial statements | |
| Dividends | Corporate actions | |
| Stock splits | Corporate actions | |
| Options chain, calls, puts | Options data | |
| Earnings, EPS | Analysis | |
| Analyst price targets | Analysis | |
| Recommendations, ratings | Analysis | |
| Upgrades/downgrades | Analysis | |
| Institutional holders | Ownership | |
| Insider transactions | Ownership | |
| Company overview, sector | General info | |
| Compare multiple stocks | Bulk download | |
| Screen/filter stocks | Screener | + |
| Sector/industry data | Market data | / |
| News | News | |
Step 3: Write and Execute the Code
General pattern
import subprocess, sys subprocess.check_call([sys.executable, "-m", "pip", "install", "-q", "yfinance"]) import yfinance as yf ticker = yf.Ticker("AAPL") # ... use the appropriate method from the reference
Key rules
- Always wrap in try/except — Yahoo Finance may rate-limit or return empty data
- Use
for multi-ticker comparisons — it's faster with multi-threadingyf.download() - For options, list expiration dates first with
before callingticker.optionsticker.option_chain(date) - For quarterly data, use
prefix:quarterly_
,ticker.quarterly_income_stmt
,ticker.quarterly_balance_sheetticker.quarterly_cashflow - For large date ranges, be mindful of intraday limits — 1m data only goes back ~7 days, 1h data ~730 days
- Print DataFrames clearly — use
or.to_string()
for readability, or select key columns.to_markdown() - Timezone handling — yfinance returns tz-aware datetime indices (e.g.,
). When comparing dates, always useAmerica/New_York
or strip timezones withpd.Timestamp(..., tz=...)
. See the reference file for details..tz_localize(None)
Valid periods and intervals
| Periods | , , , , , , , , , , |
|---|---|
| Intervals | , , , , , , , , , , , , |
Step 4: Present the Data
After fetching data, present it clearly:
- Summarize key numbers in a brief text response (current price, market cap, P/E, etc.)
- Show tabular data formatted for readability — use markdown tables or formatted DataFrames
- Highlight notable items — earnings beats/misses, unusual volume, dividend changes
- Provide context — compare to sector averages, historical ranges, or analyst consensus when relevant
If the user seems to want a chart or visualization, combine with an appropriate visualization approach (e.g., generate an HTML chart or describe the trend).
Reference Files
— Complete yfinance API reference with code examples for every data categoryreferences/api_reference.md
Read the reference file when you need exact method signatures or edge case handling.