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.
| chamber | VARCHAR |
| docId | VARCHAR |
| rowIndex | INTEGER |
| sourceTransactionId | VARCHAR |
| filerFirst | VARCHAR |
| filerLast | VARCHAR |
| owner | VARCHAR |
| ownerCodeRaw | VARCHAR |
| action | VARCHAR |
| partialSale | BOOLEAN |
| actionCodeRaw | VARCHAR |
| transactionDate | DATE |
| notificationDate | DATE |
| filingDate | DATE |
| availableAt | TIMESTAMP |
| availabilitySource | VARCHAR |
| assetDescription | VARCHAR |
| printedTicker | VARCHAR |
| resolvedTicker | VARCHAR |
| resolutionStatus | VARCHAR |
| resolutionReason | VARCHAR |
| assetTypeCode | VARCHAR |
| assetTypeLabel | VARCHAR |
| amountBracket | VARCHAR |
| amountLow | DOUBLE |
| amountHigh | DOUBLE |
| capGainsOver200 | BOOLEAN |
| comment | VARCHAR |
| filingStatus | VARCHAR |
| sourceUrl | VARCHAR |
| rawArchiveKey | VARCHAR |
| rawSha256 | VARCHAR |
| filerKey | VARCHAR |
| memberId | VARCHAR |
| displayName | VARCHAR |
| identitySource | VARCHAR |
No matching rows. Clear the filter to see all records.
Current logical schema for lake.political_trades
Coverage and timing
Raw filed transaction rows; reports and amendments can repeat a trade. Prefer political_trade_events for counts, signals, rankings, or performance.
`availableAt` is the point-in-time column: filter `availableAt <= as_of`. `transactionDate` is when the trade happened, often weeks before it was disclosed; it is never availability. One row per transaction printed on a filing whose extraction succeeded. A member can report the same trade again or amend it, so one trade can appear in several rows. Count or sum trades in `political_trade_events`. `action` is `purchase`, `sale`, `exchange` or `unmarked` (the form marked no type), and `partialSale` is true only on a partial sale. `owner` is `self`, `spouse`, `joint`, `dependent_child` or `not_indicated`. Each row carries its filing's identity (`memberId`, `displayName`, `identitySource`), described under `political_filings`. Group politicians by `memberId`, never by `filerFirst`/`filerLast`. Rows with `identitySource` `non_member` are filed by staff or candidates and have no events. `amountLow` and `amountHigh` bound the reported amount range and are NULL where the form gives no bound; `amountBracket` is the range as reported. `sourceUrl` is the original government page or PDF of the filing the row was printed on (House Clerk PDF or Senate eFD report); `rawArchiveKey` and `rawSha256` name the exact archived copy that was read. `printedTicker` is the ticker as printed on the form, kept as printed. A row that printed none is resolved by name: `resolutionStatus` is `resolved` with `resolvedTicker` when two reads named the ticker and it was confirmed against price data and the registered issuer, `not_public_equity` for bonds, mutual funds, government debt and private holdings, and `unresolved` with a `resolutionReason` otherwise. Rows with a printed ticker have `resolutionStatus` `printed`.
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 "chamber", "docId", "rowIndex"
FROM lake.political_trades
LIMIT 20;