🏦 sec¶
Securities and Exchange Commission financial data including XBRL filings (10-K, 10-Q, 8-K), insider trading transactions, stock prices, and earnings transcripts. Enables financial analysis, regulatory compliance monitoring, and investment research across public companies. Uses document-based ETL to extract multiple tables from each SEC filing. Stock prices can be seeded from a bulk Stooq zip archive stored in S3, with fallback to the HTTP API for missing or newly-listed tickers.
16 datasets · 170 columns
filing_metadata · table¶
SEC filing metadata for all public company submissions. Forms include: 10-K (annual report with audited financials), 10-Q (quarterly report), 8-K (current report of a material event), DEF 14A (proxy statement for shareholder meetings), and Form 3/4/5 (insider trading). This table does not carry 8-K item codes (which event a given 8-K reports — earnings, M&A, executive changes, etc.); that classification is not currently exposed in any queryable table (the item-header regex that used to derive it fed the old per-schema vectorized_chunks writer, removed when SEC chunking centralized into ref.vectorized_chunks via ChunkOrganizer's cross-schema sweep). Use for: identifying available filings, filtering by company/date/type, joining to other SEC tables, and tracking filing history.
| Column | Type | Null | Description |
|---|---|---|---|
cik |
string | no | Central Index Key (unique SEC company identifier, 10 digits zero-padded) |
accession_ |
string | no | SEC accession number (unique filing identifier, format 0000000000-00-000000) |
filing_ |
string | no | Type of SEC filing (e.g., '10-K', '10-Q', '8-K', 'DEF 14A') |
filing_ |
string | no | Date the filing was submitted to SEC (ISO 8601 format) |
year |
int | no | Filing year for Iceberg partitioning |
primary_ |
string | yes | Primary document filename in the filing |
company_ |
string | yes | Legal name of the registrant company |
period_ |
string | yes | Reporting period end date (ISO 8601 format) |
acceptance_ |
string | yes | Date and time the filing was accepted by SEC |
file_ |
long | yes | Total size of filing in bytes |
fiscal_ |
int | yes | Fiscal year of the reporting period |
state_ |
string | yes | State or jurisdiction of incorporation |
fiscal_ |
string | yes | Fiscal year end date (MMDD format) |
business_ |
string | yes | Physical business address of the company |
mailing_ |
string | yes | Mailing address for correspondence |
phone |
string | yes | Company phone number |
sic_ |
string | yes | Standard Industrial Classification code |
irs_ |
string | yes | IRS Employer Identification Number (EIN) |
ticker |
string | yes | Stock ticker symbol (if available) |
financial_line_items · table¶
Raw XBRL facts extracted from 10-K/10-Q/20-F filings, one row per (cik, accession_number, concept, context_ref) using native US-GAAP concept names (e.g. us-gaap:Assets, us-gaap:Revenues) — variant concepts for the same metric are NOT consolidated here. Carries both the original text value and a derived value_numeric (value_numeric_method records direct vs. heuristic conversion), plus unit_ref_normalized for the canonical unit. For canonical metric names, dollar-scaled values, and consolidated-vs-segment filtering on the ~40 common income-statement/balance-sheet concepts it recognizes (revenue, net income, assets, liabilities, EPS, etc. — see financial_facts' own comment for the exact list), use the financial_facts view built on top of this table. THIS TABLE, NOT financial_facts, IS WHERE EVERYTHING ELSE LIVES: any concept outside that ~40-item list — including every filer-specific/custom-taxonomy concept (a bank's loan-portfolio breakdown, an industry-specific disclosure, anything namespaced to the filer's own ticker prefix rather than us-gaap:) — is only ever queryable here, by its raw concept string, never through financial_facts (whose concept_aliases mapping is a fixed literal list and silently omits everything not on it — an empty financial_facts result for a concept means "not on the alias list", not "not disclosed"; check this table before concluding a metric is absent). This table is also the one to filter by cik/accession_number directly for a single-filer or single-filing lookup — filtering financial_facts by cik has been observed to be dramatically slower (a hang, in one case) than the identical filter run here, most likely because the predicate does not push through financial_facts' LEFT JOIN to filing_contexts before that join executes. For a sub-category breakdown of a concept (loan class, geography, product line, business segment) rather than one consolidated total, join this table's context_ref to filing_contexts.context_id (same cik + accession_number) and read filing_contexts.segment for the dimension — see that column's comment.
| Column | Type | Null | Description |
|---|---|---|---|
cik |
string | no | Central Index Key (unique SEC company identifier, 10 digits zero-padded) |
accession_ |
string | no | SEC accession number (unique filing identifier, format 0000000000-00-000000) |
filing_ |
string | no | Date the filing was submitted to SEC (ISO 8601 format) |
year |
int | no | Filing year for Iceberg partitioning |
concept |
string | no | XBRL concept name (e.g., 'us-gaap:Assets', 'dei:EntityRegistrantName') |
context_ |
string | no | Reference to context element defining the reporting period and entity |
unit_ |
string | yes | Raw unit reference as reported in the source XBRL document |
unit_ |
string | yes | Canonical unit (e.g. USD, shares, pure, usdPerShare); equals unit_ref when no normalization rule matches |
value |
string | yes | Text value of the fact element |
full_ |
string | yes | Full text content for TextBlock elements (narrative disclosures) |
value_ |
double | yes | Best-effort numeric value as reported by the filer, with the iXBRL scale factor already applied (a statement "in thousands" tagging 1,234 with scale=3 stores 1234000). The as-displayed text is kept verbatim in the value column, and scale is kept for provenance. Not a verbatim copy of the filing text; see value_numeric_method for how it was derived. |
value_ |
string | yes | Provenance of value_numeric — direct, heuristic, or null if no conversion possible |
period_ |
string | yes | Start date of the reporting period (ISO 8601 format) |
period_ |
string | yes | End date of the reporting period (ISO 8601 format) |
is_ |
boolean | no | Whether this is an instant-in-time fact (true) or duration fact (false) |
footnote_ |
string | yes | Comma-separated list of footnote references |
element_ |
string | no | Unique element identifier for linking to other elements |
decimals |
int | yes | Decimal precision of the numeric value |
scale |
int | yes | iXBRL scale factor for this fact, already applied to value_numeric; retained for provenance and to relate value_numeric back to the as-displayed value text. |
filing_contexts · table¶
XBRL context definitions from 10-K and 10-Q filings that specify the reporting period and entity for each financial fact. Contexts define whether a value is a point-in-time snapshot (instant) or covers a duration (e.g., fiscal quarter). Use for: understanding the time period of financial data, segment-level analysis, and resolving dimensional breakdowns (e.g., revenue by geography or product line).
| Column | Type | Null | Description |
|---|---|---|---|
cik |
string | no | Central Index Key (unique SEC company identifier, 10 digits zero-padded) |
accession_ |
string | no | SEC accession number (unique filing identifier, format 0000000000-00-000000) |
filing_ |
string | no | Date the filing was submitted to SEC (ISO 8601 format) |
year |
int | no | Filing year for Iceberg partitioning |
context_ |
string | no | Unique identifier for this context element |
entity_ |
string | no | Entity identifier (typically CIK number) |
entity_ |
string | yes | Entity identifier scheme (e.g., 'http://www.sec.gov/CIK') |
period_ |
string | yes | Start date of the reporting period (ISO 8601 format) |
period_ |
string | yes | End date of the reporting period (ISO 8601 format) |
period_ |
string | yes | Instant date for point-in-time facts (ISO 8601 format) |
effective_ |
string | yes | Unified recency anchor for instant and duration contexts, so a caller sorting or filtering by recency doesn't need to know the two are mutually exclusive. period_instant is populated only for point-in-time (balance-sheet) facts; duration facts (most segment/disclosure breakdowns) carry it NULL and populate period_start/ period_end instead. Sorting a mixed set by period_instant alone silently buries every duration-context row behind NULL-sorts-first semantics, reading as "coverage stopped here" when it hasn't (see the sec-filing-contexts-mixed-instant-duration-sort recipe). The two source columns are perfectly complementary in production (confirmed live: 0 rows with both NULL, 0 rows with both populated), so this COALESCE has no ambiguous case to special-case. |
segment |
string | yes | NULL for a consolidated (company-wide) fact; non-NULL for a fact broken out by a sub-category. THIS IS THE JOIN PATH TO DIMENSIONAL BREAKDOWNS — loan class, business segment, geography, product line. Format is a semicolon-joined list of XBRL "Axis=Member" pairs, e.g. "us-gaap:FinancingReceivableRecordedInvestmentByClassOfFinancingReceivableAxis= fbc:CommercialRealEstateLoansMember; us-gaap:FinancingReceivablePortfolioSegmentAxis= fbc:MortgageLoansHeldForInvestmentMember" — the Member after each '=' names the actual sub-category and is namespaced to the FILER'S OWN taxonomy prefix (here 'fbc:'), not a fixed vocabulary, so search it with ILIKE on the category name (e.g. '%CommercialRealEstate%', '%Office%', '%Multifamily%') rather than an exact match. To pull the dollar value for a sub-category: find its context_id here (filtering segment + cik + accession_number to one filing keeps this cheap), then join financial_line_items.context_ref = context_id (same cik + accession_number) and read value_numeric there for the concept you want. |
scenario |
string | yes | Scenario dimension information (XML fragment) |
mda_sections · table¶
Management Discussion & Analysis (MD&A) text from 10-K (Item 7) and 10-Q (Item 2) filings. MD&A is a required narrative section where management explains the company's financial condition, results of operations, and known risks/uncertainties. Use for: sentiment analysis, risk factor monitoring, NLP-based insights, comparing management tone across periods, and identifying forward-looking statements. For a pre-chunked, embedding-ready version of this same text, see ref.vectorized_chunks (source_table='mda_sections') — populated by ChunkOrganizer's cross-schema sweep, not by this schema's own ETL; source_type there is 'row_concat' like every other ChunkOrganizer contributor, not a per-content label.
| Column | Type | Null | Description |
|---|---|---|---|
cik |
string | no | Central Index Key (unique SEC company identifier, 10 digits zero-padded) |
accession_ |
string | no | SEC accession number (unique filing identifier, format 0000000000-00-000000) |
filing_ |
string | no | Date the filing was submitted to SEC (ISO 8601 format) |
year |
int | no | Filing year for Iceberg partitioning |
section |
string | no | Item section identifier (e.g., 'Item 7', 'Item 7A') |
subsection |
string | yes | Immediate heading enclosing this chunk (null when no heading context) |
section_ |
string | yes | Full heading breadcrumb as ' > '-delimited string for cluster analysis |
paragraph_ |
boolean | yes | True when this chunk is a continuation of an oversized split element |
paragraph_ |
int | no | Sequential paragraph number within the subsection |
paragraph_ |
string | no | Full text content of the paragraph |
footnote_ |
string | yes | Comma-separated list of footnote references |
risk_factor_sections · table¶
Item 1A (Risk Factors) text from 10-K filings. Risk Factors is a required narrative section where management discloses material risks to the business, operations, and financial condition. Use for: risk-disclosure trend analysis, climate/ESG-risk screening, cross-company risk-language comparison, and NLP-based topic clustering.
| Column | Type | Null | Description |
|---|---|---|---|
cik |
string | no | Central Index Key (unique SEC company identifier, 10 digits zero-padded) |
accession_ |
string | no | SEC accession number (unique filing identifier, format 0000000000-00-000000) |
filing_ |
string | no | Date the filing was submitted to SEC (ISO 8601 format) |
year |
int | no | Filing year for Iceberg partitioning |
section |
string | no | Item section identifier (always 'Item 1A' today) |
subsection |
string | yes | Immediate heading enclosing this chunk (null when no heading context) |
section_ |
string | yes | Full heading breadcrumb as ' > '-delimited string for cluster analysis |
paragraph_ |
boolean | yes | True when this chunk is a continuation of an oversized split element |
paragraph_ |
int | no | Sequential paragraph number within the subsection |
paragraph_ |
string | no | Full text content of the paragraph |
footnote_ |
string | yes | Comma-separated list of footnote references |
xbrl_relationships · table¶
XBRL linkbase relationships from 10-K and 10-Q filings showing how financial concepts connect (e.g., Assets = CurrentAssets + NoncurrentAssets). Includes calculation links (mathematical rollups), presentation links (display order), and definition links (dimensional/hypercube structure via context_element and closed, with arc_use/arc_priority resolving prohibited vs. asserted arcs). Use for: validating financial statement math, reconstructing statement hierarchy, understanding concept relationships, and building automated financial models.
| Column | Type | Null | Description |
|---|---|---|---|
cik |
string | no | Central Index Key (unique SEC company identifier, 10 digits zero-padded) |
accession_ |
string | no | SEC accession number (unique filing identifier, format 0000000000-00-000000) |
filing_ |
string | no | Date the filing was submitted to SEC (ISO 8601 format) |
year |
int | no | Filing year for Iceberg partitioning |
linkbase_ |
string | no | Type of linkbase relationship (presentation, calculation, definition) |
arc_ |
string | no | Arc role defining relationship type (e.g., parent-child, summation-item) |
link_ |
string | yes | Role URI of the extended link element containing this arc (e.g., presentation role URL) |
from_ |
string | no | Source concept in the relationship |
to_ |
string | no | Target concept in the relationship |
weight |
double | yes | Calculation weight (+1 for addition, -1 for subtraction) |
order |
double | yes | Presentation order for display sequencing |
preferred_ |
string | yes | Preferred label role for presentation |
arc_ |
string | yes | Arc use, "optional" or "prohibited". A prohibited arc states that the relationship does NOT hold — it removes one inherited from a base taxonomy — so a consumer reconstructing the graph must exclude it rather than treat it as an assertion. |
arc_ |
int | yes | Arc priority, resolving which arc wins when several share the same from/to and role. Meaningless without arc_use, since its purpose is ordering prohibition against assertion. |
context_ |
string | yes | xbrldt:contextElement on a hypercube arc, "segment" or "scenario" — which part of the XBRL context the dimension applies to. Definition linkbases only. |
closed |
boolean | yes | xbrldt:closed on a hypercube arc. When true the hypercube admits only the members it names, so a fact dimensioned outside it is invalid. Definition linkbases only. |
insider_transactions · table¶
Insider trading transactions from Form 3 (initial ownership), Form 4 (changes in ownership within 2 days), and Form 5 (annual summary). Required filings by company officers, directors, and 10%+ shareholders showing their buy/sell activity. Use for: tracking insider sentiment, identifying unusual trading patterns, corporate governance analysis, and generating buy/sell signals based on insider activity. For entity-type reporting persons (an insider that is itself an organization, not an individual), reach this insider's cross-schema identity FROM another schema by joining ref.canonical_org_entity on sec_reporting_person_cik = reporting_person_cik — that table carries one foreign key per source, so the org's LEI and its reporting_person_cik sit in the same row and the join is exact. Matching reporting_person_name as text finds the wrong entities.
| Column | Type | Null | Description |
|---|---|---|---|
cik |
string | no | Central Index Key (unique SEC company identifier, 10 digits zero-padded) |
accession_ |
string | no | SEC accession number (unique filing identifier, format 0000000000-00-000000) |
filing_ |
string | no | Date the filing was submitted to SEC (ISO 8601 format) |
year |
int | no | Filing year for Iceberg partitioning |
filing_ |
string | no | Type of SEC filing (e.g., '10-K', '10-Q', '8-K', 'DEF 14A') |
reporting_ |
string | no | CIK of the reporting insider |
reporting_ |
string | no | Name of the reporting insider |
is_ |
boolean | no | Whether the insider is a director |
is_ |
boolean | no | Whether the insider is an officer |
is_ |
boolean | no | Whether the insider owns 10% or more of the company |
officer_ |
string | yes | Title of the officer (if applicable) |
transaction_ |
string | yes | Date of the transaction (ISO 8601 format) - null for holdings |
transaction_ |
string | yes | Transaction code (P=purchase, S=sale, A=award, H=holding, I=initial appointment with no securities) |
security_ |
string | yes | Title of the security transacted |
shares_ |
double | yes | Number of shares bought or sold (null for holdings) |
price_ |
double | yes | Price per share in the transaction |
shares_ |
double | yes | Shares beneficially owned after the transaction |
acquired_ |
string | yes | Whether shares were acquired (A) or disposed (D) - null for holdings |
ownership_ |
string | yes | Type of ownership (direct or indirect) |
footnotes |
string | yes | Additional footnotes and explanations |
institutional_holdings · table¶
Institutional investment manager holdings from Form 13F-HR. Filed quarterly by managers with $100M+ in qualifying assets. Contains per-security positions with share counts, market value, and voting authority. Known as "whale watching" data — tracks positions of Berkshire Hathaway, Bridgewater, Renaissance, etc. Use for: tracking institutional ownership changes, identifying crowded trades, monitoring activist accumulation, and building factor models. To reach a filing manager's cross-schema identity FROM another schema rather than by name, join ref.canonical_org_entity on sec_manager_cik = manager_cik — that table carries one foreign key per source, so the manager's LEI and its manager_cik sit in the same row and the join is exact. Matching manager_name as text finds the wrong entities and misses managers filing under a differently-worded name.
| Column | Type | Null | Description |
|---|---|---|---|
cik |
string | no | Central Index Key (unique SEC company identifier, 10 digits zero-padded) |
accession_ |
string | no | SEC accession number (unique filing identifier, format 0000000000-00-000000) |
filing_ |
string | no | Date the filing was submitted to SEC (ISO 8601 format) |
year |
int | no | Filing year for Iceberg partitioning |
filing_ |
string | no | Type of SEC filing (e.g., '10-K', '10-Q', '8-K', 'DEF 14A') |
manager_ |
string | yes | Name of the filing investment manager |
manager_ |
string | yes | CIK of the filing investment manager |
report_ |
date | yes | Calendar quarter end date for the report (ISO 8601) |
issuer_ |
string | yes | Name of the security issuer (company name) |
title_ |
string | yes | Title/class of the security (e.g., COM, CL A, PFD) |
cusip |
string | yes | CUSIP identifier (9-character) |
value_ |
double | yes | Market value in thousands of USD |
shares_ |
double | yes | Number of shares or principal amount |
shares_ |
string | yes | SH for shares, PRN for principal amount |
investment_ |
string | yes | Investment discretion (SOLE, DFND, OTR) |
voting_ |
double | yes | Shares with sole voting authority |
voting_ |
double | yes | Shares with shared voting authority |
voting_ |
double | yes | Shares with no voting authority |
put_ |
string | yes | Put or Call indicator for options (null for common stock) |
beneficial_ownership · table¶
Beneficial ownership filings from Schedule 13D (activist >5% holders) and Schedule 13G (passive >5% holders). Discloses who owns large stakes, how many shares, percent of class, source of funds, and critically — the purpose of the transaction (Item 4). 13D filers may push for M&A, board changes, or restructuring. Use for: tracking activist campaigns, monitoring ownership concentration, detecting accumulation patterns, and governance risk analysis.
| Column | Type | Null | Description |
|---|---|---|---|
cik |
string | no | Central Index Key (unique SEC company identifier, 10 digits zero-padded) |
accession_ |
string | no | SEC accession number (unique filing identifier, format 0000000000-00-000000) |
filing_ |
string | no | Date the filing was submitted to SEC (ISO 8601 format) |
year |
int | no | Filing year for Iceberg partitioning |
filing_ |
string | no | Type of SEC filing (e.g., '10-K', '10-Q', '8-K', 'DEF 14A') |
subject_ |
string | yes | Name of the company whose shares are held |
subject_ |
string | yes | CIK of the subject company |
filer_ |
string | yes | Name of the beneficial owner filing the schedule |
filer_ |
string | yes | CIK of the beneficial owner |
date_ |
string | yes | Date of event requiring filing (ISO 8601) |
title_ |
string | yes | Title/class of securities (e.g., Common Stock) |
cusip |
string | yes | CUSIP identifier of the security |
percent_ |
double | yes | Percent of class beneficially owned |
shares_ |
double | yes | Number of shares beneficially owned |
sole_ |
double | yes | Shares with sole voting power |
shared_ |
double | yes | Shares with shared voting power |
sole_ |
double | yes | Shares with sole dispositive power |
shared_ |
double | yes | Shares with shared dispositive power |
type_ |
string | yes | Type code (IN=individual, CO=corporation, IA=investment adviser, etc.) |
source_ |
string | yes | Source of funds (WC=working capital, BK=bank, OO=other) |
purpose_ |
string | yes | Item 4 text describing intent (investment, activist, M&A, etc.) |
earnings_transcripts · table¶
Earnings-related content from 8-K filings (Item 2.02 - Results of Operations). 8-K forms are "current reports" filed within 4 days of material events; Item 2.02 covers earnings releases with quarterly results, guidance, and press release text, split into prepared_remarks vs qa_session paragraphs with speaker_name/speaker_role for the Q&A portion. Use for: earnings surprise analysis, guidance tracking, management commentary on results, and correlating announcements with stock price movements. For a pre-chunked, embedding-ready version of this same text, see ref.vectorized_chunks (source_table='earnings_transcripts') — populated by ChunkOrganizer's cross-schema sweep, not by this schema's own ETL; source_type there is 'row_concat' like every other ChunkOrganizer contributor, not a per-content label.
| Column | Type | Null | Description |
|---|---|---|---|
cik |
string | no | Central Index Key (unique SEC company identifier, 10 digits zero-padded) |
accession_ |
string | no | SEC accession number (unique filing identifier, format 0000000000-00-000000) |
filing_ |
string | no | Date the filing was submitted to SEC (ISO 8601 format) |
year |
int | no | Filing year for Iceberg partitioning |
filing_ |
string | no | Type of SEC filing (e.g., '10-K', '10-Q', '8-K', 'DEF 14A') |
exhibit_ |
string | yes | Exhibit number within the filing |
section_ |
string | no | Section type (prepared_remarks, qa_session) |
paragraph_ |
int | no | Sequential paragraph number |
paragraph_ |
string | no | Full text content of the paragraph |
speaker_ |
string | yes | Name of the speaker (for Q&A sections) |
speaker_ |
string | yes | Role/title of the speaker |
stock_prices · table¶
Daily open/high/low/close/volume stock prices, one row per (ticker, date), plus adjusted_close (close price adjusted for splits and dividends) for computing returns across corporate actions. Sourced from Stooq (bulk S3 zip checked first via StooqBulkProxy, HTTP API fallback) and linkable back to SEC filers via cik. Use for: event studies, volatility analysis, price correlation studies.
| Column | Type | Null | Description |
|---|---|---|---|
cik |
string | no | Central Index Key (unique SEC company identifier, 10 digits zero-padded) |
ticker |
string | no | Stock ticker symbol in Stooq format (e.g., 'AAPL.US', 'MSFT.US') |
date |
string | no | Trading date in ISO 8601 format (YYYY-MM-DD) |
open |
double | yes | Opening price for the trading day |
high |
double | yes | Highest price during the trading day |
low |
double | yes | Lowest price during the trading day |
close |
double | yes | Closing price for the trading day |
volume |
long | yes | Number of shares traded during the day |
adjusted_ |
double | yes | Closing price adjusted for splits and dividends |
year |
int | no | Trading year (Iceberg partition column; present in the data and the year=*/ path) |
latest_filings · view¶
Most recent filing of each type per company
View — columns are resolved by the query engine at runtime.
revenue_trends · view¶
Revenue-tagged XBRL facts (any concept whose name matches '%Revenue%') joined to company_name/ticker, one row per matching concept per period_end. Uses a simple substring match rather than the curated concept_aliases mapping in the financial_facts view, so it can include non-revenue concepts (e.g. DeferredRevenue) or miss unmapped revenue tags — prefer financial_facts (canonical_name='revenue') for precise revenue trend analysis.
View — columns are resolved by the query engine at runtime.
insider_activity_summary · view¶
Transaction count, total shares, and average price per share from insider_transactions, aggregated by company and transaction_code — purchases ('P') and sales ('S') only; awards, holdings, and other codes are excluded.
View — columns are resolved by the query engine at runtime.
financial_facts · view¶
Normalized financial line items with canonical metric names and scaled dollar values. Joins financial_line_items against an inline concept_aliases mapping to resolve XBRL concept variants (e.g. both us-gaap:Revenues and us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax map to canonical_name=revenue). value_dollars is retained as an alias of the (already scale-applied) value_numeric so existing callers keep working; the scale factor is applied once, in the base table. WARNING: a filing reports one consolidated value per concept plus, separately, its segment/geography/product-line breakdown members under the same canonical_name and period — each context_ref is a distinct fact, so SUM(value_dollars) across all context_refs for a (cik, canonical_name, period) multiplies the consolidated total by however many dimensional breakdowns the filer disclosed. Filter is_consolidated_total = TRUE to get the single company-wide figure per concept/period. SCOPE WARNING: canonical_name only covers the ~40 concepts listed in this view's own concept_aliases mapping below (revenue, net income, assets, liabilities, EPS and similar common income-statement/balance-sheet lines). It does NOT and structurally CANNOT cover filer-specific or industry-specific concepts (e.g. a bank's loan-portfolio breakdown by class) — those rows are simply excluded by this view's inner JOIN, not filtered out by any WHERE clause, so an empty or missing result here means "not one of the ~40 aliased concepts", not "not disclosed". Query financial_line_items directly by its raw concept string for anything outside that list (see that table's own comment). PERFORMANCE WARNING: filtering this view by cik/accession_number has been observed to be dramatically slower than the identical filter run directly against financial_line_items — in one case a hang lasting 45+ minutes at 900%+ CPU versus an instant response from the base table with the same predicate — most likely because the filter does not push through this view's LEFT JOIN to filing_contexts before that join executes. For a single-filer or single-filing lookup, prefer querying financial_line_items directly (optionally scoped to one accession_number) over filtering this view.
View — columns are resolved by the query engine at runtime.
company_financial_profile · view¶
Denormalised company identity: SEC filing metadata joined to GLEIF CIK-LEI bridge and GLEIF entity registry. One row per company — enables CIK-to-LEI resolution and cross-border corporate entity analysis. gleif_cik_mapping.cik is unpadded (GLEIF's own convention) while filing_metadata.cik is 10-digit zero-padded (SEC's convention); the join normalizes with LPAD. GLEIF's SEC-authority CIK bridge covers only entities GLEIF has registered under registration_authority_id='RA000665' (SEC EDGAR) — a minority of SEC filers, so lei/legal_name/headquarters_* are legitimately NULL for most companies, not a join defect. A company incorporated outside Delaware (e.g. Apple in California, Microsoft in Washington) commonly has no RA000665 record in GLEIF at all, even though it is a real SEC filer.
View — columns are resolved by the query engine at runtime.