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.
| accession | VARCHAR |
| infoTableSk | VARCHAR |
| availableAt | TIMESTAMP |
| availabilitySource | VARCHAR |
| issuerName | VARCHAR |
| titleOfClass | VARCHAR |
| cusip | VARCHAR |
| figi | VARCHAR |
| value | DOUBLE |
| sharesAmount | DOUBLE |
| sharesType | VARCHAR |
| putCall | VARCHAR |
| discretion | VARCHAR |
| otherManager | VARCHAR |
| votingSole | DOUBLE |
| votingShared | DOUBLE |
| votingNone | DOUBLE |
| resolvedTicker | VARCHAR |
| valueUnitSource | VARCHAR |
| rawArchiveKey | VARCHAR |
No matching rows. Clear the filter to see all records.
Current logical schema for lake.institutional_holdings
Coverage and timing
The logical view is backed by canonical manifest-resolved data. Query this name rather than guessing a physical database collection or object-storage path.
`availableAt` is the point-in-time column: filter `availableAt <= as_of`. Holdings are long-only quarterly snapshots with up to 45 days of lag — they measure accumulation, never entry timing. One row per (accession, infoTableSk). Join to `institutional_filings` on `accession` for manager and period. A RESTATEMENT amendment replaces the prior version of that manager and period when it becomes public; a NEW HOLDINGS amendment adds positions. Never overwrite the raw versions. `resolvedTicker` is the ticker this security traded under AT `availableAt`, resolved from `cusip` — join it to price tables on ticker AND date, never on ticker alone. It is NULL where no listed symbol covers that date (~35% of rows: bonds, money-market classes, foreign listings and CUSIPs no listing table knows), and a null is deliberate because a wrong ticker joins cleanly to another company. `valueUnitSource` says which evidence settled `value`'s unit: `median` the filing's own implied price, `date` SEC's rule alone, `unknown` undetermined. `cusip` remains the raw security key (normalized; source `figi` is EMPTY before 2024 and cannot bridge to a ticker across the history). `value` is **whole USD, normalized on publish**: SEC's 2022 Form 13F amendments switched the information table from thousands to whole dollars for filings from 2023-01-01, and the source column does not say which, so `SUM(value)` over the raw feed adds the two together. Filings before that date are scaled by 1000 at publish (`models/insiderDisclosure/thirteenFValueUnits.ts`). Verified after the 2026-09-23 republish: median implied price per share is $40-68 in every year 2013-2026, with no break; `sharesAmount` with `sharesType` SH/PRN. About 5.4% of rows are put/call options; other rows can include bonds, ETFs and non-common shares, so a tradable common-stock basket needs additional eligibility checks. 914k zero-position rows (0.7%, incl. placeholder CUSIP `000000000`) are preserved, not dropped — exclude explicitly (`value > 0`) when they would pollute an aggregation. For the filing's EDGAR index page, join to `institutional_filings` on `accession` and use its `sourceUrl`.
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 "accession", "infoTableSk", "availableAt"
FROM lake.institutional_holdings
LIMIT 20;