What is the difference between SEC Company Facts and normalized financial metrics?
SEC Company Facts is the authoritative raw XBRL source, not a defective one — but it serves a different layer of the data stack than a developer-ready metric API. Here is what changes between the two, and why LedgerBase keeps lineage back to the raw source.
Direct answer
SEC Company Facts returns every XBRL fact a company has ever filed, tagged exactly as the company tagged it — with no cross-company normalization, no de-duplication across dimensions, and no consistent fiscal-period identity. LedgerBase reads that same raw data and produces a normalized metric layer on top: a consistent key per concept, resolved units and periods, and duplicate-free values — while retaining lineage back to the original filing and XBRL fact for each one.
What raw SEC Company Facts provides
SEC Company Facts exposes every XBRL concept a company has tagged across every filing it has submitted, keyed by taxonomy and concept name (for example us-gaap:Revenues). It is comprehensive and authoritative, but it is a raw submission dump, not an application-ready API: it reflects exactly what each company chose to tag, in whatever shape their own filing used.
Why raw facts can contain duplicates and multiple dimensions
The same concept can be reported multiple times per period across different XBRL dimensions (for example, segmented by business unit or restated in a later filing). Naively taking “the first value found” for a concept can silently select the wrong dimensional slice or a superseded figure. A normalization layer has to choose the correct source filing and dimension deliberately, and record which one it picked.
Fiscal-year and fiscal-quarter identity problems
Raw filings do not always make fiscal-period identity unambiguous. There is no dedicated SEC form for Q4 specifically — it may be reported directly in the 10-K, or it has to be derived as FY − (Q1 + Q2 + Q3). LedgerBase surfaces this explicitly with an isDerived flag on the affected value rather than presenting a derived figure identically to a directly-filed one.
Unit and period normalization
LedgerBase distinguishes duration facts (income-statement and cash-flow metrics, covering a span of time — these have a populated periodStart) from instant facts (balance-sheet metrics, a snapshot at one date — periodStart is null). It also classifies every metric into one of four consistent statement types (INCOME_STATEMENT, BALANCE_SHEET, CASH_FLOW_STATEMENT, OTHER) regardless of how a given company laid out its own filing — this classification is LedgerBase’s own, not an extraction of the filing’s presentation role.
Form and source-filing selection
For a given metric and period, LedgerBase has to pick which filing (10-K vs. 10-Q, original vs. amendment) is the correct source. That selection, plus the resulting form type, accession number, and filing date, is retained as lineage on the metric — see Trace a financial metric to its SEC filing for a worked example.
Why a developer-facing metric layer is useful
Consuming raw Company Facts correctly requires re-implementing dimension resolution, period-identity logic, and unit handling for every integration. A normalized metric layer does that work once, consistently, across companies — so a developer or AI agent can request revenue for a fiscal period and get one deterministic answer instead of a list of candidate XBRL facts to disambiguate themselves.
Where normalization can introduce assumptions
Normalization is a set of deliberate choices, not a mechanical passthrough: which dimension counts as the reported value, whether Q4 is filed directly or derived, and which of the four statement types a metric with no clean fit is assigned to. Every one of those choices is exactly why LedgerBase keeps lineage attached, rather than discarding it once a normalized value is produced.
How LedgerBase retains lineage
Every supported metric can be traced back to its source form, accession number, filing date, and XBRL concept through the /explain endpoint — see Trace a financial metric to its SEC filing. When a value cannot be safely produced, LedgerBase reports it as MISSING rather than approximating from raw facts — see Handle missing SEC financial data safely.
Try it yourself
Browse normalized metrics and their statement classification in the Metric Catalog, call the live API reference, or go back to Learn for related core concepts on periods and statement classification.