Disclosed stock trades of U.S. members of Congress and senior executive-branch officials (STOCK Act periodic transaction reports and OGE Form 278-T). 35,150 records — 24,791 congressional, 10,359 executive.
| Field | Type | Congress | Exec | Description |
|---|---|---|---|---|
id | string | 100% | 100% | Stable, immutable record id (tl_<hash>). Re-pullable / citeable. |
branch | string | 100% | 100% | "congress" or "executive". |
person | string | 100% | 100% | Member of Congress or executive-branch official who filed. |
personId | string | 100% | 100% | Stable person id: bio:<Bioguide> for resolved Congress members, else name:<slug>. |
role | string | 100% | 100% | Chamber (House/Senate) for Congress; title for executive officials. |
party | string | 100% | 0% | D / R / I (Congress; resolved from the legislators index). |
state | string | 100% | 0% | Two-letter state (Congress). |
agency | string | 0% | 100% | Department/agency (executive branch). |
ticker | string | 84.6% | 55.4% | Stock ticker; null for non-listed assets (bonds, funds, private holdings). |
issuerId | string | 99.9% | 100% | Normalized issuer id: tic:<TICKER> when listed, else ast:<slug> of the asset name. |
asset | string | 99.9% | 100% | Free-text asset/company name as disclosed. |
type | string | 100% | 100% | Canonical action: buy | sell | partial_sale | exchange | other. |
typeRaw | string | 100% | 100% | Original filing transaction code, preserved for audit (e.g. p, s, s (partial), e). |
amountRange | string | 99.8% | 100% | Disclosed dollar RANGE (e.g. "$1,001 - $15,000") — not an exact figure. |
amountMin | number | 100% | 100% | Lower bound of the disclosed range. |
amountMax | number | 100% | 100% | Upper bound of the disclosed range (null for open-ended "$X +"). |
tradeDate | date | 100% | 100% | Date of the transaction (ISO). The correct anchor for timing analysis. |
disclosureDate | date | 94.8% | 96.5% | Date the filing was disclosed. Lags the trade by 30-45 days; sparse on historical rows. |
sector | string | 78.5% | 18.9% | GICS-style sector of the ticker. Populated only for single-company equities; empty for ETFs/funds (see securityType) and non-listed assets. |
securityType | string | 80.9% | 0% | Instrument class from market-data classification (EQUITY, ETF, MUTUALFUND, INDEX, …). When sector is empty, securityType=ETF/MUTUALFUND signals "sector N/A — diversified fund," not missing data. |
potentialConflict | boolean | 8.9% | 1.2% | Heuristic flag: ticker sector overlaps the person's committee/agency jurisdiction. Only fires on a real sector match, so ETFs/funds (no sector) are never flagged. Not an accusation. Percentage shown is the share flagged true. |
filingUrl | string | 99.7% | 100% | Link to the primary-source filing. |
returns | object | 79.7% | 52.7% | Forward split/dividend-adjusted stock return + market-adjusted (vs SPY) abnormal return at ~1mo/3mo, anchored on the disclosure date where available (point-in-time) else the trade date. A PROXY for trade timing, NOT the official's realized profit (execution price, exact size, and holding period are unknown). Null when no price match. |
Sector, conflict flags, and disclosure dates are populated mainly on recent data. Don’t assume historical rows carry them.
| Year | Rows | sector | disclosureDate |
|---|---|---|---|
| 2021 | 5,453 | 80.4% | 95.8% |
| 2022 | 4,449 | 75.5% | 95% |
| 2023 | 4,784 | 76.4% | 92.6% |
| 2024 | 2,780 | 72.8% | 93% |
| 2025 | 6,092 | 82.6% | 95.5% |
| 2026 | 1,233 | 81.7% | 100% |
Executive trades come directly from OGE Form 278-T filings, so they carry a disclosure date and a primary-source link. Tickers are extracted where the filing names a listed security.
| Year | Rows | disclosureDate | ticker | sector |
|---|---|---|---|---|
| 2001 | 1 | 100% | 0% | 0% |
| 2019 | 783 | 92.1% | 37.2% | 7.7% |
| 2020 | 1,418 | 93.1% | 66.9% | 23.6% |
| 2021 | 2,003 | 99.7% | 68.2% | 29% |
| 2022 | 1,297 | 92.7% | 74.1% | 14.6% |
| 2023 | 1,041 | 90.1% | 83.8% | 14.9% |
| 2024 | 599 | 99.8% | 80.3% | 9.5% |
| 2025 | 2,070 | 100% | 29.2% | 17.9% |
| 2026 | 1,147 | 100% | 19.2% | 18.1% |