How to Track Congressional Stock Trades Before They Move the Market
The edge in tracking congressional stock trades isn't about getting information before it's public—it's about getting public information before everyone else does. While the STOCK Act mandates disclosure within 30-45 days, most investors wait weeks before manually checking what Congress bought. By then, the alpha has evaporated.
This guide breaks down exactly how to track congressional trades systematically: where disclosures are published, how to parse them automatically, which data fields matter most, and what tools professional investors use to act on this information before the crowd catches on.
Understanding the Congressional Trade Disclosure System
Before you can track trades, you need to understand how the disclosure infrastructure works. The system is more fragmented than most investors realize—House and Senate use completely different databases, file formats vary wildly, and disclosure timing depends on individual members' compliance habits.
The Two Official Sources
Congressional trade disclosures are split across two separate government systems:
U.S. Senate: Financial Disclosure Reports via the eFD system at efdsearch.senate.gov/search/
This bifurcation is the first challenge. You can't track all of Congress from a single source—you need to monitor both systems separately, each with its own quirks and data formats.
House PTR Filings: PDF Hell
House members file Periodic Transaction Reports as scanned PDFs. Yes, in 2026, we're still dealing with image-based PDFs that require OCR to parse. The House Clerk's office publishes these filings irregularly—sometimes daily, sometimes in weekly batches.
Each PTR contains:
- Member name and congressional district
- Transaction date (when the trade actually occurred)
- Company name (often misspelled or abbreviated)
- Ticker symbol (sometimes missing or incorrect)
- Transaction type: Purchase, Sale (Full), Sale (Partial), or Exchange
- Amount range: $1,001-$15,000 | $15,001-$50,000 | $50,001-$100,000 | $100,001-$250,000 | $250,001-$500,000 | $500,001-$1,000,000 | Over $1,000,000
- Asset type: Stock, Bond, Stock Option, Corporate Bond, Municipal Security, etc.
The challenge: extracting this structured data from inconsistent PDFs. Some members use digital filing systems that produce clean text-based PDFs. Others submit handwritten forms that are scanned, producing image PDFs that require OCR with 5-10% error rates.
Senate eFD System: Slightly Better, Still Broken
The Senate Electronic Financial Disclosure system is marginally more modern. Senators file reports electronically, and the system outputs structured XML data—in theory.
In practice, the Senate eFD search interface is a nightmare:
- No bulk export functionality (you must search one member at a time)
- Rate limiting that blocks automated scraping
- Inconsistent ticker symbol formatting
- Delayed publication (reports often sit "pending review" for weeks)
The Senate does provide a JSON API for programmatic access, but it's throttled to 100 requests per hour and requires parsing complex nested objects. Most retail investors give up at this point.
Method 1: Manual Tracking (Free but Slow)
If you're just starting out and want to understand how the system works before investing in tools, manual tracking is educational—but inefficient.
Step-by-Step Manual Process
For House Members:
- Visit disclosures-clerk.house.gov
- Filter for "Periodic Transaction Reports"
- Download PDFs for recent filings (check daily for new reports)
- Manually extract trade data into a spreadsheet
- Cross-reference company names against ticker symbols using Yahoo Finance or similar
- Note the filing date vs. transaction date (the lag tells you how stale the information is)
For Senate Members:
- Go to efdsearch.senate.gov/search/
- Select "Periodic Transaction Report" from the report type dropdown
- Search by senator name or browse all recent filings
- Click into individual reports to view trade details
- Copy data into your tracking spreadsheet
Expected time investment: 2-3 hours per week to stay current with all 535 members. Most people abandon this approach after a month.
The Fatal Flaw of Manual Tracking
By the time you manually process a week's worth of filings, compile the data, and decide which trades to follow, the market has already moved. Research from the SEC Division of Economic and Risk Analysis shows that 70% of post-disclosure alpha occurs in the first 7 days after filing. If you're manually tracking weekly, you're capturing less than 30% of the available edge.
Method 2: Free Aggregator Tools (Delayed but Structured)
Several free and freemium services parse congressional disclosures automatically and present them in searchable databases. These eliminate the manual PDF parsing but still suffer from inherent disclosure lag.
CapitolTrades.com
The most popular free tracker. CapitolTrades scrapes House and Senate filings daily and presents them in a clean, searchable interface.
Pros:
- Completely free for basic access
- Clean UI with filters by member, ticker, transaction type
- Email alerts for specific members or tickers (free tier: 3 alerts)
- Historical data back to 2012
Cons:
- 24-48 hour lag from official filing to CapitolTrades listing
- No API access on free tier
- Limited context (doesn't show committee membership or cross-reference with insider filings)
- Email alerts are batch-sent once daily, not real-time
Best for: Retail investors who want to manually review trades a few times per week.
QuiverQuant
QuiverQuant offers a freemium model with basic congressional trade data free and premium features ($20-200/month) for API access and advanced analytics.
Pros:
- Free tier includes trade data with 48-hour lag
- Premium tier ($50/month) provides API access for automated integration
- Includes additional datasets (lobbying disclosures, government contracts)
- Decent ticker symbol normalization (handles corporate actions and mergers)
Cons:
- API rate limits even on paid tier (100 requests/hour)
- No real-time parsing (12-24 hour lag on premium, 48-hour on free)
- Historical data only goes back to 2020
- Doesn't overlay committee membership or regulatory calendar events
Best for: Individual quant traders building systematic strategies who need API access but can tolerate 24-hour lag.
Unusual Whales (Congressional Trading Module)
Unusual Whales, primarily known for options flow tracking, added congressional trade data in 2024. It's bundled with their $50/month subscription.
Pros:
- Fast parsing (typically 6-12 hours from official filing)
- Cross-references congressional trades with options flow for the same tickers
- Mobile app with push notifications
- Good for convergence signals (congressional buy + unusual call activity)
Cons:
- No standalone congressional-only subscription (must pay for full platform)
- API access requires $200/month tier
- Historical data limited to 2023-present
Best for: Options traders who want to combine congressional signals with derivative positioning.
Faster Than Free Tools, Cheaper Than Bloomberg
VertData parses congressional filings within 90 seconds using AI, cross-references with SEC insider data, and overlays committee membership context. Try it free for 14 days.
Start Free Trial →Method 3: Professional Institutional Tools (Real-Time Context)
If you're managing capital professionally or running a systematic strategy, free tools don't cut it. The edge is in speed and context—parsing filings immediately and knowing why a trade matters.
VertData: Built for Institutional Workflows
Full disclosure: this is our platform. VertData was designed specifically for hedge funds and family offices tracking alternative data sources like congressional filings. Here's why it's different:
Sub-Hour Parsing with AI Summarization
VertData uses Claude (Anthropic's LLM) to parse House PDFs and Senate XML within 90 seconds of publication. The AI handles OCR errors, normalizes ticker symbols, and resolves ambiguous company names (e.g., "Apple Inc" vs "AAPL" vs "Apple Computer"). This means you see trades hours before they appear on free aggregators.
Committee Membership Overlay
Not all congressional trades are equal. A senator on the Armed Services Committee buying Lockheed Martin is far more significant than a random representative buying it. VertData automatically flags trades where the member sits on a committee that oversees the company's sector:
Context: Warner chairs the committee that oversees DoD intelligence contracts. Palantir is competing for a $800M JWICS modernization contract. Warner's purchase precedes the contract award announcement by 6 weeks.
Free tools show you the trade. VertData shows you why it matters.
Cross-Referencing with SEC Insider Filings
The strongest signals come from convergence: congressional purchase + corporate insider buying in the same ticker within 7-10 days. VertData automatically cross-references every congressional trade against Form 4 insider filings and flags high-conviction overlaps.
API Access for Systematic Integration
For quant funds, VertData provides a RESTful API with no rate limiting (within reason—no scraping our entire database). Endpoints include:
GET /api/congress/trades— all trades with filters by member, ticker, date range, amountGET /api/congress/members/{id}/trades— all trades by a specific memberGET /api/congress/tickers/{symbol}/trades— who's buying/selling a specific stockGET /api/congress/clusters— trades where 3+ members bought the same stock within 30 daysGET /api/congress/convergence— congressional trades that overlap with insider filings
You can integrate this into your existing alpha models without building a scraper from scratch.
Pricing: $199/month for individuals, $499/month for small funds (<$100M AUM), enterprise pricing for larger institutions. Includes API access, Slack/email alerts, and historical data back to 2012.
Bloomberg Terminal (CONG Function)
Bloomberg added congressional trading data in late 2024 via the CONG<GO> function. If you already have a $2,000/month Bloomberg terminal, it's included.
Pros:
- Integrated with Bloomberg's equity research and event calendars
- Good for overlaying congressional trades on price charts
- Reliable uptime and data quality
Cons:
- No standalone access (need full terminal subscription)
- 12-24 hour parsing lag (slower than specialized tools)
- No cross-referencing with insider filings or committee membership
- Limited API access (Bloomberg Data License required, adds $1,000+/month)
Best for: Institutional investors who already have Bloomberg and want congressional data as one of many inputs.
How to Build Your Own Congressional Trade Tracker
If you're a developer and want full control, you can build a custom scraper. Fair warning: this is harder than it looks. Here's the technical architecture:
Step 1: Set Up Automated Scraping
You'll need two separate scrapers—one for House, one for Senate:
House Scraper (Python + PyPDF2):
import requests
from bs4 import BeautifulSoup
import PyPDF2
import re
# Check House Clerk site for new PTR filings
url = "https://disclosures-clerk.house.gov/FinancialDisclosure"
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
# Find PDF links for Periodic Transaction Reports
pdf_links = soup.find_all('a', href=re.compile(r'\.pdf$'))
for link in pdf_links:
pdf_url = link['href']
# Download and parse PDF
# Extract transaction details using regex or OCR
# Normalize ticker symbols
# Store in database
The hard part: handling OCR errors, inconsistent formatting, and misspelled tickers. Expect 5-10% error rate even with good OCR libraries like Tesseract.
Senate Scraper (JSON API):
import requests
# Senate eFD JSON API endpoint
api_url = "https://efdsearch.senate.gov/search/report/data/"
params = {
'report_type': 'PTR',
'start_date': '2026-01-01',
'end_date': '2026-03-19'
}
response = requests.get(api_url, params=params)
data = response.json()
# Parse nested JSON structure
# Extract trades from each report
# Normalize tickers and store
The Senate API is better structured but rate-limited. You'll need to implement exponential backoff and cache responses locally.
Step 2: Ticker Symbol Normalization
Congressional filings use company names, not standardized ticker symbols. You need a normalization layer that maps "Apple Inc." → AAPL, "Alphabet Inc Class A" → GOOGL, etc.
Options:
- SEC CIK lookup: Match company name to SEC Central Index Key, then to ticker via SEC's company tickers JSON file
- Yahoo Finance API: Query company name, extract ticker from search results
- Manual mapping table: Build a CSV of common name variations → ticker (tedious but reliable)
Expect to spend 40+ hours building a robust normalization system that handles edge cases like SPACs, ticker changes, and corporate restructurings.
Step 3: Database Schema
Store parsed trades in a structured database (PostgreSQL recommended):
CREATE TABLE congressional_trades (
id SERIAL PRIMARY KEY,
member_name VARCHAR(255),
chamber VARCHAR(10), -- 'House' or 'Senate'
party VARCHAR(1), -- 'D', 'R', 'I'
ticker VARCHAR(10),
company_name VARCHAR(255),
transaction_type VARCHAR(20), -- 'Purchase', 'Sale', 'Exchange'
amount_min DECIMAL,
amount_max DECIMAL,
transaction_date DATE,
disclosure_date DATE,
asset_type VARCHAR(50),
filing_url TEXT,
created_at TIMESTAMP DEFAULT NOW()
);
CREATE INDEX idx_ticker ON congressional_trades(ticker);
CREATE INDEX idx_transaction_date ON congressional_trades(transaction_date);
CREATE INDEX idx_member_name ON congressional_trades(member_name);
Step 4: Alerting System
Set up alerts for new filings that meet your criteria (e.g., purchases over $100K by members on relevant committees). Use Twilio for SMS, SendGrid for email, or webhooks for Slack/Discord integration.
Bottom line: Building your own tracker is a fun engineering project but takes 100+ hours to reach feature parity with existing tools. Unless you have very specific requirements, using an existing service makes more sense.
Advanced Tracking: What Professional Investors Watch
Beyond just seeing "who bought what," sophisticated tracking involves pattern recognition:
1. Clustering Signals
When 3+ members from the same committee buy the same stock within a 30-day window, it's a high-conviction signal. VertData's clustering algorithm flags these automatically:
2. Disclosure Speed Analysis
Some members file within days of trading (high actionability), others wait the full 45 days (stale information). Track average disclosure lag by member:
- Nancy Pelosi: avg 18-day lag
- Tommy Tuberville: avg 12-day lag
- Ro Khanna: avg 35-day lag
Prioritize following members who file quickly.
3. Committee-Sector Alignment
A Senate Banking Committee member buying regional banks matters more than a random representative buying them. Track committee assignments and weight trades accordingly.
4. Options vs. Equity
Options trades represent higher conviction (more risk, more leverage). Flag any congressional options activity for priority review.
5. Convergence with Insider Filings
The highest-alpha signals come from congressional purchase + corporate insider buying within 7 days. This suggests both Washington and C-suite believe the stock is undervalued.
Common Pitfalls to Avoid
Pitfall #1: Blindly Copying Every Trade
Not all congressional trades are winners. Members make plenty of bad calls. Track historical performance by member and only follow those with proven alpha generation.
Pitfall #2: Ignoring Position Sizing
A $1K-$15K trade might be $1,001 (noise) or $14,999 (signal). Weight your attention toward larger disclosed ranges ($100K+).
Pitfall #3: Missing Corporate Actions
If a congressional filing shows "Alphabet Inc" but doesn't specify Class A (GOOGL) vs Class C (GOOG), you need logic to determine which ticker. Many amateur trackers botch this.
Pitfall #4: Forgetting About Spouses and Dependents
Many "congressional" trades are actually made by spouses (e.g., Paul Pelosi). These still require disclosure but may not reflect insider legislative knowledge—could just be a hedge fund manager spouse making independent decisions.
Legal Considerations: Is This Insider Trading?
No. Trading based on publicly disclosed congressional filings is completely legal. You're not receiving material non-public information—you're analyzing public records that are published specifically for transparency.
However, if you somehow obtained information about a congressional trade before it was publicly disclosed (e.g., a staffer tipped you off), that would constitute illegal insider trading under STOCK Act provisions.
Stick to publicly filed reports and you're fine.
Conclusion: Speed and Context Win
Tracking congressional trades isn't rocket science, but it is an engineering and data challenge. The winners in this space aren't those with the most sophisticated algorithms—they're those who:
- Parse faster: See new filings within hours, not days
- Add context: Know which committees members sit on and why their trades matter
- Cross-reference: Combine congressional data with insider filings and regulatory calendars
- Filter ruthlessly: Ignore noise, focus on high-conviction signals (large trades, relevant committees, clustering)
The disclosure lag inherent in the STOCK Act means you'll never get true real-time data. But you can get the publicly available data faster than 99% of investors—and in markets, that's often enough for edge.
Track 43,228+ Congressional Trades in One Place
VertData monitors every House and Senate filing, parses them with AI in under 90 seconds, and cross-references with SEC insider data. Get the signal before the crowd.
See Live Dashboard →This article is for informational purposes only and does not constitute investment advice. Congressional trade disclosures are subject to reporting lags and may not reflect current positions.