Columns and types
These columns come from the same versioned logical catalog used by the query validator and engine. They describe the fields you can query. Some historical rows have missing values; fields absent from older shards can return typed NULL.
| ticker | VARCHAR |
| symbol | VARCHAR |
| date | TIMESTAMP |
| name | VARCHAR |
| totalRevenue | DOUBLE |
| netIncome | DOUBLE |
| ebitda | DOUBLE |
| grossProfit | DOUBLE |
| freeCashFlow | DOUBLE |
| totalAssets | DOUBLE |
| totalLiab | DOUBLE |
| commonStockSharesOutstanding | DOUBLE |
| shortTermDebt | DOUBLE |
| longTermDebt | DOUBLE |
| operatingIncome | DOUBLE |
| operatingCashFlow | DOUBLE |
| capitalExpenditures | DOUBLE |
| cik | BIGINT |
| periodEnd | TIMESTAMP |
| filed | TIMESTAMP |
| availabilitySource | VARCHAR |
| source | VARCHAR |
| accession | VARCHAR |
| sourceFilingUrl | VARCHAR |
| quarterlyFlowProvenance | VARCHAR |
| revenueDerivation | VARCHAR |
| filedValueCorrections | VARCHAR |
| filedPeriodCorrection | VARCHAR |
| sharesOutstandingBasis | VARCHAR |
| sharesOutstandingAsOf | TIMESTAMP |
| currency | VARCHAR |
| periodStart | TIMESTAMP |
| taxonomy | VARCHAR |
| fiscalYear | BIGINT |
| fiscalPeriod | VARCHAR |
No matching rows. Clear the filter to see all records.
Current logical schema for lake.canonical_annual_financials
Coverage and timing
Point-in-time annual (10-K, 20-F, 40-F) statements from SEC filings, every revision kept. `date` is availability, not period end.
Same date semantics and same per-filing restatement behavior as `canonical_quarterly_financials`: `date` is availability, `periodEnd` is the fiscal year end, and the latest revision needs a `QUALIFY ROW_NUMBER() OVER (PARTITION BY ticker, periodEnd ORDER BY date DESC) = 1`. This is the ONLY statement source for foreign private issuers — 20-F filers file no 10-Q, so every ADR is annual-only here. The backtest engine reads this table beside the quarterly one. Coverage starts with SEC XBRL filings in 2009. Pre-2009 vendor history is not served.
Run a limited query
Use a registered API key with lake scope. Select needed columns, bind user-supplied values and restrict dates when the table has a time dimension. Query results are durable parts with a schema and manifest rather than an unbounded in-memory array.
This reference documents the schema and its meaning. Run queries in your signed-in workspace; this page does not execute SQL or show private results and datasets.
SELECT "ticker", "symbol", "date"
FROM lake.canonical_annual_financials
LIMIT 20;