===> Prefer this over explore_data_catalogue for one company's reported statements:
it is synchronous, takes seconds, and returns the rows directly. In a `situate`
result the relation cards of these six tables list it in `read_by`: when one of them
refreshed for the event (a same_chain_run edge to it in the web), call this with
financial_type=<that table>.
TABLES (`financial_type`, each value is the table name):
edgar_quarterly_financials (default) standardized quarterly statements
edgar_annual_financials standardized annual statements
edgar_10q_financials / edgar_10k_financials
the facts AS FILED (XBRL concepts) with
accession and filing_url
edgar_eight_k financial tables extracted from 8-Ks
edgar_financials_yoy_change_m year-over-year change per line item
PASS line_items. The standardized tables hold dozens of line items per period, the
as-filed tables hundreds of facts: an unfiltered edgar_10q_financials pull cost
28K-108K tokens in testing and was only ever made "for provenance". It is never
needed for that — cite a row with `trace_data_sources` (below) instead.
Rows come back newest period first. A standardized row is {date, fiscal_year, period,
reported_currency, filing_date, accepted_date, symbol, statement, line_item, value,
mapping, last_updated}; `mapping` holds the accession, filing date, XBRL inputs and the
formula. netIncome appears TWICE per quarter — once from the income statement, once
from the cash flow statement; read the `statement` column.
STALE YoY: edgar_financials_yoy_change_m refreshes after the transcript arrives and at
19:00 ET on weekdays, so on the evening of a print it can still show the PRIOR quarter.
Treat it as stale unless its current_period matches the latest date in
edgar_quarterly_financials, and compute the change from the 5 quarters there instead.
CITE A ROW: trace_data_sources(relation=<this financial_type>, keys=[{"symbol": "MAR",
"date": "2026-09-30", "statement": "income statement", "line_item": "epsDiluted"}])
returns the 10-Q / 10-K and its sec.gov link. For the YoY view the keys are symbol,
line_item and current_period.
US SEC filers only (the EDGAR side); a non-filer has no rows here — situate's
`source_routing` says which side a company is on. A 404 means the symbol is not
covered (onboard_symbol), a 422 a bad argument. Requires auth (your MCP client
attaches the OAuth bearer automatically).