New skill that collects real financial data for any US publicly traded company via yfinance. Outputs structured JSON with market data, historical financials, WACC inputs, and analyst estimates. Includes 9-check validation script and reference docs for yfinance pitfalls (NaN years, field aliases, FCF mismatch). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
85 lines
3.5 KiB
Markdown
85 lines
3.5 KiB
Markdown
# Output Schema — financial-data-collector
|
|
|
|
All monetary values in millions USD unless noted. Null means "not available from source."
|
|
|
|
## Top-Level Fields
|
|
|
|
| Field | Type | Description |
|
|
|-------|------|-------------|
|
|
| `ticker` | string | Stock ticker symbol (e.g., "META") |
|
|
| `company_name` | string | Full company name from yfinance |
|
|
| `data_date` | string | ISO date when data was collected |
|
|
| `currency` | string | Always "USD" for US equities |
|
|
| `unit` | string | Always "millions_usd" |
|
|
| `data_sources` | object | Attribution for each data section |
|
|
|
|
## market_data
|
|
|
|
| Field | Type | Source | Notes |
|
|
|-------|------|--------|-------|
|
|
| `current_price` | float | `yf.Ticker.info["currentPrice"]` | USD per share |
|
|
| `shares_outstanding_millions` | float | `info["sharesOutstanding"] / 1e6` | Diluted if available |
|
|
| `market_cap_millions` | float | `info["marketCap"] / 1e6` | |
|
|
| `beta_5y_monthly` | float\|null | `info["beta"]` | May be null for recent IPOs |
|
|
|
|
## income_statement (keyed by year string)
|
|
|
|
| Field | Type | Source Row Index |
|
|
|-------|------|-----------------|
|
|
| `revenue` | float\|null | "Total Revenue" or "Revenue" |
|
|
| `ebit` | float\|null | "Operating Income" or "EBIT" |
|
|
| `ebitda` | float\|null | "EBITDA" (if available) |
|
|
| `tax_expense` | float\|null | "Tax Provision" or "Income Tax Expense" |
|
|
| `net_income` | float\|null | "Net Income" |
|
|
| `sbc` | float\|null | "Stock Based Compensation" (in cash_flow) |
|
|
| `_source` | string | Data provenance |
|
|
|
|
## cash_flow (keyed by year string)
|
|
|
|
| Field | Type | Source Row Index | Sign |
|
|
|-------|------|-----------------|------|
|
|
| `operating_cash_flow` | float\|null | "Operating Cash Flow" | Positive = inflow |
|
|
| `capex` | float\|null | "Capital Expenditure" | **Negative = outflow** |
|
|
| `depreciation_amortization` | float\|null | "Depreciation And Amortization" | Positive |
|
|
| `free_cash_flow` | float\|null | "Free Cash Flow" | yfinance definition (see metadata) |
|
|
| `change_in_nwc` | float\|null | "Change In Working Capital" | Negative = use of cash |
|
|
| `_source` | string | | |
|
|
|
|
## balance_sheet (latest year only by default)
|
|
|
|
| Field | Type | Source Row Index |
|
|
|-------|------|-----------------|
|
|
| `total_debt` | float\|null | "Total Debt" or "Long Term Debt" + "Short Long Term Debt" |
|
|
| `cash_and_equivalents` | float\|null | "Cash And Cash Equivalents" + "Other Short Term Investments" |
|
|
| `net_debt` | float\|null | Computed: total_debt - cash_and_equivalents |
|
|
| `current_assets` | float\|null | "Current Assets" |
|
|
| `current_liabilities` | float\|null | "Current Liabilities" |
|
|
| `total_assets` | float\|null | "Total Assets" |
|
|
| `total_equity` | float\|null | "Stockholders Equity" |
|
|
| `_source` | string | |
|
|
|
|
## wacc_inputs
|
|
|
|
| Field | Type | Source |
|
|
|-------|------|--------|
|
|
| `risk_free_rate` | float\|null | yfinance ^TNX (10Y Treasury) |
|
|
| `beta` | float\|null | Same as market_data.beta_5y_monthly |
|
|
| `credit_rating` | string\|null | Not available from yfinance — null unless user provides |
|
|
|
|
## analyst_estimates
|
|
|
|
| Field | Type | Source |
|
|
|-------|------|--------|
|
|
| `revenue_next_fy` | float\|null | `yf.Ticker.analyst_price_targets` or `revenue_estimate` |
|
|
| `revenue_fy_after` | float\|null | Same |
|
|
| `eps_next_fy` | float\|null | `yf.Ticker.analyst_price_targets` or `eps_trend` |
|
|
|
|
## metadata
|
|
|
|
| Field | Value |
|
|
|-------|-------|
|
|
| `_capex_convention` | "negative = cash outflow (yfinance convention)" |
|
|
| `_fcf_note` | "yfinance FCF = OperatingCF + CapEx. Does NOT deduct SBC." |
|
|
| `_nan_years` | List of years where yfinance returned NaN |
|
|
| `_collection_duration_seconds` | Time taken to collect all data |
|