About the data
Methodology
Official public records only, loaded by code, every row traceable to its source document. Each dataset has its own page saying what is loaded, what is left out, and what the numbers cannot tell you.
Official records first
Trades and contracts are loaded by code from the House Clerk, the Senate and USAspending.gov. Members and committee seats come from the public congress-legislators dataset, which volunteers keep up to date. Two parts are ours and labelled as ours: the map from committees to company sectors, and ticker links a person confirmed. No third-party aggregators.
Every row traces to its filing
Each row keeps its source ID and a link to the original document. If a row has no filing link, it says so.
Ranges stay ranges
Stock trades are reported in dollar bands. We show the band as filed and never a midpoint or an invented total.
Late or missing data is shown, not hidden
A late feed turns amber and says since when. A feed that fails shows “unavailable” and no numbers, never a zero.
How to read our labels
Worth a look marks a pattern a reader may want to look at, for example a trade in a company whose sector our hand-built map links to a committee the member sat on. It is a pattern, never an accusation: a sequence of events is not proof of wrongdoing, and we do not say it is.
Signal scores
Signal score out of 100 from our method: committee seat +45, listed federal contractor +30, reported 45+ days after the trade +15, large position +10. A score is a prompt to look closer, not a finding. Scores are shown as bands (70 and up, 45–69, 20–44, under 20), never as labels about the member.
Committee seat:the member held a seat on the committee on the trade date, per the congress-legislators record of the latest snapshot on or before that date, and our hand-built map links that committee to the company’s sector. The map is ours, not a statement of the committee’s jurisdiction. When a new Congress had not yet published committee rosters, the signal is not computed.
Listed federal contractor:the company, through a recipient we link to it, had a listed award signed on or before the trade date. The listed set is contracts the agency coded not competed of at least $1 million, or any contract of at least $10 million, signed from 2023-10-01 (USAspending). Amounts are obligated to date on those awards, as of the awards load, not the amount at the trade. A “no” means no award in that set was signed between 2023-10-01 and the trade; trades before 2023-10-01 are not computed.
Reported 45+ days after the trade: the first report was filed more than 45 days after the trade date shown in the filing. We count calendar days from the trade date to the first report. We do not adjust for weekends or holidays, so a report filed on the next business day after a weekend deadline is included. Lateness is not computed below the $1,000 reporting threshold, when the first report is not in our records, or when the dates as filed look inconsistent.
Trades
Periodic transaction reports filed by House members under the STOCK Act.
Source: House Clerk PTRs ↗ · Refresh: Daily once automations run
Known limit: Amounts are the ranges members disclose, never exact values.
Periodic transaction reports filed by senators under the STOCK Act.
Source: Senate eFD ↗ · Refresh: Daily once automations run
Known limit: Amounts are the ranges senators disclose, never exact values.
Contracts
Prime contract awards: every non-competed award of $1M+ and every award of $10M+ (rule r5-v1).
Source: USAspending.gov ↗ · Refresh: Daily once automations run
Known limit: A selection, not all spending: shares like "% not competed" use the agency totals, not these rows. DoD publishes 90 days late.
All prime contract obligations per agency and fiscal year, with the non-competed share.
Source: USAspending.gov ↗ · Refresh: Weekly once automations run
Known limit: DoD reports contract actions 90 days late, so the latest quarter is incomplete.
Members of Congress
Every member who served 2016–today, with current committee seats.
Source: congress-legislators ↗ · Refresh: Weekly once automations run
Known limit: Committee seats are current ones, not the seats held at the time of past trades.
Campaign money
PAC and donor money to members (not loaded yet).
Source: FEC ↗ · Refresh: Planned
Lobbying
Lobbying disclosures: who paid, how much, on what (not loaded yet).
Source: Senate LDA ↗ · Refresh: Planned
Company and ticker links
How a federal contractor is linked to a publicly traded company, and why only confirmed matches are shown.
Current freshness for each dataset is on the data status page. Changes to stories and data are in the corrections log.