changedInput schema / properties / as_of_date / description
Previous value: -"Point-in-time cutoff, YYYY-MM-DD: only figures filed with the SEC on or before this date, e.g. 2024-06-30."New value: +"Point-in-time date (YYYY-MM-DD). Only returns facts with accepted_at on or before this date — eliminates look-ahead bias for backtesting. Omit for the full dataset."
changedInput schema / properties / fiscal_year / description
Previous value: -"Fiscal year to return, four digits; omit for the most recent years, e.g. 2024."New value: +"Fiscal year (YYYY). Omit to return the most recent available years."
changedInput schema / properties / limit / description
Previous value: -"Maximum number of periods, 1 to 40; defaults to 5, e.g. 8."New value: +"Maximum number of periods to return (1–40). Defaults to 5."
addedInput schema / properties / lineage_detail
Added value: +{
+ "default": "compact",
+ "description": "Per-period provenance envelope + per-metric availability/provenance sidecars. 'compact' (default) returns source_filing + source_url (the SEC Inline-XBRL viewer with every tagged fact highlighted when the filing is iXBRL, else the rendered document, else the filing index) + sec_url/document_url/inline_viewer_url + restated flag, plus lean per-metric availability + fact_id + source_filing. 'full' adds first_filed_at + accepted_at + per-metric source_url + computed inputs[]. 'off' omits all provenance.",
+ "enum": [
+ "off",
+ "compact",
+ "full"
+ ],
+ "type": "string"
+}
addedInput schema / properties / min_confidence
Added value: +{
+ "description": "Withhold any metric whose backing fact scores below this confidence [0, 1]. The score is a PENALTY FROM EVIDENCE — every fact starts at 1.0 and is docked only for something checkable: a failed accounting identity (-0.40), a later filing that revised the number (-0.20), an unaudited filing (-0.05). It is NOT a function of age: a clean 1995 fact scores the same as a clean 2026 one. Guide: 0.95 = 'no evidence against this number' (the normal case — ~99.9% of facts, every year); 0.80 = tolerate a fact a later filing revised; 0.60 = tolerate a filing whose accounting identities failed. A withheld metric is reported as availability:'suppressed' — never dropped silently, and never as 'not_reported', which would claim the company did not file it. Facts with no confidence score are withheld too (fail closed).",
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+}
changedInput schema / properties / period / description
Previous value: -"annual (10-K) or quarterly (10-Q); defaults to annual, e.g. quarterly."New value: +"Filing period granularity. Annual uses 10-K; quarterly uses 10-Q."
addedInput schema / properties / response_format
Added value: +{
+ "default": "flat",
+ "description": "Output shape. 'flat' (default) returns the legacy `metrics` object plus the additive `metrics_availability`/`metrics_provenance`/`metrics_display` sidecars — `metrics_display` holds each figure already rendered for prose (\"$402.83B\"), and you should quote it verbatim rather than reformatting `metrics` yourself. 'envelope' additionally attaches `metric_envelopes` — one canonical {metric,value,unit,scale,period,availability,provenance,display} object per metric. Both shapes carry the same display strings.",
+ "enum": [
+ "flat",
+ "envelope"
+ ],
+ "type": "string"
+}
addedInput schema / properties / strict
Added value: +{
+ "default": false,
+ "description": "When true, fail with PLAN_LIMIT_EXCEEDED if the plan cannot satisfy the requested limit. Default false: return what's available and explain the gap in _meta.truncation.",
+ "type": "boolean"
+}
changedInput schema / properties / ticker / description
Previous value: -"Ticker symbol or SEC CIK of the company, e.g. AAPL."New value: +"Stock ticker symbol, e.g. AAPL, MSFT, BRK.B — or a CIK (SEC identifier), e.g. '0000320193'."
addedOutput schema / properties / _meta / properties / cost_usd
Added value: +{
+ "additionalProperties": false,
+ "description": "Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.",
+ "properties": {
+ "amount_usd": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "basis": {
+ "description": "payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.",
+ "enum": [
+ "payg_charge",
+ "payg_rate_card"
+ ],
+ "type": "string"
+ },
+ "billed": {
+ "description": "true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "amount_usd",
+ "billed",
+ "basis"
+ ],
+ "type": "object"
+}
addedOutput schema / properties / _meta / properties / data_plan
Added value: +{
+ "description": "Access plan: sample | sp500 | pro | full",
+ "type": "string"
+}
changedOutput schema / properties / _meta / properties / fundamentals_as_of / description
Previous value: -"Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export."New value: +"ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export."
addedOutput schema / properties / _meta / properties / last_updated
Added value: +{
+ "description": "ISO timestamp when the snapshot was exported",
+ "type": "string"
+}
addedOutput schema / properties / _meta / properties / latency_ms
Added value: +{
+ "description": "Wall-clock milliseconds this tool call took, measured server-side around the handler.",
+ "minimum": 0,
+ "type": "integer"
+}
addedOutput schema / properties / _meta / properties / limit_warnings
Added value: +{
+ "description": "Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.",
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "code": {
+ "const": "LIMIT_EXCEEDED",
+ "type": "string"
+ },
+ "current_plan": {
+ "type": "string"
+ },
+ "extensions": {
+ "additionalProperties": {},
+ "type": "object"
+ },
+ "limit_type": {
+ "type": "string"
+ },
+ "limit_value": {},
+ "remediation": {
+ "additionalProperties": true,
+ "properties": {
+ "contact_sales": {
+ "type": "string"
+ },
+ "default_action": {
+ "type": "string"
+ },
+ "options": {
+ "items": {
+ "additionalProperties": {},
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "pricing_page": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "options",
+ "default_action",
+ "pricing_page",
+ "contact_sales"
+ ],
+ "type": "object"
+ },
+ "requested_value": {},
+ "returned_value": {},
+ "subcode": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "code",
+ "subcode",
+ "limit_type",
+ "current_plan",
+ "remediation"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+}
addedOutput schema / properties / _meta / properties / payg_override
Added value: +{
+ "additionalProperties": false,
+ "description": "Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.",
+ "properties": {
+ "amount_cents": {
+ "type": "number"
+ },
+ "entity_scope_hash": {
+ "type": "string"
+ },
+ "meter": {
+ "type": "string"
+ },
+ "quote_id": {
+ "type": "string"
+ },
+ "retry_token_hash": {
+ "type": "string"
+ },
+ "ticker_count": {
+ "type": "number"
+ },
+ "tool": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "quote_id",
+ "tool",
+ "meter",
+ "amount_cents",
+ "ticker_count",
+ "entity_scope_hash",
+ "retry_token_hash"
+ ],
+ "type": "object"
+}
addedOutput schema / properties / _meta / properties / rate_limit
Added value: +{
+ "additionalProperties": false,
+ "description": "Caller's remaining budget",
+ "properties": {
+ "limit": {
+ "type": "integer"
+ },
+ "remaining": {
+ "type": "integer"
+ },
+ "reset_at": {
+ "description": "ISO 8601 timestamp when the window resets",
+ "type": "string"
+ },
+ "window": {
+ "enum": [
+ "minute",
+ "hour"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "limit",
+ "remaining",
+ "reset_at",
+ "window"
+ ],
+ "type": "object"
+}
addedOutput schema / properties / _meta / properties / request_id
Added value: +{
+ "description": "Per-request correlation id (8-char)",
+ "type": "string"
+}
addedOutput schema / properties / _meta / properties / schema_version
Added value: +{
+ "description": "Parquet schema version from manifest.json",
+ "type": "string"
+}
addedOutput schema / properties / _meta / properties / snapshot
Added value: +{
+ "description": "Snapshot directory name (e.g. snapshot_20260420)",
+ "type": "string"
+}
addedOutput schema / properties / _meta / properties / truncation / properties / current_plan
Added value: +{
+ "type": "string"
+}
addedOutput schema / properties / _meta / properties / truncation / properties / upgrade_required_for
Added value: +{
+ "type": "string"
+}
addedOutput schema / properties / _meta / properties / truncation / properties / upgrade_url
Added value: +{
+ "type": "string"
+}
changedOutput schema / properties / _meta / required
Previous value: -[
- "source",
- "pit_safe"
-]New value: +[
+ "data_plan",
+ "schema_version",
+ "snapshot",
+ "last_updated",
+ "source",
+ "pit_safe"
+]
addedOutput schema / properties / data / items / properties / metric_envelopes / items / properties / display / description
Added value: +"The figure rendered exactly as it should be quoted in prose ($391.04B, 23.7%, $6.11). QUOTE THIS VERBATIM rather than re-rounding `value` yourself — re-rendering a raw number is how a stated figure drifts away from the filing it came from."
addedOutput schema / properties / data / items / properties / metrics_display / description
Added value: +"The figure rendered exactly as it should be quoted in prose ($402.83B, 59.65%, $6.11). QUOTE THESE VERBATIM. Do not re-render the raw number in `metrics` yourself: a figure you reformat no longer matches the string Valuein can bind to its filing, so it is reported to the reader as unverified even though the underlying fact was sound."