# Outland News — Data Sources and Known Gaps
## Generated 2026-06-02

---

## Primary Data Sources

| Dataset | Source | URL | Coverage |
|---|---|---|---|
| Roll-call votes | voteview.com | https://voteview.com | 115th–119th Congress |
| Senate PTR filings | U.S. Senate eFD | https://efdsearch.senate.gov | 2012–2026 (partial) |
| House PTR filings | House Clerk | https://disclosures.house.gov | 2015–2025 |
| FEC campaign receipts | OpenFEC API | https://api.open.fec.gov | 2022–2026 cycles |
| Committee assignments | unitedstates/congress-legislators | https://github.com/unitedstates/congress-legislators | 119th Congress |
| Member roster | Congress.gov API | https://api.congress.gov/v3/member | 118th–119th Congress |

---

## Known Data Gaps

### Senate PTR (Periodic Transaction Reports)

| Senator | Coverage | Gap | Notes |
|---|---|---|---|
| Ruben Gallego (AZ) | 1 trade (2022) | Entire Senate career (2025–) | Only paper PTR filings on record; no electronic filings available |
| Thom Tillis (NC) | 2015–2022 | Partial 2019–2022 coverage | 42 total PTR filings, 5 electronic; 37 paper filings not machine-readable |
| Mitch McConnell (KY) | 2016–2026 | Substantially complete | 63 filings, 39 electronic, 24 paper |
| Thomas Kean Jr. (NJ) | 2023–2026 | None — House coverage complete | House member; not on Senate system |

### FEC Data

- **Individual donor cap:** Top 100 individual donors (≥$1,000) per member per cycle only. Very active fundraisers may have thousands of additional donors not included.
- **Committees-only PAC:** Committee contributions only; outside spending (Super PACs, dark money) is not captured in Schedule A.
- **ActBlue/WinRed:** Conduit organizations aggregate small-donor bundles. Members with high ActBlue/WinRed totals (e.g., Seth Moulton: $49M) are small-donor bundling artifacts, not PAC conflicts.

### Sector/Committee Mapping

- Sector overlap is determined by string matching between PTR asset type descriptions and committee sector labels. Some assets may be mis-categorized if the asset description is non-standard.
- Subcommittee assignments are not included in overlap calculation (full committees only).
- Members who joined committees after a trade was made are NOT filtered out. The dataset makes no claim about when members knew their committee assignment relative to when they traded.

### Attendance

- Pre-115th Congress voting records are not included (voteview data goes back further, but current members' careers are tracked only from when voteview records are available in the pipeline).
- "Present" votes (cast_code 7) are counted as attendance (the member was physically present).
- Senate vote counts differ from House: the Senate votes less frequently. Miss% comparisons between chambers should be made within-chamber only.

---

## Data Freshness

| Dataset | Last Updated |
|---|---|
| Roll-call votes | May 2026 (119th Congress through ~May 2026) |
| FEC receipts | May 2026 (2026 cycle is ongoing) |
| House PTR filings | November 2025 (house_all_transactions.json) |
| Senate PTR filings | 2026-06-02 (targeted refresh: McConnell, Tillis, Gallego, Kean) |
| Committee assignments | May 2026 |
| Member roster | 2026-06-02 |

---

## Senate PTR Scraping Note

The Senate eFD search data endpoint (`efdsearch.senate.gov/search/report/data/`) periodically
enters maintenance mode and returns HTTP 503 for AJAX requests. The project's scraper
(`scripts/targeted_senate_ptr_pull.py`) uses Playwright's native form-submission path
(not injected JavaScript fetch) to bypass this restriction. This is the only known workaround.

---

*Outland News — Congressional Accountability Project*
*outlandnews.net*
