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.md
source 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 RequestData CategoryPrimary Method
Stock price, quoteCurrent price
ticker.info
or
ticker.fast_info
Price history, chart dataHistorical OHLCV
ticker.history()
or
yf.download()
Balance sheetFinancial statements
ticker.balance_sheet
Income statement, revenueFinancial statements
ticker.income_stmt
Cash flowFinancial statements
ticker.cashflow
DividendsCorporate actions
ticker.dividends
Stock splitsCorporate actions
ticker.splits
Options chain, calls, putsOptions data
ticker.option_chain()
Earnings, EPSAnalysis
ticker.earnings_history
Analyst price targetsAnalysis
ticker.analyst_price_targets
Recommendations, ratingsAnalysis
ticker.recommendations
Upgrades/downgradesAnalysis
ticker.upgrades_downgrades
Institutional holdersOwnership
ticker.institutional_holders
Insider transactionsOwnership
ticker.insider_transactions
Company overview, sectorGeneral info
ticker.info
Compare multiple stocksBulk download
yf.download()
Screen/filter stocksScreener
yf.Screener
+
yf.EquityQuery
Sector/industry dataMarket data
yf.Sector
/
yf.Industry
NewsNews
ticker.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

  1. Always wrap in try/except — Yahoo Finance may rate-limit or return empty data
  2. Use
    yf.download()
    for multi-ticker comparisons
    — it's faster with multi-threading
  3. For options, list expiration dates first with
    ticker.options
    before calling
    ticker.option_chain(date)
  4. For quarterly data, use
    quarterly_
    prefix:
    ticker.quarterly_income_stmt
    ,
    ticker.quarterly_balance_sheet
    ,
    ticker.quarterly_cashflow
  5. For large date ranges, be mindful of intraday limits — 1m data only goes back ~7 days, 1h data ~730 days
  6. Print DataFrames clearly — use
    .to_string()
    or
    .to_markdown()
    for readability, or select key columns
  7. Timezone handling — yfinance returns tz-aware datetime indices (e.g.,
    America/New_York
    ). When comparing dates, always use
    pd.Timestamp(..., tz=...)
    or strip timezones with
    .tz_localize(None)
    . See the reference file for details.

Valid periods and intervals

Periods
1d
,
5d
,
1mo
,
3mo
,
6mo
,
1y
,
2y
,
5y
,
10y
,
ytd
,
max
Intervals
1m
,
2m
,
5m
,
15m
,
30m
,
60m
,
90m
,
1h
,
1d
,
5d
,
1wk
,
1mo
,
3mo

Step 4: Present the Data

After fetching data, present it clearly:

  1. Summarize key numbers in a brief text response (current price, market cap, P/E, etc.)
  2. Show tabular data formatted for readability — use markdown tables or formatted DataFrames
  3. Highlight notable items — earnings beats/misses, unusual volume, dividend changes
  4. 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

  • references/api_reference.md
    — Complete yfinance API reference with code examples for every data category

Read the reference file when you need exact method signatures or edge case handling.