How the Conflict Score works
ConflictScore reads a congressional stock trade, looks up the member's committee assignments and the traded company's industry, and measures whether the two overlap. The result is a 0–100 score with a plain-language explanation that links back to the original filing.
What the number means
A Conflict Score is 0–100. Higher means a stronger overlap between what the member's committees oversee and the industry of the traded company. Two top-level outcomes:
- insufficient_data — we could not determine an overlap. This is not a zero; it means a needed input is missing (see What we need). A trade never silently scores 0.
- scored 0–100 — enough data existed, and the overlap strength maps to a tier.
The five tiers
Tiers are ranked by how directly a committee's jurisdiction covers the issuer's industry. The engine picks the single strongest tier that applies. Counts are from the current corpus (10,904 trades):
How the match is made
- Issuer domains. The traded ticker is matched to an SEC EDGAR filing, which gives an SIC industry code. That SIC maps to oversight domains (e.g. SIC 2836 → health, pharma) via a public lookup table.
- Committee domains. The member's committee and subcommittee assignments are resolved to oversight domains (subcommittees inherit the parent committee's domains).
- Overlap. If any issuer domain appears in any of the member's committee domains, that's a match. The strongest tier among all matches sets the score.
What we need
A trade is marked insufficient_data if any of these is missing. We never guess — the gap is named.
| Gap | Why it happens | Share |
|---|---|---|
| missing_ticker | No ticker (common for Treasuries, bonds, real estate, private funds). | NaN% |
| ticker_not_matched | Ticker present but not found in SEC EDGAR (delisted, acquired, OTC). | NaN% |
| missing_sic | Issuer matched in EDGAR but has no SIC industry code. | NaN% |
| sic_unclassified | SIC exists but is not yet mapped in our domain table. | NaN% |
| missing_member | Filer could not be matched to a current member (former member or name variant). | NaN% |
| missing_committee_data | Member matched but has no committee assignments on file. | NaN% |
Shares are computed live from the current corpus and shift as coverage improves.
Live examples (from the current corpus)
Direct — 65
Rep. Rick Allen (R-GA) sits on the House Energy and Commerce Committee, whose jurisdiction covers: energy.
Atmos Energy Corp (SIC 4924: Natural Gas Distribution) maps to the energy domain, placing it under that committee's direct oversight.
Cross-cutting — 18
Rep. Dan Newhouse (R-WA) sits on the House Select Committee on Strategic Competition with the Chinese Communist Party, a cross-cutting committee with broad jurisdiction spanning technology.
Adobe Inc. (SIC 7372: Prepackaged Software) maps to technology; cross-cutting jurisdiction is the weakest positive signal because it touches every sector.
Clean — 0
No oversight overlap was identified between Rep. Robert Aderholt (R-AL) and GSK plc American Depositary Shares (GSK).
The member's committee jurisdictions do not map to the traded issuer's sector or specific oversight domains.
Insufficient data
The disclosure line for this bond does not include a ticker symbol, so the issuer could not be identified. (Common for Treasuries, real-estate, private-fund, and similar non-listed assets.)
Two dormant tiers
The subcommittee (50) and sector-only (30) tiers are built into the method but produced zero hits in the current run:
- Subcommittee does not fire because the available committee data lists every subcommittee member on the parent committee too, and the parent outranks the sub. It would fire for a sub-only membership.
- Sector-only does not fire because no traded issuer in the corpus has an SIC that is in a bridgable sector but outside the specific domain rules.
How scores are produced
- Disclosure scraping. Periodic Transaction Reports are scraped from the House Clerk system (PDF), parsed, and each trade archived with a SHA-256 checksum. Senate eFD support is manual-only pending a legal review.
- Company mapping. Tickers are matched to SEC EDGAR central index keys and SIC industry codes.
- Committee mapping. Members' committee and subcommittee assignments are resolved to oversight domains from official jurisdiction statements.
- Scoring. The engine produces a tier, a 0–100 score, and plain-language reasoning, linked to the original filing URL.
What this version does not yet include
This release is the base score only. Designed and layered on after the base is validated:
- Trade size relative to the member's disclosed net worth.
- Timing relative to a related committee vote or hearing.
- Owner flags — trades by a spouse or dependent (covered by the STOCK Act).
- Options / derivatives — stronger conviction than plain stock.
- Government-contract overlap — whether the issuer holds contracts from an agency the member's committee oversees (USASpending).
- Historical committee assignments — scores today use the member's current roster; assignment history at the trade date is on the roadmap.
Full reasoning is a Plus-tier feature; this page documents the same rules the engine applies.