Parquet Schema Reference
27 ZSTD-compressed Parquet tables — the core dataset (fundamentals, ratios, factor scores, earnings signals, prices, restatement events) plus, on Institutional, the smart-money dataset and the Form ADV adviser dataset. 120.5M+ facts, 109M+ smart-money rows, 28,000+ entities, 1993–present. All tables use consistent join keys — cik for companies, accession_id for filings.
Entity-Relationship Diagram
All tables link via two universal keys: cik (company) and accession_id (filing). The references table is a derived flat join — use it as your query starting point to avoid manual joins.
Relationships (text)
securityreferencesentityviaentity_id → cik(many → 1)filingreferencesentityviaentity_id → cik(many → 1)factreferencesentityviaentity_id → cik(many → 1)factreferencesfilingviaaccession_id(many → 1)factreferencesstandard_conceptviastandard_concept(many → 1)standard_conceptreferencestaxonomy_guideviastandard_concept(many → 1)ratioreferencesentityviaentity_id → cik(many → 1)referencesreferencesentityviacik(many → 1)index_membershipreferencesreferencesviacik = cik(many → 1)
Smart-money cluster
Additional tables — insider Forms 3/4/5/144 and 13F/13D/13G holdings — are available on the Institutional tier only. They sit beside the financials core and link back to the subject company by cik.
Relationships (text)
insider_filingreferencesinsider_partyviafiler_party_id → id(many → 1)institutional_filingreferencesinsider_partyviafiler_party_id → id(many → 1)insider_transactionreferencesinsider_filingviaaccession_id(many → 1)insider_ownershipreferencesinsider_filingviaaccession_id(many → 1)institutional_holdingreferencesinstitutional_filingviaaccession_id(many → 1)
Form ADV adviser dataset
Two further tables on the Institutional tier cover registered investment advisers and the private funds they advise, from SEC Form ADV.
investment_adviser
crd_numberForm ADV Part 1A — registered investment advisers and Exempt Reporting Advisers. Firm profile, employee counts, client types, compensation model, and regulatory assets under management.
investment_adviser_private_fund
crd_number + fund_idForm ADV Schedule D §7.B(1) — private funds advised by a registered adviser. Fund type, gross asset value, 3(c)(1)/3(c)(7) exclusion, auditor and PCAOB registration.
Read these three before you query
- Keyed on CRD, not CIK. Advisers file into IARD, not EDGAR, so these tables do not join to the financials core on
cik. A nullablecikcolumn is present as a soft link on a minority of firms. - Exempt Reporting Advisers file less. Items 5.A–5.F are absent for ERAs because they are not required to report them — a gap in the obligation, not in our ingestion.
- Never sum
raum_totalacross firms. Sub-advisory relationships mean the same assets are reported by more than one adviser, so the column is structurally double-counted. It is meaningful per firm and misleading in aggregate.
Tables
entity
cikOne row per SEC-registered company. Contains company profile data: name, sector, SIC code, location, CEO, description, and status. The root table — all other tables link back via entity_id = entity.cik.
security
idExchange listings with SCD Type 2 history. Multiple rows per company — one per ticker/exchange combination. FIGI identifiers included for cross-system mapping.
filing
accession_idSEC EDGAR financial-statement filing index — 10-K, 10-Q, 8-K, 20-F, 40-F and amendments. One row per accepted filing. The bridge between companies and their financial facts. Every fact row carries this filing's accepted_at forward as its own PIT anchor.
filing_registrant
accession_id, entity_idEvery registrant of an SEC accession. filing keeps one row per accession, owned by the first registrant, so a combined (co-registrant) filing appears under one CIK there. Paid tiers; not in the free sample manifest.
fact
fact_idThe core financial data table. 120.5M+ XBRL-sourced data points normalized to 350+ standard_concept labels. Each row is one value for one company, period and concept from one filing; a period reported again in a later filing gets a new row.
taxonomy_guide
standard_conceptLookup table for standard_concept labels used in the fact table. Maps canonical names to human-readable labels, definitions, and GAAP taxonomy references.
index_membership
idHistorical index constituent records — SP500, RUSSELL1000, RUSSELL2000, RUSSELL3000. One row per (cik, index, membership-period). Essential for point-in-time universe construction — prevents survivorship bias.
references
symbol + cikDerived flat join of entity + security. One row per security. Eliminates the need for 2-table joins for company-level metadata. Always start here for cross-company queries.
ratio
entity_id + ratio_name + period_end + fiscal_period + accepted_atPipeline-computed financial ratios per entity per fiscal period. Append-on-restatement: accepted_at is the PIT vintage (max accepted_at of the input facts), so a restated period is a new vintage row — filter accepted_at <= as_of then take the latest vintage to avoid look-ahead bias, mirroring the fact table.
factor_scores
entity_id + period_endCross-sectional factor values per entity and fiscal year — roe, margins, revenue growth, fcf_to_assets, debt_to_equity, asset_turnover, current_ratio, piotroski_f_score — each with a 0–1 percentile *_rank and a proprietary composite_rank. The precomputed layer behind universe screens.
earnings_signals
entity_id + period_endPer-entity earnings signals: surprises, revision momentum, and report-timing features derived from the filing stream.
standard_concept
standard_conceptThe standardization layer itself: every canonical concept with its definition, statement type, category, unit, and review status (reviewed / review_confidence).
stock_price
entity_id + price_date + observationCoarse close series per entity, on every tier: one close at each fiscal period end and one at each month end (the observation column says which), each with the listing's total_return_index. Raw closes, never split- or dividend-adjusted.
stock_price_daily
entity_id + price_datePro and Institutional only. Full daily OHLCV bar series with total_return_index and the raw corporate-action factors (div_cash, split_factor), per-CIK partitioned. total_return_index is the total-return series (splits + dividends) — the price leg for PIT valuation ratios and track-record grading. Grain is one row per SECURITY per day; add WHERE is_primary_listing for one row per company. Prices are licensed market data, not EDGAR, so they do not share the 1993 fundamentals floor: no bars exist in 1993 and the earliest bar differs per security, from 1994 onward.
restatement_events
event_idOne row per financial fact a later filing materially changed (>0.5% swing from the originally-reported value), 1993→present. Grouped on the RAW XBRL tag, so the before and after are the same measurement. disclosure_class records whether anyone was told — non_reliance (an 8-K Item 4.02 was filed), amended (a 10-K/A or 10-Q/A), or undisclosed (changed inside a routine filing).
industry_classification
cik + valid_fromPoint-in-time industry classification (SEC SIC): one row per company and SIC spell, built from the SIC each filer reported in its own filings. valid_from is the acceptance instant of the first filing that showed the SIC; valid_to is exclusive and NULL for the current spell. No rows exist before a company's first evidence. No GICS (licensed by MSCI and S&P): the 4-digit SIC is the finest level published. Every tier.
institutional_holding
idSmart-money · Form 13F-HR holdings — institutional managers' quarterly positions. One row per (filing, security, put/call), securities identified by FIGI: shares, USD market value, options, and voting authority. Institutional tier only.
insider_transaction
idSmart-money · Form 3/4/5/144 line items — one row per insider transaction, initial holding, or proposed sale. The core insider table: transaction code, shares, price, post-transaction holdings, role, and direct/indirect ownership. Institutional tier only.
insider_filing
idSmart-money · subject-rooted insider disclosure filing records (Form 3/4/5/SC 13D/SC 13G/144 + amendments) — kept separate from the financial filing table. Parent of insider_transaction and insider_ownership via accession_id. Institutional tier only.
insider_ownership
idSmart-money · SC 13D / SC 13G beneficial-ownership disclosures (5%+ stakes). One row per reporting person; group filings emit multiple rows. Carries percent owned and the full voting/dispositive power breakdown. Institutional tier only.
insider_party
idSmart-money · deduplicated directory of every insider / reporting person referenced across Form 3/4/5/144. Keyed on CIK when SEC-registered, otherwise on a normalized name. Institutional tier only.
institutional_filing
idSmart-money · manager-rooted 13F-HR / 13F-NT filing records (and amendments) — distinct from the issuer-rooted filing table because a 13F has no single subject issuer. FK to insider_party for the manager. Institutional tier only.
insider_footnote
accession_id, footnote_idSmart-money · Form 3/4/5 footnotes, verbatim: the receipt behind a 10b5-1 plan or a weighted-average price. Joins to insider_filing on accession_id. Institutional tier only; one monolithic file.
insider_ownership_purpose
accession_idSmart-money · Schedule 13D Item 4 Purpose of Transaction as raw filed text. 13D and 13D/A only; an amendment that does not restate Item 4 has no row. Institutional tier only; one monolithic file.
institutional_other_manager
accession_id, list_kind, ordinalSmart-money · 13F manager lists: other included managers and managers reporting for the filer. Joins to institutional_filing on accession_id. Institutional tier only; one monolithic file.
Key Columns Guide
The most important columns across tables. Master these and you can write any query.
| Column | Table | Type | Nullable | Description |
|---|---|---|---|---|
accepted_atPIT | fact | TIMESTAMPTZ | No | PIT timestamp — when this fact became publicly known via SEC EDGAR acceptance. Use accepted_at <= trade_date for look-ahead-free backtests. |
standard_concept | fact | VARCHAR | Yes | Canonical normalized concept name (e.g. TotalRevenue, NetIncome, EPSDiluted). Use this — not raw concept — for cross-company queries; the standard_concept table lists every value. |
numeric_value | fact | FLOAT | Yes | Parsed financial value. NULL for non-numeric XBRL facts. Always use ABS() on capex; divide by NULLIF(denom, 0) on ratios. |
derived_quarterly_value | fact | FLOAT | Yes | Quarter-only value: the year-to-date difference for Q2/Q3 rows filed year-to-date, and Q4 on the FY row. Use COALESCE(derived_quarterly_value, numeric_value) for quarterly cash flow. |
cik | index_membership / references | VARCHAR | No | Index membership join key. Same column name on both tables — JOIN index_membership ON references.cik = index_membership.cik. Filter index_name = 'SP500' AND removal_date IS NULL for the current S&P 500. |
is_active | references / security | BOOLEAN | No | TRUE if this ticker is currently active (valid_to IS NULL). Combine with is_primary_ticker for one row per company. |
accession_id | filing | VARCHAR | No | SEC EDGAR accession number — the unique identifier for a filing. Format: XXXXXXXXXX-YY-ZZZZZZ. The join key between filing and fact. |
cik | entity / references | VARCHAR | No | SEC Central Index Key — 10-digit company identifier. The universal join key across all tables. entity.cik = security.entity_id = filing.entity_id = fact.entity_id. |
All Fields by Table
Quick-reference field list. For full descriptions and SEC XBRL tag mappings, use the Data Catalog.
entity32 fields
| Field | Type | Description |
|---|---|---|
cik | VARCHAR | SEC Central Index Key — 10-digit unique company identifier |
name | VARCHAR | Legal registered company name |
lei | VARCHAR | Legal Entity Identifier (ISO 17442 20-character code) |
industry | VARCHAR | Industry classification description |
sector | VARCHAR | Broad market sector, SIC-derived with GICS-style labels (e.g. Information Technology, Health Care, Financials) |
sic_code | VARCHAR | Standard Industrial Classification code (4-digit) |
sic_description | VARCHAR | Full SEC SIC industry label (e.g. 'Electronic Computers'). Companion to sic_code — use this when a human-readable string is more useful than the raw 4-digit code. |
fiscal_year_end | VARCHAR | Fiscal year end as MMDD (e.g. 1231 = December 31) |
location | VARCHAR | Company headquarters location (city, state, country) |
website | VARCHAR | Company primary website URL |
ceo | VARCHAR | Chief Executive Officer name at most recent filing |
founded_year | SMALLINT | Year the company was founded |
description | VARCHAR | Company business description extracted from SEC filings |
status | VARCHAR | Entity status: ACTIVE, INACTIVE, or DELISTED. Filter status != 'ACTIVE' to include all non-active companies |
entity_type | VARCHAR | SEC-defined filer category (e.g. Non-accelerated Filer, Large Accelerated Filer) |
ein | VARCHAR | Employer Identification Number (IRS tax ID) |
owner_org | VARCHAR | Parent or controlling organization name |
investor_website | VARCHAR | Investor relations website URL |
category | VARCHAR | SEC registrant category |
state_of_incorporation | VARCHAR | US state or country of incorporation (2-letter code) |
state_of_incorporation_description | VARCHAR | Full SEC label for the state-of-incorporation code (e.g. 'Delaware') |
phone | VARCHAR | Company contact phone number |
business_address | VARCHAR | Principal registered business (HQ) address — single concatenated line. Renamed from 'address' in schema v2.1.0. |
mailing_address | VARCHAR | Mailing address (separate from HQ) — registered agent / correspondence target. Often differs from business_address for foreign issuers and trusts. |
country_code | VARCHAR | ISO country code of the issuer's primary location |
is_foreign | BOOLEAN | TRUE if the issuer is a non-US registrant (typically a 20-F / 40-F filer) |
flags | VARCHAR | SEC-flagged status string (e.g. 'Shell', 'Delinquent'). NULL for clean issuers. |
has_insider_transactions | BOOLEAN | SEC declares Form 4/5 insider activity exists for this issuer |
is_insider_owner | BOOLEAN | SEC declares this CIK itself owns insider holdings |
former_names | JSON | SEC formerNames[] history — JSON array of {name, from, to} objects. Useful for ticker-history queries and merger lineage (e.g. FB → META). Empty array when the issuer has never renamed. |
last_seen_at | DATE | Date this entity last appeared in any SEC filing |
ingested_at | TIMESTAMPTZ | Timestamp when Valuein first ingested this entity record |
security18 fields
| Field | Type | Description |
|---|---|---|
id | INTEGER | Surrogate primary key for the security record |
entity_id | VARCHAR | Foreign key to entity.cik — the issuing company |
symbol | VARCHAR | Exchange ticker symbol |
exchange | VARCHAR | Stock exchange name (e.g. NASDAQ, NYSE) |
mic | VARCHAR | Market Identification Code (ISO 10383) |
valid_from | DATE | SCD Type 2 start date — when this ticker became active on this exchange |
valid_to | DATE | SCD Type 2 end date — when this ticker was retired. NULL means currently active |
is_active | BOOLEAN | Derived: TRUE when valid_to IS NULL. Use to filter current tickers only |
figi | VARCHAR | Financial Instrument Global Identifier at share-class level (OpenFIGI) |
composite_figi | VARCHAR | Composite FIGI at the exchange level |
share_class_figi | VARCHAR | Share class FIGI |
security_type | VARCHAR | Instrument type (e.g. Common Stock, ADR, ETF) |
market_sector | VARCHAR | FIGI market sector classification |
figi_ticker | VARCHAR | Ticker symbol as recorded in the OpenFIGI registry |
figi_name | VARCHAR | Security name from the OpenFIGI registry |
figi_exch_code | VARCHAR | Exchange code from the OpenFIGI registry |
is_primary_ticker | BOOLEAN | TRUE for the ticker SEC's company_tickers.json marks as the entity's primary listing. Multi-share-class issuers (BRK-A/BRK-B, GOOG/GOOGL) emit multiple is_active=TRUE rows; default consumer queries filter is_primary_ticker=TRUE for one row per CIK. |
ingested_at | TIMESTAMPTZ | Timestamp when Valuein first ingested this security record |
filing23 fields
| Field | Type | Description |
|---|---|---|
accession_id | VARCHAR | SEC EDGAR accession number — unique filing identifier (format: XXXXXXXXXX-YY-ZZZZZZ) |
entity_id | VARCHAR | Foreign key to entity.cik — the filing company |
filing_date | DATE | Date the SEC received and accepted the filing. Use this for PIT backtest filters — not report_date |
form_type | VARCHAR | Filing type: 10-K (annual), 10-Q (quarterly), 20-F (foreign annual), 8-K (current report), etc. |
filing_url | VARCHAR | Full URL to the filing document on SEC EDGAR |
is_amendment | BOOLEAN | TRUE if this is an amended filing (e.g. 10-K/A, 10-Q/A) |
amendment_no | SMALLINT | Amendment sequence number — 0 for the original filing, 1 for the first amendment, etc. |
superseded_by | VARCHAR | Accession-id of the filing that supersedes this one in the amendment chain (NULL when this is the latest version). Populated post-ingest. |
report_date | DATE | Fiscal period end date covered by this filing. Using this as a PIT filter introduces look-ahead bias — use filing_date or accepted_at instead. |
items | VARCHAR[] | Array of 8-K item numbers reported (e.g. ['1.01', '9.01']). NULL for non-8-K filings |
size | INTEGER | Filing size in bytes (per SEC submissions feed) |
is_xbrl | BOOLEAN | SEC-declared: filing carries an XBRL exhibit |
is_inline_xbrl | BOOLEAN | SEC-declared: filing uses Inline XBRL (iXBRL) |
is_xbrl_numeric | BOOLEAN | Distinct from is_xbrl/is_inline_xbrl — TRUE when the XBRL exhibit carries machine-readable numeric facts (the source of every fact-table row). |
primary_document | VARCHAR | Filename of the lead document in the filing package |
primary_doc_description | VARCHAR | SEC-provided label describing the primary document |
core_type | VARCHAR | Base form_type stripped of the /A amendment suffix (e.g. 10-K/A → 10-K). Use this for form-family filtering when you don't care whether a filing is the original or an amendment. |
file_number | VARCHAR | SEC EDGAR file number (e.g. 001-36743) |
film_number | VARCHAR | SEC EDGAR microfiche / film number assigned at acceptance |
act | VARCHAR | Securities-Act designator: '33' (1933 Act), '34' (1934 Act), or empty. Helps distinguish registration-statement vs. exchange-act filings. |
is_audited | BOOLEAN | Filing is an annual (audited) report — TRUE for 10-K / 20-F and their amendments, FALSE for 10-Q / 8-K / etc. |
accepted_at | TIMESTAMPTZ | Exact timestamp the SEC accepted the filing (millisecond precision). Every fact disclosed in this filing inherits the same accepted_at as its PIT anchor. |
ingested_at | TIMESTAMPTZ | Timestamp when Valuein ingested this filing record |
filing_registrant2 fields
| Field | Type | Description |
|---|---|---|
accession_id | VARCHAR | Join key to filing.accession_id |
entity_id | VARCHAR | One registrant of the accession (10-digit CIK). |
fact38 fields
| Field | Type | Description |
|---|---|---|
fact_id | VARCHAR | Deterministic identity hash: SHA-256(entity_id|accession_id|concept|period_end|unit). 64-character lowercase hex string. Use with verify_fact_lineage to trace any number to its source filing. |
entity_id | VARCHAR | Foreign key to entity.cik |
accession_id | VARCHAR | Foreign key to filing.accession_id |
concept | VARCHAR | Raw XBRL tag as filed by the company (e.g. us-gaap:Revenues). Use standard_concept for cross-company comparisons. |
standard_concept | VARCHAR | Canonical normalized concept label (e.g. TotalRevenue, NetIncome, EPSDiluted). Raw XBRL tags map onto the standard_concept dictionary; unmapped tags fall through to Other. |
priority | SMALLINT | Standardization priority — lower value = higher confidence in the concept mapping |
label | VARCHAR | Human-readable label from the company's XBRL filing context |
value | VARCHAR | Raw as-reported value string, before numeric parsing. Holds text for non-numeric facts (e.g. dei cover-page strings); for numeric facts prefer ``numeric_value``. |
numeric_value | DOUBLE | The value as reported in this specific filing (accession_id). NULL for non-numeric facts. |
derived_quarterly_value | DOUBLE | Quarterly value derived by subtracting prior YTD periods (Q2/Q3 10-Q cash flows are filed as YTD). Use COALESCE(derived_quarterly_value, numeric_value) for single-quarter cash flow metrics. |
unit | VARCHAR | Unit of measure: USD, shares, pure (dimensionless ratio), etc. |
period_start | DATE | Reporting period start date. NULL for instant/point-in-time facts (e.g. balance sheet items) |
period_end | DATE | Reporting period end date. Table is range-partitioned on this column by year. |
fiscal_year | INTEGER | Fiscal year number (e.g. 2024). INT16 in the parquet — no cast needed for cross-table joins. |
fiscal_period | VARCHAR | Fiscal period label: FY (annual), Q1, Q2, Q3, Q4 |
frame | VARCHAR | XBRL frame identifier linking this fact to a specific reporting period context |
statement_type | VARCHAR | Financial statement category: income, balance_sheet, cash_flow, dei, notes |
accuracy_score | DOUBLE | Legacy 0-1 standardization-match score stamped by the in-memory resolver at ingest. Superseded for consumer filtering by ``confidence_score`` (the composite quality score); kept for traceability of the concept mapping. |
confidence_score | DOUBLE | Per-fact confidence in [0.0–1.0] (penalty-from-evidence): each fact starts at 1.0 and is docked only for evidence we can point at — confidence_score = 1.0 - 0.40*min(identity_violation_count/3, 1) - 0.20*min(restatement_count/5, 1) - 0.05*(NOT is_audited). No recency/age term. >= 0.95 = no evidence held against the fact (most rows); ~0.80 = a later filing revised it (see /radar); < 0.60 = an accounting identity failed. The inputs (identity_violation_count, restatement_count, is_audited) ship beside it so you can recompute the score. |
reliability_code | SMALLINT | Discrete reliability bucket (1-4) for Bloomberg PR / Refinitiv vendor parity: 1=preliminary (errors present), 2=announced (clean, unaudited), 3=audited (audited + clean), 4=restated (audited + clean + multiple versions on file). NOMINAL, not ordinal: 4 (restated) is not "better" than 3 (audited, clean), so `WHERE reliability_code >= 3` silently includes restated facts — rank by confidence_score instead. |
identity_violation_count | SMALLINT | Number of error-severity accounting identities that fired against this fact's filing. Sourced from qa_violation. |
restatement_count | SMALLINT | Number of times this (entity, standard_concept, period_end, fiscal_period, unit) tuple has been re-reported across accessions. Sourced from fact_lineage_summary.version_count - 1. Zero = never restated; > 0 = restated N times. |
is_negative | BOOLEAN | TRUE if the originally reported value was negative |
is_audited | BOOLEAN | TRUE if this fact comes from an audited annual filing (10-K or 20-F) |
is_estimated | BOOLEAN | TRUE if the value is estimated rather than directly reported |
data_quality | VARCHAR | Data quality flag: reported, estimated, or provisional |
accepted_at | TIMESTAMPTZ | Point-in-time timestamp — when this fact became publicly known via SEC EDGAR. Filter accepted_at <= trade_date for look-ahead-free backtests. |
ingested_at | TIMESTAMPTZ | Timestamp when Valuein ingested this fact |
accounting_standard | VARCHAR | Reporting taxonomy of the source filing — 'US-GAAP' or 'IFRS'. Derived from the XBRL taxonomy; defaults 'US-GAAP' for 10-K/10-Q/8-K and is usually 'IFRS' for 20-F / 40-F foreign issuers. |
reporting_currency | VARCHAR | ISO-4217 currency code when the unit is monetary (e.g. USD, EUR, JPY). NULL for non-monetary facts (shares, ratios, days). Required for 20-F filers and any non-USD reporter. |
period_span_days | INTEGER | Number of calendar days spanned by this reporting period |
is_cumulative | BOOLEAN | TRUE if the value is cumulative year-to-date rather than for the period in isolation (common in 10-Q cash flow statements) |
derivation_type | VARCHAR | Method used to derive the quarterly value: ytd_subtraction, direct, or NULL if not derived |
derivation_uncertain | BOOLEAN | TRUE if the quarterly derivation has reduced confidence due to fiscal-period ambiguity |
value_current | DOUBLE | Bloomberg Option-C: the latest-known value for this (entity_id, standard_concept, period_end, unit) — i.e. the value any analyst watching the tape today would see. Computed at export time via DuckDB window functions. |
value_as_filed | DOUBLE | Bloomberg Option-C: the originally-reported value (first-ever accepted_at in the partition). Compare with value_current to detect restatements. |
first_filed_at | TIMESTAMPTZ | Timestamp of first disclosure (min accepted_at in the partition) |
restated | BOOLEAN | TRUE if any version of this fact in the partition differs from the others — signals that a later filing restated this number. Computed against the GLOBAL warehouse state, NOT PIT — for PIT reasoning use value_current vs. value_as_filed. |
taxonomy_guide13 fields
| Field | Type | Description |
|---|---|---|
standard_concept | VARCHAR | Canonical concept name (primary key) — matches fact.standard_concept for joins |
human_name | VARCHAR | Human-readable display name for the concept (e.g. Total Revenue) |
definition | VARCHAR | Plain-English definition of what this financial concept measures |
unit_type | VARCHAR | Expected unit of measure: monetary, shares, ratio, pure, etc. |
balance_type | VARCHAR | Accounting balance type: debit or credit |
source_reference | VARCHAR | US-GAAP taxonomy reference identifier for this concept |
level | SMALLINT | Concept tier: 1 = L1 universal statement line, 2 = L2 sector-pack sub-line. |
statement_type | VARCHAR | Statement the concept belongs to (income | balance_sheet | cash_flow | supplemental | …). |
display_order | SMALLINT | Suggested ordering within a statement for human-facing renders. |
is_active | BOOLEAN | FALSE for retired concepts kept for historical fact lookups. |
gaap_ifrs_comparable | BOOLEAN | TRUE when the concept maps cleanly across US-GAAP and IFRS filers. |
created_at | TIMESTAMPTZ | Timestamp the record was created in the warehouse. |
updated_at | TIMESTAMPTZ | Timestamp the record was last updated in the warehouse. |
index_membership15 fields
| Field | Type | Description |
|---|---|---|
id | INTEGER | Surrogate primary key |
cik | VARCHAR | Foreign key to entity.cik — the index constituent. JOIN with references on cik = cik (same column name on both sides). |
index_name | VARCHAR | Canonical short code: SP500 | NASDAQ100 | RUSSELL3000 | WILSHIRE5000 |
effective_date | DATE | First trading day the company traded as a member |
removal_date | DATE | First trading day the company was NOT a member. NULL = current. [) interval semantics — a company removed on 2017-06-19 is NOT a member on 2017-06-19. |
removal_reason | VARCHAR | merger | acquisition | bankruptcy | criteria | spinoff | other. NULL when removal_date IS NULL. |
successor_cik | VARCHAR | Acquirer CIK when removal_reason in {merger, acquisition}. Essential for backtests crossing M&A — without it, a stock disappearing looks indistinguishable from a delisting. |
source | VARCHAR | Provenance — the MECHANISM that produced the row, never a firm or a website: historical_seed | fund_holdings | fund_snapshot | public_constituent_list | manual. |
confidence | VARCHAR | high | medium | low. Used by get_pit_universe to set pit_safe automatically — pre-2000 dates default to 'low'. |
notes | VARCHAR | Free-text annotation |
ingested_at | TIMESTAMPTZ | Timestamp when Valuein first ingested this membership row |
updated_at | TIMESTAMPTZ | Timestamp when this membership row was last updated |
first_seen_date | DATE | First date this constituent was observed in a fund-holdings snapshot; written by the current-holdings rebuilder. NULL on rows from the historical seed. |
last_seen_date | DATE | Last date this constituent was observed in a fund-holdings snapshot. NULL outside the fund-holdings layer. |
avg_weight_pct | DOUBLE | Average index weight (%) observed across fund-holdings snapshots. NULL outside the fund-holdings layer. |
references17 fields
| Field | Type | Description |
|---|---|---|
cik | VARCHAR | SEC Central Index Key — 10-digit unique company identifier (from entity) |
name | VARCHAR | Legal registered company name (from entity) |
sector | VARCHAR | Broad market sector (from entity) |
industry | VARCHAR | Industry classification description (from entity) |
sic_code | VARCHAR | Standard Industrial Classification code 4-digit (from entity) |
status | VARCHAR | Entity status: ACTIVE, INACTIVE, or DELISTED (from entity) |
entity_type | VARCHAR | SEC-defined filer category (from entity) |
security_id | INTEGER | Surrogate PK of the security record (from security) |
symbol | VARCHAR | Exchange ticker symbol (from security) |
exchange | VARCHAR | Stock exchange name e.g. NASDAQ, NYSE (from security) |
mic | VARCHAR | Market Identification Code ISO 10383 (from security) |
valid_from | DATE | SCD Type 2 start date — when this ticker became active (from security) |
valid_to | DATE | SCD Type 2 end date — NULL means currently active (from security) |
is_active | BOOLEAN | TRUE when valid_to IS NULL — use to filter current tickers only (from security). For index membership, JOIN index_membership ON references.cik = index_membership.cik — there is no is_sp500 flag (dropped 2026-05-02 because it was snapshot-only and single-index). |
figi | VARCHAR | Financial Instrument Global Identifier share-class level (from security) |
composite_figi | VARCHAR | Composite FIGI at the exchange level (from security) |
share_class_figi | VARCHAR | Share class FIGI (from security) |
ratio13 fields
| Field | Type | Description |
|---|---|---|
entity_id | VARCHAR | Foreign key to entity.cik |
ratio_name | VARCHAR | Ratio identifier (e.g. roe, gross_margin, debt_to_equity) |
category | VARCHAR | Groups ratios for filtering: profitability | per_share | liquidity | leverage | efficiency | owner_earnings | valuation |
value | DOUBLE | Numeric value of the ratio. Inspect `unit` for the scale (percent vs decimal vs multiple). |
confidence_score | DOUBLE | Entity-period data quality: average fact.confidence_score (penalty-from-evidence) of the facts feeding this period. >= 0.95 means no evidence held against these facts; values fall only when a later filing revised a number (~0.80) or an accounting identity failed (< 0.60). NULL for *_sector_pctile rank rows. |
unit | VARCHAR | Unit: percent | per_share | pure | x | percentile |
period_end | DATE | Reporting period end date the ratio was computed for |
fiscal_year | INTEGER | Fiscal year of the underlying period |
fiscal_period | VARCHAR | FY | Q1 | Q2 | Q3 | Q4 | TTM |
is_ttm | BOOLEAN | TRUE for trailing-twelve-months rows |
accepted_at | TIMESTAMPTZ | PIT vintage — SEC acceptance timestamp of the latest input fact (max accepted_at of the year's facts); the date this ratio first became knowable. Filter accepted_at <= as_of then take the latest vintage for look-ahead-free backtests, mirroring fact.accepted_at. NULL for *_sector_pctile rank rows and un-timestamped years. |
computed_at | TIMESTAMPTZ | Pipeline-run timestamp the ratio was last computed within a vintage (use for freshness, not PIT). |
ingested_at | TIMESTAMPTZ | DB insertion timestamp; use computed_at for ratio freshness. |
factor_scores28 fields
| Field | Type | Description |
|---|---|---|
entity_id | VARCHAR | SEC Central Index Key (CIK) identifying the entity; joins to entity.cik. |
symbol | VARCHAR | Primary ticker, joined from references at export for convenience. |
name | VARCHAR | Company name, joined from references at export. |
sector | VARCHAR | Sector, joined from references at export. |
period_end | DATE | Fiscal period-end date the factor scores are computed as of. |
fiscal_year | INTEGER | Fiscal year of the period the scores correspond to. |
accepted_at | TIMESTAMPTZ | SEC acceptance timestamp of the underlying filing; enforces point-in-time correctness (no look-ahead). |
roe | DOUBLE | Return on equity factor value for the period. |
gross_margin | DOUBLE | Gross margin factor value (gross profit / revenue). |
operating_margin | DOUBLE | Operating margin factor value (operating income / revenue). |
net_profit_margin | DOUBLE | Net profit margin factor value (net income / revenue). |
revenue_growth_yoy | DOUBLE | Year-over-year revenue growth factor value. |
fcf_to_assets | DOUBLE | Free cash flow to total assets factor value. |
debt_to_equity | DOUBLE | Debt-to-equity factor value (total debt / shareholders equity). |
asset_turnover | DOUBLE | Asset turnover factor value (revenue / total assets). |
current_ratio | DOUBLE | Current ratio factor value (current assets / current liabilities). |
piotroski_f_score | INTEGER | Piotroski F-Score (0-9) summarizing financial strength. |
roe_rank | DOUBLE | Cross-sectional percentile rank (0-1) of ROE across the universe for the period. |
gross_margin_rank | DOUBLE | Cross-sectional percentile rank (0-1) of gross margin across the universe for the period. |
operating_margin_rank | DOUBLE | Cross-sectional percentile rank (0-1) of operating margin across the universe for the period. |
net_profit_margin_rank | DOUBLE | Cross-sectional percentile rank (0-1) of net profit margin across the universe for the period. |
revenue_growth_yoy_rank | DOUBLE | Cross-sectional percentile rank (0-1) of YoY revenue growth across the universe for the period. |
fcf_to_assets_rank | DOUBLE | Cross-sectional percentile rank (0-1) of FCF-to-assets across the universe for the period. |
debt_to_equity_rank | DOUBLE | Cross-sectional percentile rank (0-1) of debt-to-equity across the universe for the period. |
asset_turnover_rank | DOUBLE | Cross-sectional percentile rank (0-1) of asset turnover across the universe for the period. |
current_ratio_rank | DOUBLE | Cross-sectional percentile rank (0-1) of current ratio across the universe for the period. |
piotroski_f_score_rank | DOUBLE | Cross-sectional percentile rank (0-1) of the Piotroski F-Score across the universe for the period. |
composite_rank | DOUBLE | Composite cross-sectional rank (0-1) blending the individual factor ranks. |
earnings_signals10 fields
| Field | Type | Description |
|---|---|---|
entity_id | VARCHAR | SEC Central Index Key (CIK) identifying the entity; joins to entity.cik. |
period_end | DATE | Fiscal period-end date for the earnings signals. |
fiscal_year | INTEGER | Fiscal year of the reported period. |
fiscal_period | VARCHAR | Fiscal period code (e.g., Q1-Q4 or FY). |
accepted_at | TIMESTAMPTZ | SEC acceptance timestamp of the underlying filing; enforces point-in-time correctness (no look-ahead). |
eps_actual | DOUBLE | Reported earnings per share for the period. |
eps_trend_est | DOUBLE | Model-derived EPS estimate extrapolated from the company own trailing reported trend - NOT an analyst consensus or market expectation. |
eps_surprise_pct | DOUBLE | Percentage difference between reported EPS and the trailing-trend EPS estimate. |
revenue_actual | DOUBLE | Reported total revenue for the period. |
revenue_yoy_pct | DOUBLE | Year-over-year revenue change, in percent. |
standard_concept18 fields
| Field | Type | Description |
|---|---|---|
standard_concept | VARCHAR | Canonical standardized concept key that raw XBRL tags map to (e.g. TotalRevenue, NetIncome). |
level | VARCHAR | L1 (top statement line) | L2 (sector-pack sub-line) | -- (the 'Other' catch-all). |
statement_type | VARCHAR | income | balance_sheet | cash_flow | comprehensive_income | supplemental | dei | notes | other. |
category | VARCHAR | Finer grouping within the statement (e.g. revenue, working_capital, equity). |
definition | VARCHAR | Human-readable definition of the standardized concept. |
unit_default | VARCHAR | Canonical unit (USD | USD/share | shares | pct | …); NULL for non-numeric. |
is_flow | BOOLEAN | TRUE for flow (period) measures, FALSE for stock (point-in-time) measures. |
parent_concept | VARCHAR | Parent in the L1→L2 hierarchy (NULL for L1 / 'Other'). |
sector_pack | VARCHAR | Sector pack a L2 concept belongs to (banking, insurance, reit, …); NULL unless level='L2'. |
bloomberg_equivalent | VARCHAR | Closest Bloomberg field mnemonic, when one exists. |
factset_equivalent | VARCHAR | Closest FactSet field, when one exists. |
gaap_ifrs_comparable | BOOLEAN | TRUE when the concept maps cleanly across US-GAAP and IFRS filers. |
reviewed | BOOLEAN | Human-in-the-loop CPA sign-off flag. TRUE = an accountant has verified this concept's canonical name, statement_type and rule; the concept is then LOCKED — the standardization coverage loop only ever creates NEW concepts, never mutates a reviewed one. Curated catalog rows default TRUE; loop-generated provisional rows are FALSE. |
reviewed_by | VARCHAR | Who signed off (e.g. 'J. Smith, CPA'); NULL when not individually attributed. |
reviewed_at | DATE | ISO date of the CPA sign-off; NULL when not individually attributed. |
review_confidence | DOUBLE | Concept-level trust score in [0, 1] — the catalog analogue of ``fact.confidence_score``. 1.0 = CPA-verified (reviewed=TRUE); 0.7 = provisional loop output pending review. Filter ``review_confidence >= 1.0`` for the accountant-verified concept set. Distinct from the per-fact *match* accuracy. |
created_at | TIMESTAMPTZ | Timestamp the record was created in the warehouse. |
updated_at | TIMESTAMPTZ | Timestamp the record was last updated in the warehouse. |
stock_price11 fields
| Field | Type | Description |
|---|---|---|
entity_id | VARCHAR | SEC Central Index Key of the issuer — joins to entity.cik and references.cik. |
security_id | INTEGER | The listing this close came from — the issuer's primary ticker where SEC flags one, else its deepest-traded listing. |
symbol | VARCHAR | Ticker of ``security_id``, denormalized so no join is needed to read it. |
price_date | DATE | Trading day the close is from. |
close | DOUBLE | Raw (unadjusted) closing price. |
div_cash | DOUBLE | Cash dividend with ex-date == price_date (else 0). |
split_factor | DOUBLE | Split factor on price_date (1.0 if none). |
accepted_at | TIMESTAMPTZ | Market-close PIT stamp for price_date; filter ``accepted_at <= as_of``. |
period_end | DATE | Fiscal period this close aligns to (observation='period_end'); NULL for monthly rows. |
observation | VARCHAR | 'period_end' (close at/just-before a fiscal close) | 'monthly' (last trading day of a month). |
total_return_index | DOUBLE | Total-return index of the priced listing at this close — the same forward-compounded series as stock_price_daily.total_return_index (dividends reinvested, splits neutralized, arbitrary base), sampled at the coarse grain and present on every tier. Only ratios are meaningful: tri_b / tri_a − 1 between two month-end rows is the holder's total return for that span. NULL only where the daily series is NULL. Added in schema 3.3.0. |
stock_price_daily15 fields
| Field | Type | Description |
|---|---|---|
entity_id | VARCHAR | SEC Central Index Key of the issuer — joins to entity.cik and references.cik. |
security_id | INTEGER | The listing this bar belongs to. |
symbol | VARCHAR | Ticker of ``security_id``, denormalized so no join is needed to read it. |
is_primary_listing | BOOLEAN | TRUE on exactly one bar per (entity_id, price_date): the issuer's representative listing. |
price_date | DATE | Trading day the bar is from. |
open | DOUBLE | Raw (unadjusted) opening price. |
high | DOUBLE | Raw (unadjusted) intraday high. |
low | DOUBLE | Raw (unadjusted) intraday low. |
close | DOUBLE | Raw (unadjusted) closing price — PIT-immutable. |
adjusted_close | DOUBLE | ⚠️ SPARSE — the vendor populates this on roughly 2% of bars, so a query that depends on it returns mostly NULL. |
total_return_index | DOUBLE | Total-return index for this listing, forward-compounded from its first bar in the archive (arbitrary base ≈ 1.0 — only RATIOS of it are meaningful). |
volume | BIGINT | Shares traded on price_date. |
div_cash | DOUBLE | Cash dividend with ex-date == price_date (else 0). |
split_factor | DOUBLE | Split factor on price_date (1.0 if none). |
accepted_at | TIMESTAMPTZ | Market-close PIT stamp for price_date; filter ``accepted_at <= as_of``. |
restatement_events30 fields
| Field | Type | Description |
|---|---|---|
event_id | VARCHAR | SHA-256 hex of cik|concept|period_end|fiscal_period|unit. |
cik | VARCHAR | SEC Central Index Key of the company whose filed value changed. |
ticker | VARCHAR | Primary listing symbol (references.symbol, is_primary_ticker). |
company_name | VARCHAR | Registrant name as filed, carried forward for display. |
sector | VARCHAR | Sector of the restating company, from the entity record. |
concept | VARCHAR | The RAW XBRL tag both filings used (e.g. Revenues). This is the detection grain and the evidence the diff is like for like: open both accessions and the same tag carries two different numbers. |
standard_concept | VARCHAR | Canonical concept label (e.g. TotalRevenue). |
concept_label | VARCHAR | As-reported label from the latest filing; falls back to standard_concept. |
statement_type | VARCHAR | income_statement | balance_sheet | cash_flow (from the latest vintage). |
period_start | DATE | Start of the reporting WINDOW the restated fact covers — part of the detection grain since 2.25.0, and the reason one fact is no longer published as two. |
period_end | DATE | End of the reporting period the restated fact covers. |
fiscal_period | VARCHAR | FY | Q1 | Q2 | Q3 | Q4 — a DISPLAY LABEL, carried from the latest filing. |
unit | VARCHAR | Unit the value is reported in (e.g. USD, shares) — restatements are only compared within a single unit. |
first_value | DOUBLE | Value as ORIGINALLY reported (earliest accepted_at). |
current_value | DOUBLE | Value as RESTATED (latest accepted_at). |
delta_abs | DOUBLE | current_value − first_value. |
delta_pct | DOUBLE | Signed relative change: (current − first) / |first|. |
version_count | SMALLINT | Number of filings that reported this tuple (≥2 for a restatement). |
first_filed_at | TIMESTAMPTZ | accepted_at of the original filing. |
last_filed_at | TIMESTAMPTZ | accepted_at of the restating filing — the event's detection time / feed ordering key. |
first_accession | VARCHAR | Original filing (as-reported). |
current_accession | VARCHAR | Restating filing (restated). |
restated_in_form | VARCHAR | SEC form the RESTATING filing arrived in (10-K, 10-K/A, 10-Q, 10-Q/A, 20-F…). |
restated_in_amendment | BOOLEAN | TRUE when the restating filing is an amendment (filing.is_amendment). |
first_primary_doc | VARCHAR | Primary document of the AS-REPORTED filing (e.g. goog-20251231.htm). Builds the SEC inline-XBRL viewer URL /ix?doc=/Archives/edgar/data/{cik}/{accession}/{doc}. NULL when the filing row is unknown. |
current_primary_doc | VARCHAR | Primary document of the RESTATING filing. |
disclosure_class | VARCHAR | HOW the company told the market — 'non_reliance' | 'amended' | 'undisclosed'. |
severity | VARCHAR | Deterministic magnitude bucket: high (|Δ|≥10%) | medium (≥2%) | low (≥0.5%). |
concept_importance | SMALLINT | How much an analyst cares that THIS line moved: 1 headline (revenue, net income, EPS, total assets, operating cash flow), 2 primary statement line, 3 footnote (lease schedules, share counts, tax-rate reconciliations). |
company_rank | SMALLINT | Rank of this event within the company's restatement history (1 = most significant). |
industry_classification15 fields
| Field | Type | Description |
|---|---|---|
cik | VARCHAR | SEC Central Index Key of the company (references entity.cik). |
sic_code | VARCHAR | 4-digit SEC SIC code (keeps leading zeros). |
sic_description | VARCHAR | SEC's published description of the code; the latest filer-reported text when the code is not on the SEC list. |
sic_division | VARCHAR | 1987 SIC division letter A-J. |
sic_division_name | VARCHAR | Name of the 1987 SIC division (sic_division). |
sic_major_group | VARCHAR | First 2 digits of the SIC. |
sic_industry_group | VARCHAR | First 3 digits of the SIC. |
sector | VARCHAR | Sector of this SIC under the same mapping as references.sector. |
industry | VARCHAR | Filer-reported SIC description (the meaning of entity.industry). |
valid_from | TIMESTAMPTZ | Acceptance instant of the first filing showing this SIC (see valid_from_basis). |
valid_to | TIMESTAMPTZ | Exclusive end: the next spell's valid_from; NULL = current. |
first_accession_id | VARCHAR | Accession of the first filing in the spell (NULL if only observed). |
last_accession_id | VARCHAR | Accession of the last filing in the spell (NULL if only observed). |
evidence_count | INTEGER | Evidence rows folded into the spell. |
valid_from_basis | VARCHAR | sec_acceptance (exact acceptance time) | filing_date_eod (filing date, end of day) | observed (date we saw it). |
institutional_holding18 fields
| Field | Type | Description |
|---|---|---|
id | BIGINT | Surrogate primary key. One row per (filing, security, put/call); the security is identified by share_class_figi. |
accession_id | VARCHAR | FK to institutional_filing.accession_id. |
filer_cik | VARCHAR | Manager CIK (denormalised from institutional_filing.filer_cik). |
filer_name | VARCHAR | DENORMALIZED 13F manager name (LEFT JOIN insider_party on filer_cik = cik at export time). Lets consumers render the holder name without decoding the insider_party dimension. NULL only when the manager CIK is unresolved. |
period_end | DATE | Reporting quarter-end the position reflects. |
share_class_figi | VARCHAR | OpenFIGI share-class identifier of the held security (MIT licence). NULL where the security has no FIGI (older delisted securities). Valuein publishes FIGI only. |
subject_entity_id | VARCHAR | Resolved issuer CIK; NULL until the issuer lookup completes. Soft reference to entity.cik. |
name_of_issuer | VARCHAR | Issuer name as reported on the 13F. |
title_of_class | VARCHAR | Title of the security class held (e.g. COM, CL A). |
shares | DOUBLE | Shares (or principal amount) held at period end. |
market_value_usd | DOUBLE | Reported USD market value of the position at period end. |
put_call | VARCHAR | PUT | CALL | NULL (NULL = common stock, not an option). |
investment_discretion | VARCHAR | SOLE | DFND | OTR (13F bulk) or SOLE | SHARED | NONE (per-filing XML). |
sole_voting | DOUBLE | Shares over which the manager has sole voting authority. |
shared_voting | DOUBLE | Shares over which the manager has shared voting authority. |
no_voting | DOUBLE | Shares over which the manager has no voting authority. |
accepted_at | TIMESTAMPTZ | Intraday SEC acceptance timestamp (Institutional tier). |
ingested_at | TIMESTAMPTZ | Pipeline ingest timestamp. |
insider_transaction25 fields
| Field | Type | Description |
|---|---|---|
id | BIGINT | Surrogate primary key for the transaction line item. |
accession_id | VARCHAR | FK to insider_filing.accession_id. |
transaction_line_no | SMALLINT | Line index within the filing. |
entity_id | VARCHAR | Issuer CIK (company whose securities the insider holds). Soft reference — LEFT JOIN to entity.cik; may not resolve for foreign / pre-IPO / delisted issuers. |
insider_party_id | INTEGER | FK to insider_party.id (the insider). |
form_type | VARCHAR | Form 3 / 4 / 5 / 144. |
transaction_type | VARCHAR | transaction (Form 4/5) | initial_holding (Form 3) | proposed_sale (Form 144). |
transaction_date | DATE | Date the transaction occurred. |
transaction_code | VARCHAR | SEC transaction code (e.g. P=purchase, S=sale, A=grant, M=option exercise). |
security_title | VARCHAR | Title of the security transacted (e.g. Common Stock). |
is_derivative | BOOLEAN | TRUE for derivative securities (options, RSUs, warrants). |
shares | DOUBLE | Number of shares / units in the transaction. |
price_per_share | DOUBLE | Reported price per share (NULL for grants / gifts). |
post_transaction_shares | DOUBLE | Shares beneficially owned immediately after the transaction. |
ownership_form | VARCHAR | D = direct, I = indirect. |
indirect_ownership_nature | VARCHAR | Nature of indirect ownership (e.g. 'By Trust'), when ownership_form = I. |
insider_role | VARCHAR[] | Officer | Director | TenPercentOwner | Other (multi-valued). |
officer_title | VARCHAR | Officer title when the insider is an officer. |
aggregate_market_value | DOUBLE | Form 144 only — proposed-sale total dollar value. |
broker_name | VARCHAR | Form 144 only — executing broker. |
approximate_sale_date | DATE | Form 144 only — approximate intended sale date. |
accepted_at | TIMESTAMPTZ | Intraday SEC acceptance timestamp (Institutional tier). |
ingested_at | TIMESTAMPTZ | Pipeline ingest timestamp. |
insider_name | VARCHAR | DENORMALIZED from insider_party.name (LEFT JOIN on insider_party_id at export). Inlined so the MCP Worker resolves the reporting insider's name from this tiny per-CIK partition without decoding the 406K-row insider_party dimension (the CF 1102 OOM). NULL if the party_id has no dimension match. |
insider_cik | VARCHAR | DENORMALIZED from insider_party.cik (see insider_name). |
insider_filing13 fields
| Field | Type | Description |
|---|---|---|
id | BIGINT | Surrogate primary key for the insider disclosure filing. |
accession_id | VARCHAR | Unique SEC accession ID for this disclosure filing. Children (insider_transaction, insider_ownership) FK here. |
subject_cik | VARCHAR | Issuer CIK the disclosure is about — soft reference (LEFT JOIN to entity.cik; no hard FK). |
filer_party_id | BIGINT | FK to the insider / holder in insider_party (NULL when unresolved). |
filer_cik | VARCHAR | Denormalised filer CIK for query convenience. |
form_type | VARCHAR | Form 3 / 4 / 5 / SC 13D / SC 13G / 144 (and amendments). |
filing_date | DATE | Date the disclosure was filed with the SEC. |
report_date | DATE | Event/report date the disclosure covers. |
accepted_at | TIMESTAMPTZ | Intraday SEC acceptance timestamp (Institutional tier). |
is_amendment | BOOLEAN | TRUE when this filing amends a prior disclosure. |
amendment_no | SMALLINT | Amendment sequence number (NULL for originals). |
superseded_by | VARCHAR | Accession ID of a later filing that supersedes this one, if any. |
ingested_at | TIMESTAMPTZ | Pipeline ingest timestamp. |
insider_ownership17 fields
| Field | Type | Description |
|---|---|---|
id | BIGINT | Surrogate primary key. One row per (filing, reporting person) — group filings emit multiple rows. |
accession_id | VARCHAR | FK to insider_filing.accession_id. |
filer_cik | VARCHAR | Reporting-person CIK; NULL when not SEC-registered (many disclosures carry only a name). |
filer_party_id | BIGINT | FK to insider_party.id for the reporting person (resolved via normalized_name). |
filer_name | VARCHAR | Verbatim cover-page filer name (display). |
filer_type | VARCHAR | institution | individual | group | NULL. |
subject_entity_id | VARCHAR | Issuer CIK whose stock is held — soft reference (LEFT JOIN to entity.cik). |
schedule_type | VARCHAR | SC 13D | SC 13D/A | SC 13G | SC 13G/A (long-form variants accepted). |
as_of_date | DATE | As-of date the beneficial-ownership stake is reported for. |
percent_owned | DOUBLE | Percent of the class beneficially owned. |
shares_owned | DOUBLE | Shares beneficially owned. |
sole_voting_power | DOUBLE | Shares over which the filer has sole voting power. |
shared_voting_power | DOUBLE | Shares over which the filer has shared voting power. |
sole_dispositive_power | DOUBLE | Shares over which the filer has sole dispositive power. |
shared_dispositive_power | DOUBLE | Shares over which the filer has shared dispositive power. |
accepted_at | TIMESTAMPTZ | Intraday SEC acceptance timestamp (Institutional tier). |
ingested_at | TIMESTAMPTZ | Pipeline ingest timestamp. |
insider_party6 fields
| Field | Type | Description |
|---|---|---|
id | INTEGER | Surrogate primary key for the insider / reporting person. |
cik | VARCHAR | 10-digit zero-padded SEC CIK; NULL for filers without an SEC-registered identity (rare individual reporters). |
name | VARCHAR | Reporting person or entity name as filed. |
normalized_name | VARCHAR | Uppercased + whitespace-collapsed name used to dedup CIK-less filers. |
party_type | VARCHAR | person | entity. |
ingested_at | TIMESTAMPTZ | Pipeline ingest timestamp. |
institutional_filing12 fields
| Field | Type | Description |
|---|---|---|
id | BIGINT | Surrogate primary key for the 13F filing record. |
accession_id | VARCHAR | Unique SEC accession ID for this 13F filing. institutional_holding rows FK here. |
filer_party_id | BIGINT | FK to insider_party.id (the manager). |
filer_cik | VARCHAR | Denormalised manager CIK (mirrors institutional_holding.filer_cik). |
filing_date | DATE | Date the 13F was filed. |
form_type | VARCHAR | 13F-HR | 13F-NT (and amendments). |
period_end | DATE | PERIODOFREPORT — quarter-end the holdings reflect. |
accepted_at | TIMESTAMPTZ | Intraday SEC acceptance timestamp (Institutional tier). |
is_amendment | BOOLEAN | TRUE when this 13F amends a prior filing. |
amendment_no | SMALLINT | Amendment sequence number (NULL for originals). |
superseded_by | VARCHAR | Accession ID of a later filing that supersedes this one, if any. |
ingested_at | TIMESTAMPTZ | Pipeline ingest timestamp. |
insider_footnote10 fields
| Field | Type | Description |
|---|---|---|
accession_id | VARCHAR | Join key to insider_filing.accession_id |
footnote_id | VARCHAR | F1, F2, ... (text era '(1)' -> 'F1'). |
subject_cik | VARCHAR | Issuer CIK (denormalised from insider_filing). |
footnote_text | VARCHAR | Verbatim footnote text; security identifiers redacted. |
is_truncated | BOOLEAN | TRUE when the source capped the text (the SEC data set caps at 1,023 characters). |
source_format | VARCHAR | xml | dataset | html | text. |
ingested_at | TIMESTAMPTZ | When Valuein ingested the row. |
accepted_at | TIMESTAMPTZ | DERIVED: the parent filing's SEC acceptance instant (UTC). |
accepted_at_precision | VARCHAR | DERIVED: 'exact' | 'date_only'. |
superseded_at | TIMESTAMPTZ | DERIVED: the accepted_at of the amendment that replaces the parent filing; NULL while current. |
insider_ownership_purpose10 fields
| Field | Type | Description |
|---|---|---|
accession_id | VARCHAR | Join key to insider_filing.accession_id |
subject_cik | VARCHAR | Issuer CIK whose shares the 13D concerns. |
purpose_text | VARCHAR | Whitespace-normalised Item 4 text, capped at 100,000 characters; security identifiers redacted. |
char_count | INTEGER | Length of the full item before the cap. |
is_truncated | BOOLEAN | TRUE when char_count exceeds the published text. |
source_format | VARCHAR | xml | html | text. |
ingested_at | TIMESTAMPTZ | When Valuein ingested the row. |
accepted_at | TIMESTAMPTZ | DERIVED: the parent filing's SEC acceptance instant (UTC). |
accepted_at_precision | VARCHAR | DERIVED: 'exact' | 'date_only'. |
superseded_at | TIMESTAMPTZ | DERIVED: the accepted_at of the filing that replaces the parent; NULL while current. |
institutional_other_manager14 fields
| Field | Type | Description |
|---|---|---|
accession_id | VARCHAR | Join key to institutional_filing.accession_id |
list_kind | VARCHAR | included | reporting_for. |
ordinal | SMALLINT | 1-based position in the list as filed. |
filer_cik | VARCHAR | The filing manager's CIK (denormalised). |
sequence_number | SMALLINT | 'included' lists only. |
cik | VARCHAR | The listed manager's CIK. |
form13f_file_number | VARCHAR | 028-NNNNN. |
crd_number | VARCHAR | Manager CRD number (public SEC / FINRA identifier). |
sec_file_number | VARCHAR | 801-NNNNN. |
name | VARCHAR | Manager name as filed; security identifiers redacted. |
ingested_at | TIMESTAMPTZ | When Valuein ingested the row. |
accepted_at | TIMESTAMPTZ | DERIVED: the parent filing's SEC acceptance instant (UTC). |
accepted_at_precision | VARCHAR | DERIVED: 'exact' | 'date_only'. |
superseded_at | TIMESTAMPTZ | DERIVED: the accepted_at of the restatement that replaces the parent filing; NULL while current. |
DuckDB Usage
All Parquet files load natively with DuckDB's read_parquet(). DuckDB handles ZSTD decompression automatically and supports lazy projection — only the columns you SELECT are read from disk.
-- Plain DuckDB over downloaded files, e.g.-- curl -o fact.parquet https://data.valuein.biz/v1/sample/factSELECT entity_id, period_end, numeric_value, accepted_atFROM read_parquet('fact.parquet')WHERE standard_concept = 'TotalRevenue' AND fiscal_period = 'FY' AND accepted_at <= TIMESTAMP '2023-01-01 00:00:00'LIMIT 10; -- Current S&P 500 by the latest annual revenue known on 2024-01-01.-- Membership comes from index_membership (there is no is_sp500 flag).SELECT r.symbol, fa.period_end, fa.numeric_value / 1e9 AS revenue_billionsFROM read_parquet('references.parquet') rJOIN read_parquet('index_membership.parquet') im ON im.cik = r.cikJOIN read_parquet('fact.parquet') fa ON fa.entity_id = r.cikWHERE im.index_name = 'SP500' AND im.removal_date IS NULL AND r.is_active AND r.is_primary_ticker AND fa.standard_concept = 'TotalRevenue' AND fa.fiscal_period = 'FY' AND fa.accepted_at <= TIMESTAMP '2024-01-01 00:00:00'QUALIFY ROW_NUMBER() OVER ( PARTITION BY r.cik ORDER BY fa.period_end DESC, fa.accepted_at DESC) = 1ORDER BY revenue_billions DESCLIMIT 20;ZSTD compression
All files are ZSTD-compressed. Typical compression ratio is 6–10x vs uncompressed. DuckDB decompresses transparently.
Column pruning
SELECT only the columns you need — DuckDB reads only those column chunks from the Parquet file, not the full table.
Predicate pushdown
DuckDB pushes WHERE clauses into Parquet row group statistics, skipping groups that cannot contain matching rows.
Explore the full field catalog
Search and filter all fields with SEC XBRL tag mappings, types, and example values in the interactive Data Catalog.
Index names are trademarks of their owners; Valuein is not affiliated with or endorsed by any index provider.