top of page

A Chamber Divided: What We Can Learn By Using BioFabric Charts

Lilach Manheim, Andreas Santoso, and I used Python, EasyMorph, and Tableau to take this data of historical Congressional roll call votes and perform an analysis of U.S. Senate co-voting patterns since 1967. The full visualization is embedded at the bottom of this post.

In this visualization, a BioFabric-style layout is used to show members of the U.S. Senate, and the frequency with which their voting pattern matches exactly with any one of their fellow Senators, within each session of Congress. (Although Senators are elected for six-year terms, one-third of the members are up for re-election every two years. Therefore, every two-year Congress has a different composition of 100 members.)

Arbitrarily, we decided to show the current Congress (the 115th, which began in 2017 and whose new members were elected in November 2016), and the prior 25 Congresses for comparative purposes.



Within each session of Congress, Senators are ordered in the BioFabric chart from most conservative to most liberal, based on their DW-NOMINATE scores on Dimension 1 (economic/redistributive issues), which is a commonly accepted way to quantify a U.S. Congressperson’s political leanings. The most conservative Senators appear towards the top; the most liberal at the bottom.


Additionally, the horizontal node for each Senator is colored to match that Senator’s party affiliation: red for Republican; blue for Democrat; yellow for Independent; and orange for Conservative (a very small party that is only present in the 1960s).

Each edge, or link, between two Senators is colored based on the parties of the connected nodes. If the Senators are of the same party, and therefore colored identically, so too will that link be colored. If the Senators are of different parties, the link will be a color gradient between the two nodes.

In practice, this means that cross-party links will, for the vast majority of cases, be purple, as the number of Republican and Democratic Senators far outweighs the number of Independent or Conservative ones.


By using a slider, the viewer can cycle through each of the 26 most recently seated Senates. The indicator will show not only the number of the Congress, but the years in which that Congress was seated, the sitting President at the time the Congress began, and where in a President’s term of office that particular Congress fell.


As a means to filter each chart, we built an interactive selector for “Co-voting Threshold” or “Coincidence Threshold.” By setting a value between 25% and 95% in that selector, the BioFabric chart will only show links between Senators who voted EXACTLY the same in at least that percentage of roll call votes during the chosen Congress. If any Senator did not co-vote at that frequency with ANY colleague, that node will be hidden entirely.


By hovering over or clicking on any node or edge, the viewer can see more detailed information about the Senator or the two connected Senators, including their party affiliations, states, DW-NOMINATE scores, and specific co-voting rates.


This inset chart shows the distribution of binned co-voting rates for Republican-only, Democrat-only, and cross-party relationships, as a percentage of all links in that Congress. For Congresses in the 70s and 80s, all three of these tend to look like normally distributed bell curves; in modern Senates, both party-only distributions tend to be left-skewed (more high-frequency co-voting links), and the cross-party distributions tend to be right-skewed.

(Note that this chart DOES NOT update based on the selected co-voting threshold, because it shows the entire co-voting distribution for a selected Congress.)


Below the main chart, we included small BioFabric charts for each Senate of the 26 Congresses in question. We have also included indicators for the elected or sitting President at the time that Senate was seated, as well as that President’s party affiliation.



Whether you prefer to look at one particular Congress in detail, or the filmstrip of the 26 most recent ones at a high level, one interesting thing to look for is cross-party co-voting. It is expected, certainly in the present day, for Senators from the same political party to share political views, and thus be more likely to vote identically on multiple issues.

But the Senate doesn’t only vote on contentious issues. Some votes are procedural only; some are (or historically have been) entirely bipartisan. If you set your co-voting threshold low enough, you’re sure to see co-voting both within and across parties.

The interesting thing to look for is, at what threshold does that cross-party voting begin, in any given year? Those are the Senators who are either most willing to cross the aisle, or to make compromises and deals with their colleagues, or who are only nominally members of their stated party but are actually more ideologically inclined to support the other. How high of a threshold can you set and *still* see cross-party co-voting? How low can you go and still NOT see any? Those are the most intransigent, party-vs.-party, gridlocked Congresses.


Set your co-voting threshold to a high value, like 80%, let’s say. Then look at the filmstrip of all 26 sessions. You’ll notice that until the late 80s or into the 90s, there are very few Senators who vote in lockstep with ANY of their colleagues this frequently.

But starting with Democrats in the late Reagan/Bush 41 years, and skyrocketing in the Gingrich-led GOP of the Clinton years, party-lockstep voting came into being and appears to be here to stay. Not only do we have to set our co-voting thresholds lower before cross-party links appear, but we see lots more intra-party links, at much higher thresholds.

This would indicate that more contentious bills are being introduced, or that Senators are voting based on party loyalty rather than on consideration of each bill’s merits, or possibly that greater transparency and more media attention on the Senate means that the kind of vote-trading and deal-making that led to the appearance of bipartisanship, so common in the past, is no longer viable.


Set your co-voting threshold to 65%. Look at the filmstrip and see how few links there are AT ALL in the Congresses of the 60s, and 70s. Set it slightly higher and you’ll see blank squares. But in modern era Senates? There are still bright lines, showing lots more high-threshold co-voting rates.

What are we to make of this? It’s not just that Senates of the past didn’t vote in lockstep with their fellow party members; it’s that they didn’t vote in lockstep with ANYBODY. Why would this be the case? It would seem to be that Senators at the time would consider each matter individually, rather than applying ideology to a vote.


While there is not enough data here to provide definitive answers or explanations for these differences, the BioFabric charts give us a means to see these distinct, unmistakable variations among our historical Congresses, in a way that traditional network diagrams cannot.


Recent Posts

See All
bottom of page