I collected a bunch of information about current members of the house and senate, including contact information, committee and subcommittee assignments, PVI scores, dw-nominate scores, etc.. Collecting this stuff is more laborious than you might imagine, because it comes from a number of disparate sources, in incompatible formats.1 And it requires cleaning up.
I have made the collection available, so that you can use it without all the hassle. It is available in several forms:
Overview at a glance: | ./house-member-data.html | ./senate-member-data.html |
Suitable for downloading into a spreadsheet: | ./house-member-data.csv | ./senate-member-data.csv |
Suitable for downloading into an SQL database: | ./house-member-data.sql | ./senate-member-data.sql |
In addition, if you have a mysql client, you can query the data without downloading anything. That is, you can query my server directly, as discussed in section 2.
You can download the .csv file and read it into a spreadsheet program. With a little bit of cleverness, you can prepare a graph like figure 1, showing how many seats each party holds, as a function of Cook PVI.
There is remarkably little overlap there is between the two curves, relative to their overall width. A close-up of the overlap band is shown in figure 2.
The overlap band is well described as PVI=R+5±2.5, as indicated by the shaded region in the figure. This is the proverbial “gray area”. Specifically:
The conventional interpretation is that it’s not worth contesting any seats outside this narrow band. However, I claim that’s a misinterpretation of the data. Polling is not a determiner of what happens next; it is at best an indication of how we got where we are. Furthermore, PVI numbers are not etched in stone; the whole point of campaigning is to change the partisan lean of the electorate. There are enough examples floating around to demonstrate that a strong Democrat can win in an R+13 district, and a strong Republican can win in a D+3 district, both of which are well outside the conventional narrow band. For more on this, see reference 2.
If desired, you can download the .sql file and do whatever you want with it.
On the other hand, you don’t have to download it; instead you can query my server directly, if you have a mysql client. For example, from the linux commandline you can connect to the server by saying:
:; mysql -u guest -h av8n.com congress
Here is an example query that should produce results similar to the first table above:
select first, last, nom1, nom2, p2020 from senate_members where nom1<0 order by nom1 limit 10; +-----------+------------+--------+--------+---------+ | first | last | nom1 | nom2 | p2020 | +-----------+------------+--------+--------+---------+ | Elizabeth | Warren | -0.769 | -0.277 | running | | Kamala | Harris | -0.713 | -0.078 | running | | Cory | Booker | -0.607 | -0.202 | running | | Bernard | Sanders | -0.526 | -0.371 | running | | Tammy | Baldwin | -0.511 | -0.215 | | | Edward | Markey | -0.506 | -0.44 | | | Mazie | Hirono | -0.499 | -0.089 | | | Jeff | Merkley | -0.466 | -0.776 | | | Tom | Udall | -0.453 | 0.172 | | | Kirsten | Gillibrand | -0.439 | -0.303 | running | +-----------+------------+--------+--------+---------+
This query will return information about all 34 senators whose term expires in 2020:
select first, last, state, class, nrr, pvi, nom1, nom2 from senate_members where class="II" or terlim<>'' order by party, pvi, staterank; +-------------+------------+-------+-------+------+--------+--------+--------+ | first | last | state | class | nrr | pvi | nom1 | nom2 | +-------------+------------+-------+-------+------+--------+--------+--------+ | Edward | Markey | MA | II | | -12.33 | -0.506 | -0.44 | | Jack | Reed | RI | II | | -10 | -0.377 | -0.212 | | Cory | Booker | NJ | II | | -8.08 | -0.607 | -0.202 | | Richard | Durbin | IL | II | | -7.89 | -0.358 | -0.352 | | Christopher | Coons | DE | II | | -6 | -0.233 | -0.208 | | Jeff | Merkley | OR | II | | -4.4 | -0.466 | -0.776 | | Tom | Udall | NM | II | nrr | -3 | -0.453 | 0.172 | | Gary | Peters | MI | II | | -1.36 | -0.244 | -0.221 | | Tina | Smith | MN | II | | -0.75 | -0.388 | -0.087 | | Mark | Warner | VA | II | | -0.73 | -0.199 | -0.034 | | Jeanne | Shaheen | NH | II | | 0 | -0.248 | -0.179 | | Doug | Jones | AL | II | | 14.43 | -0.092 | 0.147 | | Susan | Collins | ME | II | | -3 | 0.112 | -0.549 | | Cory | Gardner | CO | II | | -0.71 | 0.448 | -0.019 | | Martha | McSally | AZ | III | | 2.33 | 0.346 | 0.014 | | Joni | Ernst | IA | II | | 2.5 | 0.502 | 0.041 | | Thom | Tillis | NC | II | | 3.31 | 0.42 | 0.042 | | David | Perdue | GA | II | | 5.29 | 0.585 | -0.104 | | John | Cornyn | TX | II | | 5.5 | 0.494 | -0.006 | | Lindsey | Graham | SC | II | | 7.86 | 0.407 | -0.172 | | Dan | Sullivan | AK | II | | 9 | 0.473 | 0.086 | | Cindy | Hyde-Smith | MS | II | | 9 | 0.389 | 0.278 | | Bill | Cassidy | LA | II | | 11 | 0.452 | -0.092 | | Steve | Daines | MT | II | | 11 | 0.544 | -0.118 | | Lamar | Alexander | TN | II | nrr | 12.67 | 0.323 | -0.178 | | Pat | Roberts | KS | II | nrr | 13.25 | 0.414 | -0.092 | | Mike | Rounds | SD | II | | 14 | 0.385 | 0.063 | | Ben | Sasse | NE | II | | 14 | 0.801 | -0.267 | | Tom | Cotton | AR | II | | 15 | 0.596 | 0.097 | | Mitch | McConnell | KY | II | | 15.67 | 0.403 | 0.002 | | James | Risch | ID | II | | 19 | 0.629 | 0.571 | | James | Inhofe | OK | II | | 19.6 | 0.555 | 0.043 | | Shelley | Capito | WV | II | | 19.67 | 0.261 | 0.055 | | Michael | Enzi | WY | II | nrr | 25 | 0.541 | 0.192 | +-------------+------------+-------+-------+------+--------+--------+--------+
This query will tell you about the house members who have decided not to run for re-election:
select first, last, statedistrict, nrr, nom1, nom2, pvi from house_members where nrr<>''; +---------+-----------+---------------+-------+--------+--------+------+ | first | last | statedistrict | nrr | nom1 | nom2 | pvi | +---------+-----------+---------------+-------+--------+--------+------+ | Bradley | Byrne | AL01 | nrr:h | 0.605 | 0.257 | 15 | | Martha | Roby | AL02 | nrr:q | 0.362 | 0.67 | 16 | | Rob | Woodall | GA07 | nrr:q | 0.605 | -0.218 | 9 | | David | Loebsack | IA02 | nrr:q | -0.275 | -0.032 | -1 | | Susan | Brooks | IN05 | nrr:q | 0.362 | 0.206 | 9 | | Paul | Mitchell | MI10 | nrr:q | 0.432 | 0.328 | 13 | | Greg | Gianforte | MT00 | nrr:H | 0.422 | 0.085 | 11 | | Ben | Lujan | NM03 | nrr:h | -0.367 | 0.018 | -8 | | Jose | Serrano | NY15 | nrr:q | -0.491 | -0.376 | -44 | | K. | Conaway | TX11 | nrr:q | 0.591 | 0.364 | 32 | | Pete | Olson | TX22 | nrr:q | 0.549 | 0.313 | 10 | | Will | Hurd | TX23 | nrr:q | 0.295 | 0.219 | 1 | | Kenny | Marchant | TX24 | nrr:q | 0.602 | 0.171 | 9 | | Rob | Bishop | UT01 | nrr:q | 0.536 | 0.098 | 26 | | Sean | Duffy | WI07 | nrr:q | 0.511 | -0.109 | 8 | +---------+-----------+---------------+-------+--------+--------+------+
This query will identify all house Democrats in districts with a Cook PVI of R+8 or redder:
select first, last, statedistrict, nom1, nom2, pvi from house_members where pvi>=8 and caucus="D" order by pvi; +--------+------------+---------------+--------+-------+------+ | first | last | statedistrict | nom1 | nom2 | pvi | +--------+------------+---------------+--------+-------+------+ | Lucy | McBath | GA06 | -0.235 | 0.296 | 8 | | Kendra | Horn | OK05 | -0.201 | 0.556 | 10 | | Joe | Cunningham | SC01 | -0.112 | 0.471 | 10 | | Collin | Peterson | MN07 | -0.148 | 0.709 | 12 | | Ben | McAdams | UT04 | -0.087 | 0.273 | 13 | +--------+------------+---------------+--------+-------+------+
For other uses of this data, see e.g. reference 2 and reference 3.
http://clerk.house.gov/xml/lists/MemberData.xml
http://clerk.house.gov/evs/2019/roll483.xml
https://www.cnn.com/2019/05/23/politics/democrats-impeachment-whip-list/index.html
https://newdemocratcoalition.house.gov/members
https://bluedogcaucus-costa.house.gov/members
https://cpc-grijalva.house.gov/index.cfm?sectionid=71sectiontree=2,71
https://congressionalhispaniccaucus-castro.house.gov/members
https://cbc.house.gov/membership/ -O black.html
https://ballotpedia.org/List_of_U.S._Congress_incumbents_who_are_not_running_for_re-election_in_2020
https://voteview.com/data
https://cookpolitical.com/pvi-map-and-district-list
https://www.senate.gov/legislative/LIS_MEMBER/cvc_member_data.xml
https://www.senate.gov/general/contact_information/senators_cfm.xml
https://ballotpedia.org/List_of_U.S._Congress_incumbents_who_are_not_running_for_re-election_in_2020
https://voteview.com/data
https://cookpolitical.com/pvi-map-and-district-list
Plus dozens of committee data files such as:
https://www.senate.gov/general/committee_membership/committee_memberships_SSJU.xml