Built 2026-10-24T11:52:14Z from SEC's companyfacts.zip (zip dated Fri, 23 Oct 2026 23:48:08 GMT).
Rows are produced by the same code as the Datavidence Financials API.
| File | Rows | What it is |
|---|---|---|
datavidence-financials-full.parquet, datavidence-financials-full.csv.gz |
30,177,685 | Every company. Pro and Business plans. |
datavidence-financials-sample.parquet, datavidence-financials-sample.csv.gz |
173,783 | 30 companies, full history, every column. Public. |
datavidence-financials-coverage.csv |
20,501 | Every company in SEC's file and the years it covers. No values. Public. |
The Parquet and CSV files hold the same rows. The sample is cut from the same build as the full file and is not edited.
A row is one company, one field, one fiscal period, as read from one filing.
When a later filing becomes the source for the same period, that is a new row
and the old row stays. restated says whether the figure differs from the
first one filed. So the file answers "what was the number as known on a given
date", which is what a backtest needs to avoid look-ahead bias.
filed and available_from are dates, not times. A filing accepted after the market
closes becomes public that evening, so a strategy that trades at the close of
available_from would use it a few hours early: for close-of-day trading, treat a
version as usable from the next trading day. SEC's exact acceptance time is in its
filing index for each accession (acceptanceDateTime in
https://data.sec.gov/submissions/CIK##########.json).
To get the values known on date D, keep the rows where
available_from <= D and (valid_to is empty or valid_to > D).
To get today's values, keep is_latest = true.
total_revenue| value | unit | form | accession | filed | available_from | valid_to | is_original | is_latest | restated |
|---|---|---|---|---|---|---|---|---|---|
| 51750000000 | USD | 10-K | 0000078003-20-000014 | 2020-02-27 | 2020-02-27 | 2021-02-25 | true | false | false |
| 41172000000 | USD | 10-K | 0000078003-21-000038 | 2021-02-25 | 2021-02-25 | 2022-02-24 | false | false | true |
| 40905000000 | USD | 10-K | 0000078003-22-000027 | 2022-02-24 | 2022-02-24 | false | true | true |
| Column | Meaning |
|---|---|
cik |
SEC's company number (integer, no leading zeros). |
ticker |
The company's CURRENT ticker in SEC's list; empty when SEC lists none. Historical tickers are not included. After a reorganisation SEC lists the ticker under the new registrant and the earlier history stays under the old CIK with no ticker (Exxon Mobil: CIK 34088; Disney before 2019: CIK 1001039). Join on cik. |
name |
Company name in SEC's file. |
fiscal_year |
The fiscal year the period belongs to. |
period |
FY, or Q1 to Q4. |
period_start, period_end |
The period's dates. Figures at a date (the balance sheet, shares outstanding) and empty values have only period_end. |
statement |
income_statement, balance_sheet, cash_flow_statement, share_data. |
field |
The normalized line item, as in the API (list below). |
value |
The figure; empty when there is none (see empty_reason). |
unit |
The company's reporting currency (USD for most), shares, or currency per share (USD/shares). |
empty_reason |
Why value is empty: not_reported, not_applicable (the line does not exist for this kind of company, by SEC industry code) or cannot_derive. |
taxonomy, tag |
The XBRL element the figure was read from. Empty for computed and empty values. |
derived, derivation |
true when the figure is computed from other filed figures, and the figures it was computed from. |
note |
A remark on how the figure was chosen, when there is one. |
form, accession, filed |
The filing the figure comes from, and its filing date. |
available_from |
The date this version became the current answer. |
valid_to |
The date the next version replaced it; empty for the current version. |
is_original |
true for the first version filed for that period. |
is_latest |
true for the current version. |
restated |
true when this version's figure differs from the first one filed for that period. |
filing_url |
The filing's index page on EDGAR. |
income_statement: total_revenue, gross_profit, net_income, operating_income, pretax_income, income_tax_expense, interest_expensebalance_sheet: total_assets, total_liabilities, stockholders_equity, noncontrolling_interest, total_equity, temporary_equity, cash_and_equivalents, current_assets, current_liabilities, net_ppe, long_term_debt, long_term_debt_currentcash_flow_statement: operating_cash_flow, investing_cash_flow, financing_cash_flow, depreciation_amortization, capex, buybacks, dividends_paidshare_data: eps_basic, eps_diluted, diluted_shares, shares_outstandingimport pandas as pd
df = pd.read_parquet("datavidence-financials-sample.parquet")
latest = df[df.is_latest & (df.period == "FY")]
wide = latest.pivot_table(index=["cik", "ticker", "fiscal_year"],
columns="field", values="value", aggfunc="first")
Ratios are not in the file: compute them from the rows you select, so the inputs are always taken as of the same date.
last_filed in the coverage file is
the date of their last filing in the data; SEC's data does not say why a
company stopped.derived. Per-share figures and share counts
are never computed: they are empty unless a filing reports them for the quarter.Source data: U.S. Securities and Exchange Commission, EDGAR. This file is not investment advice. Terms: https://financials.datavidence.ai/terms