CapitolExposed connects four fragmented government databases into a single searchable knowledge graph, then uses automated analysis to detect potential conflicts of interest in Congressional stock trading.
Members of Congress are required by the STOCK Act (2012) to disclose securities transactions within 45 days. These disclosures are public record, but they are scattered across multiple government websites in inconsistent formats. Campaign finance data lives at the FEC. Lobbying disclosures are filed with the Senate. Voting records are on Congress.gov. No single tool connects them.
CapitolExposed does. CapitolExposed ingests data from all four sources, normalizes it into a unified schema, and builds a knowledge graph that maps relationships between members, companies, PACs, lobbyists, and legislation. Then our analysis engines continuously scan for patterns that suggest potential conflicts of interest, such as a stock purchase days before a favorable committee vote, or a large trade in a company whose PAC is a top donor.
The goal is not to allege wrongdoing. It is to make public data genuinely accessible so that journalists, researchers, watchdog organizations, and voters can ask the right questions.
CapitolExposed is built on a document-analysis workflow refined across large public-record investigations. The same core techniques, including entity extraction, knowledge graph construction, and anomaly detection, are applied here to Congressional financial disclosures.
The data pipeline is open source. The processing code, ingestion scripts, and conflict scoring logic are publicly auditable on GitHub.
All data is sourced from official U.S. government records. CapitolExposed does not use any non-public, leaked, or proprietary data.
Office of the Clerk, U.S. House of Representatives
STOCK Act filings from House members including stock trades, amounts, transaction dates, and asset descriptions. Required within 45 days of each transaction.
disclosures-clerk.house.govU.S. Senate
Periodic transaction reports from Senators and candidates. Includes securities transactions, amounts, and filing dates.
efdsearch.senate.govFederal Election Commission
Campaign contributions from individuals, PACs, and party committees. Mapped to companies and industry sectors to identify donor-holding overlaps.
www.fec.gov/dataU.S. Senate, Office of Public Records
Quarterly lobbying reports showing which organizations lobby on which bills, who the lobbyists are, and how much they spend. Cross-referenced with member votes and holdings.
lda.senate.govLibrary of Congress
Roll call votes, bill text, committee assignments, and legislative activity. Used to map votes to affected industries and identify timing overlaps with trades.
www.congress.govEvery stock trade disclosed by a member of Congress is assigned a conflict score between 0% and 100%. The score is a weighted composite of five components, each measuring a different dimension of potential conflict.
Does the member sit on a committee with jurisdiction over the industry of the traded stock? Direct oversight is scored higher than tangential connections.
How close was the trade to a relevant vote, hearing, or markup? Trades within 7 days of a related legislative event receive the highest scores.
Is the traded company (or its parent/subsidiary) actively lobbying on legislation before the member's committee? Higher spending and more recent filings increase the score.
Has the member received campaign contributions from the traded company's PAC, executives, or industry group? Larger and more recent donations score higher.
Larger trades receive a proportionally higher score. Transactions exceeding $500,000 are automatically flagged regardless of other factors.
The final score is calculated as: (Committee Overlap x 0.30) + (Timing Proximity x 0.25) + (Lobbying Connections x 0.20) + (Campaign Donations x 0.15) + (Trade Size x 0.10). Each component is normalized to a 0-1 range before weighting.
| Data Type | Source | Update Frequency |
|---|---|---|
| Stock trades (House) | House Clerk | Daily |
| Stock trades (Senate) | Senate EFD | Daily |
| Voting records | Congress.gov | After each roll call |
| Campaign finance | FEC | Quarterly (with amendments) |
| Lobbying disclosures | Senate LDA | Quarterly |
| Conflict scores | Computed | Recalculated on each data update |
| Conflict alerts | Automated | Continuous (within hours of new filings) |
The CapitolExposed data pipeline is open source. The ingestion scripts, data normalization code, conflict scoring algorithm, and analysis configurations are all publicly available for audit and contribution.
CapitolExposed on GitHubFound a bug or want to contribute? Open an issue or submit a pull request. Contributions are welcome from researchers, developers, and data journalists.
Conflict scores do not imply wrongdoing. A high conflict score indicates a statistical overlap between a member's financial transactions and their legislative activity. It does not mean the member acted on non-public information, violated any law, or engaged in insider trading.
All data presented on CapitolExposed is sourced from public government records. CapitolExposed presents the data as-is and does not make allegations against any individual. The STOCK Act requires disclosure, not divestiture. Members of Congress are legally permitted to trade stocks while in office.
CapitolExposed is a public interest research tool designed to increase transparency, not to serve as evidence of misconduct. If you are a journalist using this data, independent verification of all claims before publication is strongly recommended.