Data Catalog
What's in the dataset
Browse all available fields, SEC XBRL tags, and table schemas. Every field you can query via API or SDK.
105M+
Total Facts
12,000+
Tickers
1994–Now
History
8
Tables
Schema Browser
| Field Name | Type | Table | Description | SEC Tag |
|---|---|---|---|---|
cik | VARCHAR | entity | SEC Central Index Key — 10-digit unique company identifier | dei:EntityCentralIndexKey |
name | TEXT | entity | Legal registered company name | dei:EntityRegistrantName |
lei | VARCHAR | entity | Legal Entity Identifier (ISO 17442 20-character code) | — |
industry | TEXT | entity | Industry classification description | — |
sector | VARCHAR | entity | Broad market sector (e.g. Technology, Healthcare, Financials) | — |
sic_code | VARCHAR | entity | Standard Industrial Classification code (4-digit) | dei:EntitySICCode |
fiscal_year_end | VARCHAR | entity | Fiscal year end as MMDD (e.g. 1231 = December 31) | — |
location | TEXT | entity | Company headquarters location (city, state, country) | — |
website | TEXT | entity | Company primary website URL | — |
ceo | TEXT | entity | Chief Executive Officer name at most recent filing | — |
founded_year | SMALLINT | entity | Year the company was founded | — |
description | TEXT | entity | Company business description extracted from SEC filings | — |
status | VARCHAR | entity | Entity status: ACTIVE, INACTIVE, or DELISTED. Filter status != 'ACTIVE' to include all non-active companies | — |
entity_type | TEXT | entity | SEC-defined filer category (e.g. Non-accelerated Filer, Large Accelerated Filer) | dei:EntityFilerCategory |
ein | TEXT | entity | Employer Identification Number (IRS tax ID) | — |
owner_org | TEXT | entity | Parent or controlling organization name | — |
investor_website | TEXT | entity | Investor relations website URL | — |
category | TEXT | entity | SEC registrant category | — |
state_of_incorporation | TEXT | entity | US state or country of incorporation | dei:EntityIncorporationStateCountryCode |
phone | TEXT | entity | Company contact phone number | dei:EntityContactTelephoneNumber |
address | TEXT | entity | Principal registered business address | — |
last_seen_at | DATE | entity | Date this entity last appeared in any SEC filing | — |
ingested_at | TIMESTAMPTZ | entity | Timestamp when Valuein first ingested this entity record | — |
id | INTEGER | security | Surrogate primary key for the security record | — |
entity_id | VARCHAR | security | Foreign key to entity.cik — the issuing company | dei:EntityCentralIndexKey |
symbol | VARCHAR | security | Exchange ticker symbol | dei:TradingSymbol |
exchange | TEXT | security | Stock exchange name (e.g. NASDAQ, NYSE) | — |
mic | VARCHAR | security | Market Identification Code (ISO 10383) | — |
valid_from | DATE | security | SCD Type 2 start date — when this ticker became active on this exchange | — |
valid_to | DATE | security | SCD Type 2 end date — when this ticker was retired. NULL means currently active | — |
is_active | BOOLEAN | security | Derived: TRUE when valid_to IS NULL. Use to filter current tickers only | — |
figi | VARCHAR | security | Financial Instrument Global Identifier at share-class level (OpenFIGI) | — |
composite_figi | VARCHAR | security | Composite FIGI at the exchange level | — |
share_class_figi | VARCHAR | security | Share class FIGI | — |
security_type | VARCHAR | security | Instrument type (e.g. Common Stock, ADR, ETF) | — |
market_sector | VARCHAR | security | FIGI market sector classification | — |
figi_ticker | VARCHAR | security | Ticker symbol as recorded in the OpenFIGI registry | — |
figi_name | TEXT | security | Security name from the OpenFIGI registry | — |
figi_exch_code | VARCHAR | security | Exchange code from the OpenFIGI registry | — |
ingested_at | TIMESTAMPTZ | security | Timestamp when Valuein first ingested this security record | — |
accession_id | VARCHAR | filing | SEC EDGAR accession number — unique filing identifier (format: XXXXXXXXXX-YY-ZZZZZZ) | — |
entity_id | VARCHAR | filing | Foreign key to entity.cik — the filing company | dei:EntityCentralIndexKey |
filing_date | DATE | filing | Date the SEC received and accepted the filing. Use this for PIT backtest filters — not report_date | — |
form_type | VARCHAR | filing | Filing type: 10-K (annual), 10-Q (quarterly), 20-F (foreign annual), 8-K (current report), etc. | dei:DocumentType |
filing_url | TEXT | filing | Full URL to the filing document on SEC EDGAR | — |
is_amendment | BOOLEAN | filing | TRUE if this is an amended filing (e.g. 10-K/A, 10-Q/A) | — |
amendment_no | SMALLINT | filing | Amendment sequence number — 0 for the original filing, 1 for the first amendment, etc. | — |
report_date | DATE | filing | Fiscal period end date covered by this filing. Using this as a PIT filter introduces look-ahead bias — use filing_date instead | dei:DocumentPeriodEndDate |
items | TEXT[] | filing | Array of 8-K item numbers reported (e.g. ['1.01', '9.01']). NULL for non-8-K filings | — |
accepted_at | TIMESTAMPTZ | filing | Exact timestamp the SEC accepted the filing (millisecond precision). Source for fact.knowledge_at | — |
ingested_at | TIMESTAMPTZ | filing | Timestamp when Valuein ingested this filing record | — |
entity_id | VARCHAR | fact | Foreign key to entity.cik | dei:EntityCentralIndexKey |
accession_id | VARCHAR | fact | Foreign key to filing.accession_id | — |
concept | TEXT | fact | Raw XBRL tag as filed by the company (e.g. us-gaap:Revenues). Use standard_concept for cross-company comparisons | xbrl:concept |
standard_concept | VARCHAR | fact | Canonical normalized concept label (e.g. TotalRevenue). Maps 10K+ raw XBRL tags to ~150 standard concepts for cross-company queries | — |
priority | SMALLINT | fact | Standardization priority — lower value = higher confidence in the concept mapping | — |
label | TEXT | fact | Human-readable label from the company's XBRL filing context | — |
value | TEXT | fact | Raw string value as filed in the XBRL document | — |
numeric_value | FLOAT | fact | Parsed numeric value. NULL for non-numeric or string facts | — |
unit | VARCHAR | fact | Unit of measure: USD, shares, pure (dimensionless ratio), etc. | — |
period_start | DATE | fact | Reporting period start date. NULL for instant/point-in-time facts (e.g. balance sheet items) | — |
period_end | DATE | fact | Reporting period end date. Table is range-partitioned on this column by year | — |
fiscal_year | SMALLINT | fact | Fiscal year number (e.g. 2024) | — |
fiscal_period | VARCHAR | fact | Fiscal period label: FY (annual), Q1, Q2, Q3, Q4 | — |
frame | VARCHAR | fact | XBRL frame identifier linking this fact to a specific reporting period context | — |
statement_type | VARCHAR | fact | Financial statement category: income, balance_sheet, cash_flow, dei, notes | — |
accuracy_score | REAL | fact | Standardization confidence: 1.0 = manual/exact, 0.85 = taxonomy match, 0.55 = keyword fallback, 0.0 = unmapped. Use >= 0.70 for analytics | — |
confidence_score | FLOAT | fact | Composite data quality confidence metric (0.0–1.0) | — |
is_negative | BOOLEAN | fact | TRUE if the originally reported value was negative | — |
is_audited | BOOLEAN | fact | TRUE if this fact comes from an audited annual filing (10-K or 20-F) | — |
is_estimated | BOOLEAN | fact | TRUE if the value is estimated rather than directly reported | — |
data_quality | TEXT | fact | Data quality flag: reported, estimated, or provisional | — |
knowledge_at | TIMESTAMPTZ | fact | Point-in-time timestamp — when this fact became publicly known via SEC EDGAR. Filter knowledge_at <= trade_date for look-ahead-free backtests | — |
ingested_at | TIMESTAMPTZ | fact | Timestamp when Valuein ingested this fact | — |
accounting_standard | VARCHAR | fact | Accounting framework: US-GAAP or IFRS | — |
reporting_currency | VARCHAR | fact | ISO 4217 currency code for the reported value (e.g. USD, EUR, GBP) | — |
period_span_days | INTEGER | fact | Number of calendar days spanned by this reporting period | — |
is_cumulative | BOOLEAN | fact | TRUE if the value is cumulative year-to-date rather than for the period in isolation (common in 10-Q cash flow statements) | — |
derived_quarterly_value | FLOAT | fact | Quarterly value derived by subtracting prior YTD periods. Use COALESCE(derived_quarterly_value, numeric_value) for single-quarter cash flow metrics | — |
derivation_type | VARCHAR | fact | Method used to derive the quarterly value: ytd_subtraction, direct, or null if not derived | — |
derivation_uncertain | BOOLEAN | fact | TRUE if the quarterly derivation has reduced confidence due to fiscal period ambiguity | — |
id | BIGINT | valuation | Surrogate primary key for the valuation record | — |
entity_id | VARCHAR | valuation | Foreign key to entity.cik — the company being valued | dei:EntityCentralIndexKey |
security_id | INTEGER | valuation | Foreign key to security.id — the specific security valued (NULL if company-level only) | — |
valuation_date | DATE | valuation | Date the valuation was computed, based on the most recent available financials at that point in time | — |
model_type | VARCHAR | valuation | Valuation model used: dcf (Discounted Cash Flow) or ddm (Dividend Discount Model) | — |
model_version | VARCHAR | valuation | Version string of the valuation model algorithm (e.g. 1.0) | — |
intrinsic_value | NUMERIC | valuation | Total estimated intrinsic equity value in USD | — |
per_share_value | NUMERIC | valuation | Intrinsic value per diluted share in USD | — |
margin_of_safety | NUMERIC | valuation | Percentage discount of current market price to intrinsic value. Positive = undervalued, negative = overvalued | — |
valuation_label | VARCHAR | valuation | Summary label derived from margin of safety: undervalued, fairvalued, or overvalued | — |
base_earnings | NUMERIC | valuation | Base earnings or free cash flow used as the primary model input (USD) | — |
growth_rate | NUMERIC | valuation | Near-term earnings or FCF growth rate assumption applied in the high-growth stage | — |
terminal_rate | NUMERIC | valuation | Perpetuity terminal growth rate assumption for the Gordon Growth terminal value calculation | — |
discount_rate | NUMERIC | valuation | Discount rate applied: WACC for DCF models, required return for DDM models | — |
growth_years | INTEGER | valuation | Number of years modelled in the explicit high-growth stage before applying terminal value | — |
terminal_years | INTEGER | valuation | Number of years used to estimate the terminal value horizon | — |
shares_outstanding | BIGINT | valuation | Diluted shares outstanding used to convert total equity value to a per-share figure | — |
current_price | NUMERIC | valuation | Market price per share at the valuation date (USD) — used to compute margin of safety | — |
base_dividend | NUMERIC | valuation | Annual dividend per share used as the DDM base input (USD) | — |
dividend_growth_rate | NUMERIC | valuation | Expected long-term dividend growth rate used in the DDM Gordon Growth Model | — |
payout_ratio | NUMERIC | valuation | Dividend payout ratio (dividends ÷ earnings) used in DDM calibration | — |
data_quality | VARCHAR | valuation | Quality of the inputs used: reported (direct from filings), estimated (derived), or provisional (incomplete data) | — |
source_period | VARCHAR | valuation | Fiscal period used as the model input (e.g. FY2024, TTM-2024Q3) | — |
assumptions | JSONB | valuation | JSON overflow field for additional model parameters and sensitivity analysis inputs | — |
created_at | TIMESTAMPTZ | valuation | Timestamp when this valuation record was first computed | — |
updated_at | TIMESTAMPTZ | valuation | Timestamp when this valuation record was last recomputed (ON CONFLICT DO UPDATE) | — |
standard_concept | TEXT | taxonomy_guide | Canonical concept name (primary key) — matches fact.standard_concept for joins | — |
human_name | TEXT | taxonomy_guide | Human-readable display name for the concept (e.g. Total Revenue) | — |
definition | TEXT | taxonomy_guide | Plain-English definition of what this financial concept measures | — |
unit_type | VARCHAR | taxonomy_guide | Expected unit of measure: monetary, shares, ratio, pure, etc. | — |
balance_type | VARCHAR | taxonomy_guide | Accounting balance type: debit or credit | — |
source_reference | TEXT | taxonomy_guide | US GAAP taxonomy reference identifier for this concept | — |
level | SMALLINT | taxonomy_guide | Hierarchy level in the taxonomy structure (lower = higher in the hierarchy) | — |
statement_type | VARCHAR | taxonomy_guide | Financial statement this concept belongs to: income, balance_sheet, cash_flow, dei, notes | — |
display_order | SMALLINT | taxonomy_guide | Preferred display order within its statement type for financial statement presentation | — |
is_active | BOOLEAN | taxonomy_guide | TRUE if this concept is actively used in the current GAAP taxonomy | — |
created_at | TIMESTAMPTZ | taxonomy_guide | Timestamp when this concept was added to the taxonomy guide | — |
updated_at | TIMESTAMPTZ | taxonomy_guide | Timestamp when this concept definition was last updated | — |
gaap_ifrs_comparable | BOOLEAN | taxonomy_guide | TRUE if this concept has a directly comparable IFRS equivalent | — |
id | INTEGER | index_membership | Surrogate primary key | — |
security_id | INTEGER | index_membership | Foreign key to security.id — the index constituent | — |
index_name | VARCHAR | index_membership | Index identifier (e.g. SP500, RUSSELL2000, MSCI_US) | — |
start_date | DATE | index_membership | Date the security was added to the index | — |
end_date | DATE | index_membership | Date the security was removed from the index. NULL means it is currently a member | — |
cik | VARCHAR | references | SEC Central Index Key — 10-digit unique company identifier (from entity) | dei:EntityCentralIndexKey |
name | TEXT | references | Legal registered company name (from entity) | dei:EntityRegistrantName |
sector | TEXT | references | Broad market sector (from entity) | — |
industry | TEXT | references | Industry classification description (from entity) | — |
sic_code | VARCHAR | references | Standard Industrial Classification code 4-digit (from entity) | dei:EntitySICCode |
status | VARCHAR | references | Entity status: ACTIVE, INACTIVE, or DELISTED (from entity) | — |
entity_type | VARCHAR | references | SEC-defined filer category (from entity) | — |
security_id | INTEGER | references | Surrogate PK of the security record (from security) | — |
symbol | VARCHAR | references | Exchange ticker symbol (from security) | dei:TradingSymbol |
exchange | VARCHAR | references | Stock exchange name e.g. NASDAQ, NYSE (from security) | — |
mic | VARCHAR | references | Market Identification Code ISO 10383 (from security) | — |
valid_from | DATE | references | SCD Type 2 start date — when this ticker became active (from security) | — |
valid_to | DATE | references | SCD Type 2 end date — NULL means currently active (from security) | — |
is_active | BOOLEAN | references | TRUE when valid_to IS NULL — use to filter current tickers only (from security) | — |
figi | VARCHAR | references | Financial Instrument Global Identifier share-class level (from security) | — |
composite_figi | VARCHAR | references | Composite FIGI at the exchange level (from security) | — |
share_class_figi | VARCHAR | references | Share class FIGI (from security) | — |
is_sp500 | BOOLEAN | references | TRUE if the security is currently an S&P500 constituent (from index_membership) | — |
Showing 143 of 143 fields
Example Queries
Copy-ready SQL to get started. Works with DuckDB, Postgres, and the Python SDK.
10-Year Revenue Trend for AAPL
Fetch annual revenue for the past 10 years, point-in-time accurate.
SELECT f.filing_date,
f.report_date,
fa.numeric_value / 1e9 AS revenue_billions
FROM filing f
JOIN references r ON f.entity_id = r.cik
JOIN fact fa ON fa.accession_id = f.accession_id
WHERE r.symbol = 'AAPL'
AND r.is_active = TRUE
AND fa.standard_concept = 'Revenues'
AND f.form_type = '10-K'
ORDER BY f.filing_date DESC
LIMIT 10;Debt-to-Equity Ratio — S&P500 Tech
Screen for leverage across the technology sector using the latest annual filing.
SELECT
r.symbol,
r.name AS company_name,
r.sector,
f.filing_date AS annual_filing_date,
debt.numeric_value / 1e9 AS long_term_debt_billions,
equity.numeric_value / 1e9 AS equity_billions,
debt.numeric_value / NULLIF(equity.numeric_value, 0) AS debt_to_equity
FROM references r
JOIN LATERAL (
SELECT accession_id, filing_date
FROM filing
WHERE entity_id = r.cik AND form_type = '10-K'
ORDER BY filing_date DESC
LIMIT 1
) f ON true
JOIN fact debt ON debt.accession_id = f.accession_id
AND debt.standard_concept = 'LongTermDebt'
JOIN fact equity ON equity.accession_id = f.accession_id
AND equity.standard_concept = 'StockholdersEquity'
WHERE r.is_sp500 = TRUE
AND r.is_active = TRUE
AND r.sector ILIKE '%technology%'
ORDER BY debt_to_equity DESC NULLS LAST;Free Cash Flow — Latest Quarter (S&P500)
Calculate FCF (operating cash flow minus capex) across the S&P500.
SELECT
r.symbol,
r.name AS company_name,
r.sector,
f.filing_date AS latest_quarter,
COALESCE(ocf.derived_quarterly_value, ocf.numeric_value) / 1e6 AS ocf_millions,
ABS(COALESCE(capex.derived_quarterly_value, capex.numeric_value)) / 1e6 AS capex_millions,
(COALESCE(ocf.derived_quarterly_value, ocf.numeric_value)
- ABS(COALESCE(capex.derived_quarterly_value, capex.numeric_value))) / 1e6 AS fcf_millions
FROM references r
JOIN LATERAL (
SELECT accession_id, filing_date
FROM filing
WHERE entity_id = r.cik AND form_type = '10-Q'
ORDER BY filing_date DESC
LIMIT 1
) f ON true
JOIN fact ocf ON ocf.accession_id = f.accession_id
AND ocf.standard_concept = 'NetCashProvidedByUsedInOperatingActivities'
JOIN fact capex ON capex.accession_id = f.accession_id
AND capex.standard_concept = 'PaymentsToAcquirePropertyPlantAndEquipment'
WHERE r.is_sp500 = TRUE
AND r.is_active = TRUE
ORDER BY fcf_millions DESC NULLS LAST
LIMIT 20;Intrinsic Value Screen — S&P500
Screen S&P500 companies by DCF intrinsic value vs current price (margin of safety).
SELECT
r.symbol,
r.name AS company_name,
r.sector,
v.valuation_date,
v.model_type,
v.per_share_value,
v.current_price,
v.margin_of_safety,
v.valuation_label
FROM valuation v
JOIN references r ON v.entity_id = r.cik
WHERE r.is_sp500 = TRUE
AND r.is_active = TRUE
AND v.model_type = 'dcf'
AND v.valuation_date = (
SELECT MAX(valuation_date) FROM valuation WHERE entity_id = v.entity_id
)
AND v.per_share_value IS NOT NULL
ORDER BY v.margin_of_safety DESC NULLS LAST
LIMIT 20;Ready to query 105M+ facts?
Get a free API key and start querying in 60 seconds.