← All Articles
House and Senate disclosure papers transforming into a clean open database beside the U.S. Capitol.

NexusTrade · Open Data

Free historical congressional stock trading data. House and Senate, 2012 to today.

One command turns 10,809 House and Senate filings into a database you can query on your laptop.

Austin Starks Austin Starks ✦ Founder, NexusTrade ✦ September 20, 2026 ✦ 8 min read

Download the dataset

Nancy Pelosi's trades are public. Every other member of Congress files disclosures too. The hard part is turning more than a decade of House and Senate filings into data you can actually search. This free download puts 183,675 reported transactions from 10,809 official filings in one place, covering 2012 through today.

Congressional Stock Trades on Hugging Face
Download the Parquet files without an account, paid API key, or web scraper. The repository also contains the audit receipt and current freshness metadata.
huggingface.co/datasets/austin-starks/congressional-stock-trades →
Shell · download, verify, and build SQLite
npx congressional-disclosures@latest download --sqlite
Terminal demonstration of the congressional-disclosures command downloading the audited Parquet snapshot, creating SQLite, and running a query.
One command fetches the audited snapshot, verifies it, and leaves you with a local SQLite database ready for ordinary SQL.

When it finishes, you have a local SQLite database with the full House and Senate history, ready to open and query. Run the command again later to pull in any updates.

You do not need Docker, Python, DuckDB, an API key, OCR credentials, or a model provider. SQLite is the easiest starting point. If you already use notebooks, dataframes, or a warehouse, omit --sqlite to download the Parquet files instead.

Shell · verify the local database
npx congressional-disclosures@latest status \
  --db ./congressional-stock-trades/congressional-disclosures.sqlite
Reported transaction rows183,675
Reconciled event versions179,004
Visible filings with named failures24

Snapshot checked September 20, 2026.

The free mirror and NexusTrade use the same audited lake. Publication follows a successful integrity audit rather than a separate extraction.

What is included

Public dataset configurations
TableGrainUse it for
political_filingsOne official documentCoverage, provenance, extraction failures, and audits
political_tradesOne printed transaction rowInspecting exactly what a filing reported
political_trade_eventsOne version of an economic eventCounts, amendments, point-in-time research, and signals

Use political_trade_events for most analysis. Congressional records can repeat the same transaction in later reports or amendments. The event table consolidates repeated reports and preserves each amendment as a version, so a count does not silently turn one trade into two.

Each row retains the chamber, filer, owner, action, transaction date, public-availability time, asset description, instrument type, ticker resolution, disclosed lower and upper amount bounds, source document, official sourceUrl, and amendment lineage.

Filingone document Trade rowwhat was printed Event versionresearch grain provenance stays attached while amendments remain point-in-time
The three tables are related grains, not duplicate exports. Use filings for coverage, rows for provenance, and event versions for analysis.

Check freshness automatically

The dataset publishes a snapshot.json file alongside the Parquet data. It records current row counts, audit results, latest timestamps, manifest identities, object ETags, file sizes, and SHA-256 checksums.

The disclosure refresh targets a 20-hour interval, or roughly daily. After the internal lake publishes and passes its integrity audit, the public mirror updates the snapshot and any changed yearly shards. A failed downstream upload leaves the previous verified snapshot intact and retries on the next pass.

Shell · query the live receipt
curl -fsSL \
  https://huggingface.co/datasets/austin-starks/congressional-stock-trades/raw/main/snapshot.json \
  | jq '{checked: .lastSourceCheckAt, freshness: .freshness, totals: .totals, audit: .audit.passed}'

As of this draft, the latest public-availability timestamp is 2026-09-18T03:59:59.999Z. The lake was most recently processed at 2026-09-20T01:42:40.295Z, and the public source check completed at 2026-09-20T17:04:01.191Z.

The figures in this article are timestamped so the prose remains auditable. Query the public JSON for the current values. It updates automatically after each successful disclosure refresh and verified dataset publication.

Query it locally

Hugging Face can load the reconciled event table directly:

Python
from datasets import load_dataset

events = load_dataset(
    "austin-starks/congressional-stock-trades",
    "political_trade_events",
    split="train",
)

pelosi = events.filter(
    lambda row: row["filerLast"].lower() == "pelosi"
)

The npm package has two paths. Use download --sqlite when you want the ready-made audited snapshot as a local database without API keys or extraction infrastructure. Use sync when you want to build and maintain SQLite from the official filings yourself:

Shell · download SQLite or own the full extraction
# Fast path: audited public data as SQLite
npx congressional-disclosures@latest download --sqlite

# Ownership path: extract the official filings into SQLite
npx congressional-disclosures@latest doctor

npx congressional-disclosures@latest sync \
  --db ./congress.db \
  --since 2024 \
  --accept-senate-terms

npx congressional-disclosures@latest audit --db ./congress.db

The first command creates ./congressional-stock-trades/congressional-disclosures.sqlite. This query finds the five tickers that appear most often in Pelosi's currently active disclosed events:

SQLite · top disclosed tickers
SELECT ticker, COUNT(*) AS disclosed_events
FROM political_trade_events
WHERE lower(filer_last) = 'pelosi'
  AND superseded_at IS NULL
  AND ticker IS NOT NULL
GROUP BY ticker
ORDER BY disclosed_events DESC, ticker
LIMIT 5;
Result from the verified September 20, 2026 snapshot
TickerDisclosed events
AAPL34
NVDA15
V14
AMZN13
AB9

These counts describe disclosure events in the current snapshot. They are not share counts, dollar totals, or investment returns.

The package's model and OCR providers can cost money when you build from the source filings. Downloading the already-published Hugging Face dataset is free.

NexusTrade uses the same data as a research and portfolio system

The download is for people who want the rows. NexusTrade uses the same audited political lake to answer questions, screen securities, generate portfolio variants, backtest the rules, optimize them, and deploy the version you choose.

That means you can move from “which politicians were consistently strong?” to several Pelosi-inspired portfolios without writing the ingestion, market-price joins, or portfolio engine yourself.

The free dataset stays free.

NexusTrade is the layer for turning it into repeatable research and a portfolio you can test.

Turn congressional disclosures into a tested portfolio
Generate political-trading portfolio variants, combine them with quality or momentum, compare historical results, and deploy from the same workflow.
nexustrade.io/register →

Rebuild it from official sources

The public congressional-disclosures repository owns House and Senate discovery, document downloads, PDF decryption, scan detection, OCR, independent extraction reads, disagreement reconciliation, ticker resolution, amendments, resumable receipts, and integrity checks.

The CLI gives an individual researcher working defaults. The TypeScript library exposes the same pieces as replaceable boundaries for an application that already has its own model transport, OCR provider, cache, scheduler, or object store.

The public dataset is a mirror of the manifest-selected production lake, not a second extraction. Each successful refresh publishes internally, runs the integrity audit, and then updates Hugging Face. That keeps the free download and the data used by NexusTrade on the same audited rows.

Read or fork the congressional-disclosures pipeline
Inspect discovery, downloads, OCR, reconciliation, SQLite storage, receipts, and the integrity audit in the public repository.
github.com/austin-starks/congressional-disclosures →

Use restriction

Congressional financial disclosures are public records, but 5 U.S.C. 13107(c) restricts some uses. Read the dataset's data-use notice before redistributing or commercializing the records. The extraction software is separately MIT-licensed.

Use the rows yourself, or turn them into a portfolio

Download the verified public snapshot for free. When you want the research, testing, and deployment layer, open NexusTrade.

Build in NexusTrade Download the dataset

Build the strategy this article describes

Create a free account to backtest ideas against market history, inspect the risk, and deploy to paper or live markets when you're ready.

or

Free to browse. No credit card required.

Discussion

Sign in or create a free account to join the discussion.

No comments yet.