Financial Ratios
get_financial_ratiosGet pipeline-computed financial ratios from ratio.parquet. Served categories: profitability (margins, ROE, ROA, ROIC), liquidity (current ratio, quick ratio), leverage (D/E, interest coverage, net debt/EBITDA), efficiency (asset turnover, inventory days), per_share (EPS, BVPS, FCF/share), owner_earnings (Buffett FCF, owner yield), valuation (pe_ratio, pb_ratio, ev_ebitda, market_cap, dividend_yield), and the pipeline-emitted forensic, growth, and rank (cross-sectional *_sector_pctile) categories. NOT every category exists for every ticker — omit categories to get whatever this ticker has, or read available_categories in the CATEGORY_NOT_AVAILABLE envelope. valuation is LIVE (schema 2.18.0): price-derived multiples from EOD prices period-end-aligned — pipeline-derived, NOT strictly PIT (no accepted_at column on these rows). Includes TTM rows alongside annual; each row's is_calendar_aligned is TRUE only when period_end sits on the fiscal-year boundary (±7 days) — filter to TRUE when joining ratios to fact-table fundamentals on (entity, fiscal_year). For historical cuts use as_of_date (PIT by accepted_at when present, else by period_end — see the param). Use this instead of get_valuation_metrics when you only need ratios (no DCF wiring); use get_valuation_metrics when you also need DCF/DDM. Each ratio is a {value, unit, category, reason} entry with a response-level lineage (DerivedLineage) pointing to get_company_fundamentals / verify_fact_lineage for filing-level provenance; a null value carries a reason (e.g. INPUT_MISSING) so missing is never a real zero. Available on all plans.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of distinct period_end dates to return (1–20). Defaults to 5. Within each period, all matching ratio_names are included. | |
| ticker | Yes | Stock ticker symbol, e.g. AAPL, MSFT | |
| as_of_date | No | Historical cutoff (canonical cross-tool date param). PIT by SEC accepted_at when the ratio data carries it (latest value knowable on/before the date, zero look-ahead, _meta.pit_safe=true), else by ratio.period_end (pit_safe=false). For guaranteed accepted_at PIT use get_company_fundamentals. | |
| categories | No | Ratio categories to include (see the enum). Omit to return every category this ticker has. `valuation` (pe_ratio, pb_ratio, ev_ebitda, market_cap, dividend_yield) is LIVE since schema 2.18.0 — price-derived, period-end-aligned, not strictly PIT. Availability is per-ticker (the envelope lists this ticker's available_categories). | |
| fiscal_period | No | Filter to a specific fiscal period type. Use 'TTM' for trailing twelve months. Omit to return both annual (FY) and TTM rows. | |
| period_end_before | No | Alias of as_of_date (as_of_date preferred — the canonical name). Returns ratios with period_end on or before this date. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| note | Yes | ||
| plan | Yes | ||
| _meta | Yes | Provenance envelope — data lineage for every MCP response | |
| ticker | Yes | ||
| lineage | No | Provenance for pipeline-derived values (ratio.parquet / factor_scores.parquet): source table + pipeline computed_at, plus a pointer to the tools that return filing-level lineage. NOT point-in-time (recomputed on each pipeline run). | |
| periods_returned | Yes |