Dan Newman, director of the money in politics watchdog/transparency site MAPLight.org kindly shared some of their bill endorsement data for me to explore. In addition to providing an elegant interface for accessing California and U.S. Federal campaign contribution data and voting records, MAPLight’s interns do extensive research to determine various organizations positions on bills that are being voted on in Congress. These endorsement and opposition relationships can be thought of as ties linking the organizations to the various bills they take a position on. The ties can then be assembled to form—yup, you guessed it—networks of bills and their supporters. My hope is that giving the bill data a relational treatment might reveal some of the coalitions and give additional context for each organization’s position.
Exploring bill’s neighborhood
The simplest version of this idea is to take a single bill and show all of the links to it. I choose S.1782 the Arbitration Fairness Act of 2007 partially because it is not clear from the title or the description what it is about. How would I want my congresswoman to vote on this bill?
The most basic “star” view shows the bill in the center with red and green links to the opponent and supporter nodes. (Labels are shown for only a few selected nodes.) I don’t find this presentation to be helpful at all, I think it conveys less information than a simple two-column table listing the supporter and opponent orgs. What I really want to know is what are the other bills these organizations have supported? Fortunately it is easy to add those ties in, also including all the bills that organizations taking a position on S1782 supported.
This figure is almost too complicated to be legible, but does have some interesting features. The bills are now shown as gray squares and the organization nodes as circles. (Nodes are color-coded arbitrarily according to MAPlights’s category codes, and I confusingly including red and green, sorry about that!) Sizes of nodes are proportional to the total number of endorsements the organization has in the database. Not surprisingly, there is somewhat of a division in the network between supporters and opponents, with many of the supporters of S1782 (on the left) supporting similar groups of bills, and opponents (on the right) supporting a different set. In addition, the nodes with similar categorizations, such as Consumer’s Union, Public Citizen, etc, are connected to many of the same bills and were placed close together by the layout algorithm.
It appears that S1782 is generally supported by public interest groups, and opposed by industry associations—‘tho obviously it is difficult to explore this in much detail with only the few labels I’ve included. An version with interactive labels like my draft map of the SF contribution data or the oilmoney site would be more useful. It is also interesting that the network divide is not absolute, there are some bills (at the top and bottom) that are supported by both camps. Again, it would be great to be able to click on these bills to see what they are.
But what does the overall “playing field” look like?
An alternate way of looking at the data is to show organization nodes alone, creating ties between them when they positively endorse the same bill. The ties can be weighted by the number of bills the two groups have in common. This technique creates a map of “potential allies” where network clusters and strongly linked pairs indicate organizations with similar patterns of endorsements—possibly indicating similar agendas.
Again, the image hard to view at this small size without the ability to zoom in and mouse over the labels, but I attemped to label representative nodes in each cluster. Judging by the group names when I examine the clusters, there are at least a few clusters on the network that correspond to identifiable issues or lobbying communities. On the right side there is a strong cluster of telecom companies and slightly below them is a cluster of tech companies. On the far left there is a smallish, fairly isolated collection of animal-rights groups. (In these kinds of network maps “right” and “left” are arbitrary directions, not associated with an ideology.) What are the bills that link all the telecoms? I wish I could drill directly into the edges to see a listing. It is possible to simplify the image and focus attention on the stronger relationships by filtering out some of the ties. The following image shows the same co-endorsing network, but with ties only drawn when two organizations supported more than 2 bills in common. The filtered-out ties makes it appear that there are lots of isolated orgs with no links.
How about if we look at it from the bill’s perspective?
I’m also curious to get a general map of the legislative activity: which bills are related and how? The data I have doesn’t include classifications of bills, but it is possible to construct a “co-supported” network in which bills are linked when they are both endorsed positively by the same organizations. Think of it almost like Amazon’s book recommendation service: “Groups who liked this bill also liked…” (In this view, ties are only shown when bills share more than endorser.)
This is the view that I found most interesting so far. I attempted to label the groups with my quick impression of the general topic, probably someone who follows the legislature more closely could do a better job. I thought it was interesting that the veterans-related bills formed such a distinct and isolated cluster. Can it really be true that almost no groups that endorse these bills endorse other bills? Or does it indicate an artifact of the data or a bug in my data processing?
Since S1782 lands in the dense middle clump on this network, I also created a zoomed view that shows all the bill labels. In this image it is also clear that—not surprisingly—the House and Senate versions of the same legislation are strongly linked, indicating nearly identical patterns of support. (See for example S.960 and H.1671 at the top of the image.)
Overall, I am not terribly happy with the images I’ve been able to produce with this first quick pass through the data. The ones that appear interesting also seem like they may be too complex to use as part of a user interface to the data. It is difficult find a balance of being simple enough for navigability and detailed enough to be interesting. However, I am encouraged that the structure of the networks is irregular and non-trivial. I think that it will be worthwhile to run some network-analytic algorithms and clustering routines to identify key organizations and bills and to group some of the clusters in a more rigorous fashion. It might be useful to create an overall all “atlas” of the bill and group relations within a session of Congress, set up in in such a way that it is possible to highlight all the supporters of a bill to see where it fits into the map. There is presumably quite a bit of delay between a bill’s proposal and the availability of endorsements, but it should still be possible to use the bill proposal and failure data to create animated movies of development of the alliance structures… Watch here for further developments! ;-)
Many thanks to Dan Newman and Emily Cahoun at Maplight.org for allowing me to explore the data that have put so much time and resources into collecting.