Columns and types
VARCHAR
- chamber
- docId
- sourceTransactionId
- filerFirst
- filerLast
- owner
- ownerCodeRaw
- action
- actionCodeRaw
INTEGER
- rowIndex
BOOLEAN
- partialSale
DATE
- transactionDate
Showing 12 of 36 recorded rows. The complete table is below.
Current logical schema for lake.political_trades
Inspect the complete lake.political_trades schema
Scroll sideways to compare all columns. Select a heading to sort.
| 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
Query lake.political_trades using the column names and types below. The query validator and engine use this logical catalog; a field absent from an older shard returns typed NULL.
What this table contains
Raw filed transaction rows; reports and amendments can repeat a trade. Prefer political_trade_events for counts, signals, rankings, or performance.
Inspect a raw filed trade
Query example, not executed here. The dates and filters define the proposed research scope; returned rows and current coverage must be checked in your workspace.
The amount is a disclosed range, and transactionDate precedes public availability in many records. Reports can repeat or amend a trade; use political_trade_events for counts, signals or performance.
SELECT chamber, docId, rowIndex, memberId, displayName, availableAt,
transactionDate, action, owner, printedTicker, resolvedTicker, amountLow, amountHigh
FROM lake.political_trades
WHERE availableAt >= TIMESTAMP '2026-09-01'
AND availableAt < TIMESTAMP '2026-09-19'
ORDER BY availableAt, chamber, docId, rowIndex
LIMIT 20;Submit the political_trades example and read back its parts
Run the exact SQL through the Python SDK
Save this page's SQL as query.sql and the runner below as query.py. Use a registered key with lake scope from Developers. The runner submits the displayed political_trades query once, saves its operation, waits on that same ID, saves the returned manifest and downloads its Parquet parts.
This submission has not been executed for the reference page. Inspect the SQL, dates and resource limits before running it. Reuse the request key only for this identical SQL and limits; use a new key when changing them.
python3 -m pip install nexustrade==1.42.0
export NEXUSTRADE_API_KEY="YOUR_LAKE_SCOPED_KEY"
python3 query.py
import json
from pathlib import Path
from nexustrade import NexusTradeClient
# Save the SQL displayed on this page as query.sql.
sql = Path("query.sql").read_text()
client = NexusTradeClient.from_environment()
operation = client.create_lake_query(
{"query": sql, "limits": {"timeoutSeconds": 30, "maxRows": 50,
"maxResultBytes": 1048576}},
idempotency_key="reference-political_trades-20261012-v1",
)
Path("query-operation.json").write_text(json.dumps(operation, indent=2))
finished = client.wait_for_lake_query(operation["id"])
if finished["status"] != "completed":
raise RuntimeError(finished)
manifest = client.get_lake_query_manifest(operation["id"])["result"]
Path("query-manifest.json").write_text(json.dumps(manifest, indent=2))
print(json.dumps(manifest, indent=2))
for part in manifest["parts"]:
Path(f"query-{part['part']}.parquet").write_bytes(
client.download_lake_query_part(operation["id"], part["part"], max_bytes=1048576)
)
Coverage and timing
Inspect source coverage and timing before using the rows
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`.
No comments yet.