How we verify

The mechanism behind every report — plain-spoken, no marketing.

A summary of an SEC filing is only useful if the numbers are right. A hallucinated figure or a misquoted paragraph in a financial context isn't a rough edge — it's a defect that makes the whole report worse than not reading anything. So we built this the other way around: instead of asking the AI to "be careful," we assume the model will occasionally get things wrong and catch it before you see the report.

Here's what actually happens between the SEC posting a filing and you reading a report.

Every number traces to the source

Load-bearing numbers — revenue, net income, offering prices, share counts, dilution, red-flag figures — are not written by the AI. They come from one of two deterministic sources:

  • SEC XBRL data — the machine-readable financial facts the company itself files. When we display "$416.2B in FY2025 revenue," that value came directly from the company's own XBRL submission, not from a Claude interpretation of the filing.
  • Regex extraction from the filing text — for figures not tagged in XBRL (IPO pricing, dilution tables, trust balances, vote results), we extract them from the filing's actual prose using pattern-matching, then present them verbatim.

The offering snapshot table on prospectus reports is 100% deterministic — every row is pulled from source text or SEC XBRL, not generated by the model. The label "Prospectus" or "SEC XBRL" on each row tells you which.

On 10-K and 10-Q reports, the Key Financials table works the same way: revenue, net income, EPS, and balance-sheet lines come from SEC XBRL for the current filing vs the prior comparable. The Δ column is a percent when both periods share a sign. When a line flips from loss to profit (or the reverse), we show n/m (“not meaningful”) instead of a percent — calculating growth from a negative base would mislead. See the User Guide for column definitions.

Every quote is verbatim, every quote is linked

When a report says "The company disclosed…" and shows a quoted passage, that passage is extracted verbatim from the filing — not paraphrased. The "verify on EDGAR →" link on every quote opens the source document on SEC.gov, usually positioned near the quoted passage (browsers may or may not yellow-highlight the fragment). If the model tries to introduce a specific claim that isn't present in the source, a source-anchoring check catches it before publication.

Cross-surface consistency checks

We run well over 100 deterministic checks against every report before it's published (the catalog keeps growing as we ship new failure modes). The most load-bearing families:

  • Headline reconciliation — the number in the headline must match the number in the body must match the quoted source. A report whose headline says "margin expanded 60 bp" while the body computes 30 bp is caught.
  • Direction-of-transaction checks — if the source says a company acquired an entity, the report cannot describe the same transaction as a divestiture on any surface (bullets, narrative, section diffs).
  • Magnitude checks — buyback per-share prices, dividend amounts, and other repeated figures must match across every mention in the same report.
  • Fiscal-period attribution — a claim like "raised guidance twice in FY2026" is checked against the actual period boundaries of the events being counted.
  • Substance vs disclosure-label — an 8-K's "Item 5.02 — Departure of Directors" heading does not automatically produce a "CEO departed" red flag; the check requires the source to actually state a substantive leadership change at the public entity.

Selective holds — not a perfect filter

We run many automated checks. A small set of blocking checks can keep a report off public and paying surfaces when they fire. Most checks are monitors only: they flag issues for us without hiding the report. What you see when something is held depends on why:

  • Accuracy hold — a blocking check flagged a hard inconsistency (for example, impossible math or a figure that fails a specific reconciliation). You'll see a short "this report is being refreshed" page with a link to the original on SEC EDGAR. That hold is temporary when we can fix or regenerate; it is not proof every soft error is caught.
  • Non-reliance (Item 4.02) — the company told the SEC that the financials in that filing should no longer be relied upon. That summary is permanently withheld (it isn't a bug in our read). The page explains the withdrawal, links the Item 4.02 8-K on EDGAR, and points you to the amended filing or our corrected report when one exists. If an amended report is already published, we send you straight there.

Holds are a safety net for failure modes we've automated — not a claim that published reports are free of mistakes, or that every error triggers a hold.

What we do not claim

We do not claim reports are 100% accurate, or that we block every report that contains an error. AI drifts; new filing styles surface new failure modes; our validators catch patterns we've encoded, not everything that can go wrong. Soft issues can still appear in published reports.

The AI still writes the narrative — the connective analysis, materiality judgments, and interpretation. That prose is grounded where we can to deterministic figures and quoted source text, but interpretive framing ("this suggests management is de-risking the pipeline") is model output, and you should read it as one analyst's read, not a machine-verified fact. Quotes linked to EDGAR are the strongest evidence layer; the framing is commentary.

When you find something wrong, tell us — we often turn real misses into new checks. That's how the catalog grew from a handful of rules to well over a hundred.

What this means for you

If you're citing a FilingDiff report in your own work: prefer figures and quoted passages you can open on EDGAR, treat the narrative as one analyst's read, and double-check anything material in the original filing. We built tooling to make that verification fast — not to replace it.


FilingDiff is not investment advice. All source data comes from public SEC EDGAR filings.