Skip to main content
Glama

Valuein — SEC EDGAR Fundamentals & Smart-Money Data

Restatement Radar Feed

list_restatements
Read-onlyIdempotent

List financial-statement restatements — facts a later SEC filing materially changed (>0.5% swing) from what was originally reported. Each event carries the as-reported value, the restated value, the signed delta, a severity bucket, the RAW XBRL tag both filings used (the diff is same-tag, so it is apples-to-apples and checkable), both filings' accession numbers for one-click lineage, an analyst-importance tier (1 headline / 2 statement line / 3 footnote), the fact's rank within the company's restatement history, and — crucially — HOW the company told the market (disclosure_class): non_reliance (it filed an 8-K Item 4.02 telling the SEC not to rely on its prior financials), amended (a 10-K/A or 10-Q/A), or undisclosed (the number changed inside a routine 10-Q/10-K — no amendment, no 4.02). About 94% of events are undisclosed: most numbers that change, change quietly. undisclosed is a statement about the FILING CHAIN, not about the filer's intent — adopting a new accounting standard (ASC 606, ASC 842) legitimately restates prior comparatives with nobody doing anything wrong. Do NOT describe these as fraud, concealment, or wrongdoing. Filter by ticker, sector, severity, minimum swing, importance, disclosure class, or filing date; pass as_of_date for a point-in-time view (only events whose restating filing was accepted on or before that day — without it the feed includes restatements filed after any date you are analysing, a look-ahead leak); sort by recency (default) or significance; paginate with the returned cursor. Public data — available on every tier. Provenance: derived from SEC EDGAR filings; verify any figure with verify_fact_lineage.

Input Schema

NameRequiredDescriptionDefault
sortNo'recent' = newest restating filing first (a market-wide radar). 'significance' = importance tier, then swing size (one company's history).recent
limitNoPage size (1-100, default 25).
cursorNoOpaque pagination cursor from a prior response's next_cursor.
sectorNoRestrict to one GICS-style sector (e.g. 'Technology').
tickerNoRestrict to one company — ticker (e.g. 'AAPL') or CIK (e.g. '0000320193').
event_idNoFetch exactly one event by its id (from a prior response).
severityNohigh = |Δ|≥10%, medium = ≥2%, low = ≥0.5%.
as_of_dateNoPoint-in-time filter: only restatements whose restating filing was accepted (last_filed_at) on or before this day, inclusive. Results are point-in-time ONLY when this is passed — omit it and later restatements are included. Use for backtests and dated analyses to avoid look-ahead bias.
disclosureNoFilter by HOW the company told the market. 'non_reliance' = it filed an 8-K Item 4.02 ('Non-Reliance on Previously Issued Financial Statements') — formally telling the SEC not to rely on what it already reported. The loudest signal in US disclosure, and rare. 'amended' = corrected in a 10-K/A or 10-Q/A. 'undisclosed' = the value changed inside a ROUTINE 10-Q or 10-K: no amendment, no 4.02, the old number is simply gone. ~94% of events. Anyone can parse an 8-K, so anyone can list what companies ANNOUNCED; finding what they didn't requires every vintage back to 1993.
filed_sinceNoOnly restatements FILED on or after this date — the 'what changed recently' window.
max_importanceNoOnly lines at or above this importance tier: 1 = headline only (revenue, net income, EPS, total assets, operating cash flow), 2 = + primary statement lines, 3 = everything incl. footnotes. Severity says how far a number moved; importance says whether anyone cares.
amendments_onlyNoOnly restatements that arrived in an AMENDED filing (10-K/A, 10-Q/A) — the company formally telling the SEC it got a number wrong. The sharpest cut there is: it separates real restatements from routine re-files (a next-year 10-K carrying a revised comparative).
min_abs_delta_pctNoOnly events whose absolute restatement is at least this percent (e.g. 5 = ≥5% swings).

Output Schema

NameRequiredDescriptionDefault
noteYes
_metaYesProvenance envelope — data lineage for every MCP response
totalYes
eventsYes
next_cursorYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / _meta / properties / cost_usd / properties / basis / description
      Previous value: -"payg_charge = real charge (agent-pay or your balance). payg_rate_card = indicative price, not billed."New value: +"payg_charge = real pay-per-call charge (a card or MPP payment through agent-pay). payg_rate_card = indicative price, not billed."
  2. Changed2 schema fields changed
    • changedOutput schema / properties / _meta / properties / cost_usd / properties / basis / description
      Previous value: -"payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed."New value: +"payg_charge = real charge (agent-pay or your balance). payg_rate_card = indicative price, not billed."
    • changedOutput schema / properties / _meta / properties / cost_usd / properties / billed / description
      Previous value: -"true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free."New value: +"true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value only: no charge was made for this call (it was within your plan)."
  3. Changed1 schema field changed
    • addedInput schema / properties / as_of_date
      Added value: +{
      +  "description": "Point-in-time filter: only restatements whose restating filing was accepted (last_filed_at) on or before this day, inclusive. Results are point-in-time ONLY when this is passed — omit it and later restatements are included. Use for backtests and dated analyses to avoid look-ahead bias.",
      +  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +  "type": "string"
      +}
  4. Changed27 schema fields changed
    • changedInput schema / properties / amendments_only / description
      Previous value: -"true keeps only changes that arrived in an amended 10-K/A or 10-Q/A, e.g. true."New value: +"Only restatements that arrived in an AMENDED filing (10-K/A, 10-Q/A) — the company formally telling the SEC it got a number wrong. The sharpest cut there is: it separates real restatements from routine re-files (a next-year 10-K carrying a revised comparative)."
    • changedInput schema / properties / cursor / description
      Previous value: -"Paging cursor copied from next_cursor in the previous result, e.g. 25."New value: +"Opaque pagination cursor from a prior response's next_cursor."
    • changedInput schema / properties / disclosure / description
      Previous value: -"Disclosure types to include: non_reliance (8-K Item 4.02), amended, or undisclosed (a routine 10-K or 10-Q), e.g. [\"amended\"]."New value: +"Filter by HOW the company told the market. 'non_reliance' = it filed an 8-K Item 4.02 ('Non-Reliance on Previously Issued Financial Statements') — formally telling the SEC not to rely on what it already reported. The loudest signal in US disclosure, and rare. 'amended' = corrected in a 10-K/A or 10-Q/A. 'undisclosed' = the value changed inside a ROUTINE 10-Q or 10-K: no amendment, no 4.02, the old number is simply gone. ~94% of events. Anyone can parse an 8-K, so anyone can list what companies ANNOUNCED; finding what they didn't requires every vintage back to 1993."
    • changedInput schema / properties / event_id / description
      Previous value: -"Id of one event from an earlier result, lowercase hex, e.g. 3f9a0c12."New value: +"Fetch exactly one event by its id (from a prior response)."
    • changedInput schema / properties / filed_since / description
      Previous value: -"Earliest date of the restating filing, YYYY-MM-DD, e.g. 2024-01-01."New value: +"Only restatements FILED on or after this date — the 'what changed recently' window."
    • changedInput schema / properties / limit / description
      Previous value: -"Events per page, 1 to 100; defaults to 25, e.g. 50."New value: +"Page size (1-100, default 25)."
    • changedInput schema / properties / max_importance / description
      Previous value: -"1 keeps headline figures only, 2 adds primary statement lines, 3 includes footnotes, e.g. 1."New value: +"Only lines at or above this importance tier: 1 = headline only (revenue, net income, EPS, total assets, operating cash flow), 2 = + primary statement lines, 3 = everything incl. footnotes. Severity says how far a number moved; importance says whether anyone cares."
    • changedInput schema / properties / min_abs_delta_pct / description
      Previous value: -"Smallest absolute change to include, in percent from 0 to 100, e.g. 5."New value: +"Only events whose absolute restatement is at least this percent (e.g. 5 = ≥5% swings)."
    • changedInput schema / properties / sector / description
      Previous value: -"Sector name to limit results to, matched in full but case-insensitive, e.g. Technology."New value: +"Restrict to one GICS-style sector (e.g. 'Technology')."
    • changedInput schema / properties / severity / description
      Previous value: -"high (change of 10% or more), medium (2% or more) or low (0.5% or more), e.g. high."New value: +"high = |Δ|≥10%, medium = ≥2%, low = ≥0.5%."
    • changedInput schema / properties / sort / description
      Previous value: -"recent (default, newest restating filing first) or significance (importance, then size of change), e.g. significance."New value: +"'recent' = newest restating filing first (a market-wide radar). 'significance' = importance tier, then swing size (one company's history)."
    • changedInput schema / properties / ticker / description
      Previous value: -"Ticker symbol or SEC CIK to limit results to one company, e.g. AAPL."New value: +"Restrict to one company — ticker (e.g. 'AAPL') or CIK (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"
      +]
  5. Changed2 schema fields changed
    • addedOutput schema / properties / events / items / properties / current_is_inline_xbrl
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / events / items / properties / first_is_inline_xbrl
      Added value: +{
      +  "type": "boolean"
      +}
  6. Changed29 schema fields changed
    • changedInput schema / properties / amendments_only / description
      Previous value: -"Only restatements that arrived in an AMENDED filing (10-K/A, 10-Q/A) — the company formally telling the SEC it got a number wrong. The sharpest cut there is: it separates real restatements from routine re-files (a next-year 10-K carrying a revised comparative)."New value: +"true keeps only changes that arrived in an amended 10-K/A or 10-Q/A, e.g. true."
    • changedInput schema / properties / cursor / description
      Previous value: -"Opaque pagination cursor from a prior response's next_cursor."New value: +"Paging cursor copied from next_cursor in the previous result, e.g. 25."
    • addedInput schema / properties / cursor / maxLength
      Added value: +20
    • addedInput schema / properties / cursor / pattern
      Added value: +"^\\d+$"
    • changedInput schema / properties / disclosure / description
      Previous value: -"Filter by HOW the company told the market. 'non_reliance' = it filed an 8-K Item 4.02 ('Non-Reliance on Previously Issued Financial Statements') — formally telling the SEC not to rely on what it already reported. The loudest signal in US disclosure, and rare. 'amended' = corrected in a 10-K/A or 10-Q/A. 'undisclosed' = the value changed inside a ROUTINE 10-Q or 10-K: no amendment, no 4.02, the old number is simply gone. ~94% of events. Anyone can parse an 8-K, so anyone can list what companies ANNOUNCED; finding what they didn't requires every vintage back to 1993."New value: +"Disclosure types to include: non_reliance (8-K Item 4.02), amended, or undisclosed (a routine 10-K or 10-Q), e.g. [\"amended\"]."
    • changedInput schema / properties / event_id / description
      Previous value: -"Fetch exactly one event by its id (from a prior response)."New value: +"Id of one event from an earlier result, lowercase hex, e.g. 3f9a0c12."
    • changedInput schema / properties / filed_since / description
      Previous value: -"Only restatements FILED on or after this date — the 'what changed recently' window."New value: +"Earliest date of the restating filing, YYYY-MM-DD, e.g. 2024-01-01."
    • changedInput schema / properties / limit / description
      Previous value: -"Page size (1-100, default 25)."New value: +"Events per page, 1 to 100; defaults to 25, e.g. 50."
    • changedInput schema / properties / max_importance / description
      Previous value: -"Only lines at or above this importance tier: 1 = headline only (revenue, net income, EPS, total assets, operating cash flow), 2 = + primary statement lines, 3 = everything incl. footnotes. Severity says how far a number moved; importance says whether anyone cares."New value: +"1 keeps headline figures only, 2 adds primary statement lines, 3 includes footnotes, e.g. 1."
    • changedInput schema / properties / min_abs_delta_pct / description
      Previous value: -"Only events whose absolute restatement is at least this percent (e.g. 5 = ≥5% swings)."New value: +"Smallest absolute change to include, in percent from 0 to 100, e.g. 5."
    • changedInput schema / properties / sector / description
      Previous value: -"Restrict to one GICS-style sector (e.g. 'Technology')."New value: +"Sector name to limit results to, matched in full but case-insensitive, e.g. Technology."
    • changedInput schema / properties / severity / description
      Previous value: -"high = |Δ|≥10%, medium = ≥2%, low = ≥0.5%."New value: +"high (change of 10% or more), medium (2% or more) or low (0.5% or more), e.g. high."
    • changedInput schema / properties / sort / description
      Previous value: -"'recent' = newest restating filing first (a market-wide radar). 'significance' = importance tier, then swing size (one company's history)."New value: +"recent (default, newest restating filing first) or significance (importance, then size of change), e.g. significance."
    • changedInput schema / properties / ticker / description
      Previous value: -"Restrict to one company — ticker (e.g. 'AAPL') or CIK (e.g. '0000320193')."New value: +"Ticker symbol or SEC CIK to limit results to one company, e.g. AAPL."
    • removedOutput schema / properties / _meta / properties / cost_usd
      Removed 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"
      -}
    • removedOutput schema / properties / _meta / properties / data_plan
      Removed value: -{
      -  "description": "Access plan: sample | sp500 | pro | full",
      -  "type": "string"
      -}
    • changedOutput schema / properties / _meta / properties / fundamentals_as_of / description
      Previous 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."New 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."
    • removedOutput schema / properties / _meta / properties / last_updated
      Removed value: -{
      -  "description": "ISO timestamp when the snapshot was exported",
      -  "type": "string"
      -}
    • removedOutput schema / properties / _meta / properties / latency_ms
      Removed value: -{
      -  "description": "Wall-clock milliseconds this tool call took, measured server-side around the handler.",
      -  "minimum": 0,
      -  "type": "integer"
      -}
    • removedOutput schema / properties / _meta / properties / limit_warnings
      Removed 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"
      -}
    • removedOutput schema / properties / _meta / properties / payg_override
      Removed 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"
      -}
    • removedOutput schema / properties / _meta / properties / rate_limit
      Removed 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"
      -}
    • removedOutput schema / properties / _meta / properties / request_id
      Removed value: -{
      -  "description": "Per-request correlation id (8-char)",
      -  "type": "string"
      -}
    • removedOutput schema / properties / _meta / properties / schema_version
      Removed value: -{
      -  "description": "Parquet schema version from manifest.json",
      -  "type": "string"
      -}
    • removedOutput schema / properties / _meta / properties / snapshot
      Removed value: -{
      -  "description": "Snapshot directory name (e.g. snapshot_20260420)",
      -  "type": "string"
      -}
    • removedOutput schema / properties / _meta / properties / truncation / properties / current_plan
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / _meta / properties / truncation / properties / upgrade_required_for
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / _meta / properties / truncation / properties / upgrade_url
      Removed value: -{
      -  "type": "string"
      -}
    • changedOutput schema / properties / _meta / required
      Previous value: -[
      -  "data_plan",
      -  "schema_version",
      -  "snapshot",
      -  "last_updated",
      -  "source",
      -  "pit_safe"
      -]New value: +[
      +  "source",
      +  "pit_safe"
      +]
  7. Changed1 schema field changed
    • changedOutput schema / properties / _meta / properties / fundamentals_as_of / description
      Previous value: -"ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt. Use THIS — not `last_updated` — when telling a user how current the 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."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."
  8. Changed2 schema fields changed
    • changedInput schema / properties / ticker / description
      Previous value: -"Restrict to one company (e.g. 'AAPL')."New value: +"Restrict to one company — ticker (e.g. 'AAPL') or CIK (e.g. '0000320193')."
    • changedInput schema / properties / ticker / pattern
      Previous value: -"^[A-Za-z.\\-]+$"New value: +"^[A-Za-z0-9.\\-]+$"
  9. Changed2 schema fields changed
    • addedOutput schema / properties / _meta / properties / fundamentals_as_of
      Added value: +{
      +  "description": "ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt. Use THIS — not `last_updated` — when telling a user how current the 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.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / _meta / properties / price_as_of
      Added value: +{
      +  "description": "ISO timestamp when the price surfaces were last refreshed.",
      +  "type": "string"
      +}
  10. Changed3 schema fields changed
    • addedOutput schema / properties / events / items / properties / current_primary_doc
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / events / items / properties / first_primary_doc
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / events / items / required
      Previous value: -[
      -  "event_id",
      -  "cik",
      -  "ticker",
      -  "company_name",
      -  "sector",
      -  "concept",
      -  "standard_concept",
      -  "concept_label",
      -  "concept_importance",
      -  "statement_type",
      -  "period_start",
      -  "period_end",
      -  "fiscal_period",
      -  "unit",
      -  "first_value",
      -  "current_value",
      -  "delta_abs",
      -  "delta_pct",
      -  "version_count",
      -  "first_filed_at",
      -  "last_filed_at",
      -  "first_accession",
      -  "current_accession",
      -  "restated_in_form",
      -  "restated_in_amendment",
      -  "disclosure_class",
      -  "severity",
      -  "company_rank"
      -]New value: +[
      +  "event_id",
      +  "cik",
      +  "ticker",
      +  "company_name",
      +  "sector",
      +  "concept",
      +  "standard_concept",
      +  "concept_label",
      +  "concept_importance",
      +  "statement_type",
      +  "period_start",
      +  "period_end",
      +  "fiscal_period",
      +  "unit",
      +  "first_value",
      +  "current_value",
      +  "delta_abs",
      +  "delta_pct",
      +  "version_count",
      +  "first_filed_at",
      +  "last_filed_at",
      +  "first_accession",
      +  "current_accession",
      +  "restated_in_form",
      +  "first_primary_doc",
      +  "current_primary_doc",
      +  "restated_in_amendment",
      +  "disclosure_class",
      +  "severity",
      +  "company_rank"
      +]
  11. Changed2 schema fields changed
    • addedOutput schema / properties / events / items / properties / period_start
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / events / items / required
      Previous value: -[
      -  "event_id",
      -  "cik",
      -  "ticker",
      -  "company_name",
      -  "sector",
      -  "concept",
      -  "standard_concept",
      -  "concept_label",
      -  "concept_importance",
      -  "statement_type",
      -  "period_end",
      -  "fiscal_period",
      -  "unit",
      -  "first_value",
      -  "current_value",
      -  "delta_abs",
      -  "delta_pct",
      -  "version_count",
      -  "first_filed_at",
      -  "last_filed_at",
      -  "first_accession",
      -  "current_accession",
      -  "restated_in_form",
      -  "restated_in_amendment",
      -  "disclosure_class",
      -  "severity",
      -  "company_rank"
      -]New value: +[
      +  "event_id",
      +  "cik",
      +  "ticker",
      +  "company_name",
      +  "sector",
      +  "concept",
      +  "standard_concept",
      +  "concept_label",
      +  "concept_importance",
      +  "statement_type",
      +  "period_start",
      +  "period_end",
      +  "fiscal_period",
      +  "unit",
      +  "first_value",
      +  "current_value",
      +  "delta_abs",
      +  "delta_pct",
      +  "version_count",
      +  "first_filed_at",
      +  "last_filed_at",
      +  "first_accession",
      +  "current_accession",
      +  "restated_in_form",
      +  "restated_in_amendment",
      +  "disclosure_class",
      +  "severity",
      +  "company_rank"
      +]
  12. Changed3 schema fields changed
    • addedInput schema / properties / disclosure
      Added value: +{
      +  "description": "Filter by HOW the company told the market. 'non_reliance' = it filed an 8-K Item 4.02 ('Non-Reliance on Previously Issued Financial Statements') — formally telling the SEC not to rely on what it already reported. The loudest signal in US disclosure, and rare. 'amended' = corrected in a 10-K/A or 10-Q/A. 'undisclosed' = the value changed inside a ROUTINE 10-Q or 10-K: no amendment, no 4.02, the old number is simply gone. ~94% of events. Anyone can parse an 8-K, so anyone can list what companies ANNOUNCED; finding what they didn't requires every vintage back to 1993.",
      +  "items": {
      +    "enum": [
      +      "non_reliance",
      +      "amended",
      +      "undisclosed"
      +    ],
      +    "type": "string"
      +  },
      +  "maxItems": 3,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedOutput schema / properties / events / items / properties / disclosure_class
      Added value: +{
      +  "enum": [
      +    "non_reliance",
      +    "amended",
      +    "undisclosed"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / events / items / required
      Previous value: -[
      -  "event_id",
      -  "cik",
      -  "ticker",
      -  "company_name",
      -  "sector",
      -  "concept",
      -  "standard_concept",
      -  "concept_label",
      -  "concept_importance",
      -  "statement_type",
      -  "period_end",
      -  "fiscal_period",
      -  "unit",
      -  "first_value",
      -  "current_value",
      -  "delta_abs",
      -  "delta_pct",
      -  "version_count",
      -  "first_filed_at",
      -  "last_filed_at",
      -  "first_accession",
      -  "current_accession",
      -  "restated_in_form",
      -  "restated_in_amendment",
      -  "severity",
      -  "company_rank"
      -]New value: +[
      +  "event_id",
      +  "cik",
      +  "ticker",
      +  "company_name",
      +  "sector",
      +  "concept",
      +  "standard_concept",
      +  "concept_label",
      +  "concept_importance",
      +  "statement_type",
      +  "period_end",
      +  "fiscal_period",
      +  "unit",
      +  "first_value",
      +  "current_value",
      +  "delta_abs",
      +  "delta_pct",
      +  "version_count",
      +  "first_filed_at",
      +  "last_filed_at",
      +  "first_accession",
      +  "current_accession",
      +  "restated_in_form",
      +  "restated_in_amendment",
      +  "disclosure_class",
      +  "severity",
      +  "company_rank"
      +]
  13. Changed9 schema fields changed
    • addedInput schema / properties / amendments_only
      Added value: +{
      +  "description": "Only restatements that arrived in an AMENDED filing (10-K/A, 10-Q/A) — the company formally telling the SEC it got a number wrong. The sharpest cut there is: it separates real restatements from routine re-files (a next-year 10-K carrying a revised comparative).",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / filed_since
      Added value: +{
      +  "description": "Only restatements FILED on or after this date — the 'what changed recently' window.",
      +  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +  "type": "string"
      +}
    • addedInput schema / properties / max_importance
      Added value: +{
      +  "description": "Only lines at or above this importance tier: 1 = headline only (revenue, net income, EPS, total assets, operating cash flow), 2 = + primary statement lines, 3 = everything incl. footnotes. Severity says how far a number moved; importance says whether anyone cares.",
      +  "maximum": 3,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / sort
      Added value: +{
      +  "default": "recent",
      +  "description": "'recent' = newest restating filing first (a market-wide radar). 'significance' = importance tier, then swing size (one company's history).",
      +  "enum": [
      +    "recent",
      +    "significance"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / events / items / properties / concept
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / events / items / properties / concept_importance
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / events / items / properties / restated_in_amendment
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / events / items / properties / restated_in_form
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / events / items / required
      Previous value: -[
      -  "event_id",
      -  "cik",
      -  "ticker",
      -  "company_name",
      -  "sector",
      -  "standard_concept",
      -  "concept_label",
      -  "statement_type",
      -  "period_end",
      -  "fiscal_period",
      -  "unit",
      -  "first_value",
      -  "current_value",
      -  "delta_abs",
      -  "delta_pct",
      -  "version_count",
      -  "first_filed_at",
      -  "last_filed_at",
      -  "first_accession",
      -  "current_accession",
      -  "severity",
      -  "company_rank"
      -]New value: +[
      +  "event_id",
      +  "cik",
      +  "ticker",
      +  "company_name",
      +  "sector",
      +  "concept",
      +  "standard_concept",
      +  "concept_label",
      +  "concept_importance",
      +  "statement_type",
      +  "period_end",
      +  "fiscal_period",
      +  "unit",
      +  "first_value",
      +  "current_value",
      +  "delta_abs",
      +  "delta_pct",
      +  "version_count",
      +  "first_filed_at",
      +  "last_filed_at",
      +  "first_accession",
      +  "current_accession",
      +  "restated_in_form",
      +  "restated_in_amendment",
      +  "severity",
      +  "company_rank"
      +]
  14. Added

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is given. The description adds significant context beyond that: the disclosure_class taxonomy, the 94% undisclosed base rate, the ASC 606/842 legitimate-restatement caveat, pagination via cursor, and provenance. It stops short of describing rate limits or response cardinality, but for a read-only feed this is rich disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose and the event payload are front-loaded, followed by the disclosure_class explanation and filter list. It is long and occasionally dense, but nearly every sentence carries operational meaning (the 0.5% threshold, same-tag diff checkability, 94% undisclosed, ASC 606 caveat, as_of_date leak). A little tightening could push this to 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value detail is unnecessary. The description still covers the behavioural caveats an analyst agent needs — point-in-time semantics, disclosure-class definitions, importance vs severity distinction, pagination, and provenance — and notes the data is public on every tier. Nothing material is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents every parameter in detail. The description still earns credit by summarising the filter set (ticker, sector, severity, swing, importance, disclosure class, filing date) and by explaining the purpose of as_of_date — point-in-time correctness and avoiding look-ahead bias — which the schema states but the description reinforces as a usage rule.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 'List financial-statement restatements' — and immediately defines the unit (facts a later SEC filing materially changed >0.5%) so it's unmistakable from siblings like verify_fact_lineage, verify_facts, or list_filing_forms. It also enumerates the payload fields, which makes the tool's specialisation concrete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the filtering axes and the alternative verification tool ('verify any figure with verify_fact_lineage'). It gives a clear when-to-use warning for as_of_date (look-ahead leak if omitted) and a when-not-to-use behavioural guard ('Do NOT describe these as fraud, concealment, or wrongdoing'), which is unusually explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.