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.
| eligibleShare | BOOLEAN |
| eligibleOption | BOOLEAN |
| eligibleAward | BOOLEAN |
| instrument | VARCHAR |
| rowKind | VARCHAR |
| eventId | VARCHAR |
| ownerCik | VARCHAR |
| ownerName | VARCHAR |
| issuerCik | VARCHAR |
| resolvedTicker | VARCHAR |
| securityTitle | VARCHAR |
| sourceAccession | VARCHAR |
| versionAccession | VARCHAR |
| rowSk | VARCHAR |
| firstAvailableAt | TIMESTAMP |
| availableAt | TIMESTAMP |
| supersededAt | TIMESTAMP |
| coverageUnverifiedAt | TIMESTAMP |
| transactionDate | DATE |
| tickerIdentityDate | DATE |
| transactionCode | VARCHAR |
| acquiredDisposed | VARCHAR |
| shares | DOUBLE |
| pricePerShare | DOUBLE |
| totalValue | DOUBLE |
| isOfficer | BOOLEAN |
| isDirector | BOOLEAN |
| isTenPercentOwner | BOOLEAN |
| sourceArchiveKey | VARCHAR |
No matching rows. Clear the filter to see all records.
Current logical schema for lake.insider_owner_events
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.
One relation per exact owner CIK and transaction version. Select ownerCik exactly, and optionally issuerCik for a company such as Oscar Health; names/tickers resolve through the owner/company directory. Roles constrain that same owner row. As of T: firstAvailableAt <= T AND availableAt <= T AND (supersededAt IS NULL OR T < supersededAt) AND (coverageUnverifiedAt IS NULL OR T < coverageUnverifiedAt). The trailing window uses firstAvailableAt, never transactionDate or a correction's availableAt. Purchases require transactionCode P, acquiredDisposed A, shares > 0; sales S/D. Unknown corrections are unverified, never appended as fresh buys. For aggregate company totals, deduplicate by eventId before SUM/COUNT: joint filings have several owners. For distinct buyer counts, COUNT(DISTINCT ownerCik) is correct. Missing totalValue is unknown, not zero. Public followers enter at the next tradable session/price after publication, not pricePerShare. These are signals, not actual personal returns; best-strategy requests require the verified strategy leaderboard, not raw transaction dollars.
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 "eligibleShare", "eligibleOption", "eligibleAward"
FROM lake.insider_owner_events
LIMIT 20;