Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
daymade avatar

Financial Data Collector

  • 648 installs
  • 1.3k repo stars
  • Updated August 4, 2026
  • daymade/claude-code-skills

financial-data-collector is a Claude skill that pulls structured financial market and statement data for US public companies from yfinance so developers can feed DCF, comps, and earnings models.

About

financial-data-collector is a Claude Code skill that collects real financial data for any US publicly traded company from free public sources via yfinance. Output is structured JSON covering market data (price, shares, beta), historical income statements, cash flow, balance sheets, WACC inputs, and analyst estimates. Downstream skills consume the JSON for DCF modeling, comps analysis, and earnings review. Developers reach for financial-data-collector when a ticker symbol is given and clean inputs are needed before building valuation spreadsheets or automated finance agents—triggered by phrases like collect data for ticker, get financials for company, or gather DCF inputs.

  • Pulls price, shares, beta, income statement, cash flow, balance sheet, WACC inputs and analyst estimates
  • Outputs standardized JSON with mandatory _source attribution on every section
  • Enforces NO FALLBACK values rule – missing fields are null with explicit missing source
  • Preserves original yfinance CapEx sign convention and flags FCF calculation differences
  • Designed as the first step in any financial analysis agent workflow

Financial Data Collector by the numbers

  • 648 all-time installs (skills.sh)
  • Ranked #406 of 2,064 Data Science & ML skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/daymade/claude-code-skills --skill financial-data-collector

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs648
repo stars1.3k
Last updatedAugust 4, 2026
Repositorydaymade/claude-code-skills

How do you collect financial data for a stock ticker?

Pull clean, structured financial market and statement data for any US public company before running valuation, comps, or earnings models.

Who is it for?

Developers or analysts building DCF, comps, or earnings workflows who need clean yfinance JSON for US tickers.

Skip if: Private companies, non-US listings without yfinance coverage, or real-time trading systems requiring exchange-direct feeds.

When should I use this skill?

The user requests financial data, market data, financials, DCF inputs, or stock data for a US public company ticker.

What you get

Structured JSON with market data, income statement, cash flow, balance sheet, WACC inputs, and analyst estimates.

  • structured financial JSON
  • market and statement datasets

Files

SKILL.mdMarkdownGitHub ↗

Financial Data Collector

Collect and validate real financial data for US public companies using free data sources. Output is a standardized JSON file ready for consumption by other financial skills.

Critical Constraints

NO FALLBACK values. If a field cannot be retrieved, set it to null with _source: "missing". Never substitute defaults (e.g., beta or 1.0). The downstream skill decides how to handle missing data.

Data source attribution is mandatory. Every data section must have a _source field.

CapEx sign convention: yfinance returns CapEx as negative (cash outflow). Preserve the original sign. Document the convention in output metadata. Do NOT flip signs.

yfinance FCF ≠ Investment bank FCF. yfinance FCF = Operating CF + CapEx (no SBC deduction). Flag this in output metadata so downstream DCF skills don't overstate FCF.

Workflow

Step 1: Collect Data

Run the collection script:

python scripts/collect_data.py TICKER [--years 5] [--output path/to/output.json]

The script collects in this priority: 1. yfinance — market data, historical financials, beta, analyst estimates 2. yfinance ^TNX — 10Y Treasury yield as risk-free rate proxy 3. User supplement — for years where yfinance returns NaN (report to user, do not guess)

Step 2: Validate Data

python scripts/validate_data.py path/to/output.json

Checks: field completeness, cross-field consistency (Market Cap = Price × Shares), range sanity (WACC 5-20%, beta 0.3-3.0), sign conventions.

Step 3: Deliver JSON

Single file: {TICKER}_financial_data.json. Schema in references/output-schema.md.

Do NOT create: README, CSV, summary reports, or any auxiliary files.

Output Schema (Summary)

{
  "ticker": "META",
  "company_name": "Meta Platforms, Inc.",
  "data_date": "2026-03-02",
  "currency": "USD",
  "unit": "millions_usd",
  "data_sources": { "market_data": "...", "2022_to_2024": "..." },
  "market_data": { "current_price": 648.18, "shares_outstanding_millions": 2187, "market_cap_millions": 1639607, "beta_5y_monthly": 1.284 },
  "income_statement": { "2024": { "revenue": 164501, "ebit": 69380, "tax_expense": ..., "net_income": ..., "_source": "yfinance" } },
  "cash_flow": { "2024": { "operating_cash_flow": ..., "capex": -37256, "depreciation_amortization": 15498, "free_cash_flow": ..., "change_in_nwc": ..., "_source": "yfinance" } },
  "balance_sheet": { "2024": { "total_debt": 30768, "cash_and_equivalents": 77815, "net_debt": -47047, "current_assets": ..., "current_liabilities": ..., "_source": "yfinance" } },
  "wacc_inputs": { "risk_free_rate": 0.0396, "beta": 1.284, "credit_rating": null, "_source": "yfinance + ^TNX" },
  "analyst_estimates": { "revenue_next_fy": 251113, "revenue_fy_after": 295558, "eps_next_fy": 29.59, "_source": "yfinance" },
  "metadata": { "_capex_convention": "negative = cash outflow", "_fcf_note": "yfinance FCF = OperatingCF + CapEx. Does NOT deduct SBC." }
}

Full schema with all field definitions: references/output-schema.md

<correct_patterns>

Handling Missing Years

if pd.isna(revenue):
    result[year] = {"revenue": None, "_source": "yfinance returned NaN — supplement from 10-K"}
# Report missing years to the user. Do NOT skip or fill with estimates.

CapEx Sign Preservation

capex = cash_flow.loc["Capital Expenditure", year_col]  # -37256.0
result["capex"] = float(capex)  # Preserve negative

Datetime Column Indexing

year_col = [c for c in financials.columns if c.year == target_year][0]
revenue = financials.loc["Total Revenue", year_col]

Field Name Guards

if "Total Revenue" in financials.index:
    revenue = financials.loc["Total Revenue", year_col]
elif "Revenue" in financials.index:
    revenue = financials.loc["Revenue", year_col]
else:
    revenue = None

</correct_patterns>

<common_mistakes>

Mistake 1: Default Values for Missing Data

# ❌ WRONG
beta = info.get("beta", 1.0)
growth = data.get("growth") or 0.02

# ✅ RIGHT
beta = info.get("beta")  # May be None — that's OK

Mistake 2: Assuming All Years Have Data

# ❌ WRONG — 2020-2021 may be NaN
revenue = float(financials.loc["Total Revenue", year_col])

# ✅ RIGHT
value = financials.loc["Total Revenue", year_col]
revenue = float(value) if pd.notna(value) else None

Mistake 3: Using yfinance FCF in DCF Models Directly

yfinance FCF does NOT deduct SBC. For mega-caps like META, SBC can be $20-30B/yr, making yfinance FCF ~30% higher than investment-bank FCF. Always flag this in output.

Mistake 4: Flipping CapEx Sign

# ❌ WRONG — double-negation risk downstream
capex = abs(cash_flow.loc["Capital Expenditure", year_col])

# ✅ RIGHT — preserve original, document convention
capex = float(cash_flow.loc["Capital Expenditure", year_col])  # -37256.0

</common_mistakes>

Known yfinance Pitfalls

See references/yfinance-pitfalls.md for detailed field mapping and workarounds.

Related skills

How it compares

Use financial-data-collector for quick free yfinance JSON inputs instead of wiring a paid market-data API for exploratory valuation work.

FAQ

What data does financial-data-collector return?

financial-data-collector outputs structured JSON with market data (price, shares, beta), historical income statement, cash flow, balance sheet figures, WACC inputs, and analyst estimates from yfinance.

Which companies does financial-data-collector support?

financial-data-collector targets US publicly traded companies, pulling from free public sources via yfinance before downstream DCF, comps, or earnings analysis skills run.

Data Science & MLresearchautomation

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.