The purpose of this application is to help you understand how your congressperson is serving your interests.
There are a lot of things a congressperson does to help their constituents. Some are hard to measure objectively. But IMHO the most important thing they do is to cast votes in Congress, and that we can measure precisely.
By categorizing bills into Special Interest Groups and cross-referencing rollcall votes we can get some insight into the value-system that a congressperson holds.
Do they vote 100% along the political party line? Do they support ObamaCare? What about the Keystone XL Pipeline?
What are your hot buttons? If they voted on them, this application can answer the question: "How are you being represented?".
Congresspersons, Bills, and Special Interest Groups are the three main concepts in this application.
The information on bills, voting, and members of congress comes directly from the web site, www.GovTrack.us. This application is focusing on the 113th Congress [2013 - 2014], which is still in progress. Follow-up releases will include bug fixes, new features, and updates on the latest congressional voting.
In this application a 'Special Interest Group' (SIG) is defined as a set of bills and a preferred vote on each. There are some predefined SIGs, but the intent is to let you define your own.
For example, there is a predefined SIG called "Democratic Party Line". This includes all the bills and the preferred voting pattern is defined by the party leadership, in this case Nancy Pelosi in the House and Harry Reid in the Senate. Similarly there is another SIG called "Republican Party Line"
To make the system more manageable, we are only considering bills that had a 'rollcall' vote on their 'passage'.
The bill doesn't have to pass, just have a rollcall vote on 'passage'.
We don't consider votes on amendments or procedural events (like cloture).
We would also not consider a bill if it passed both chambers by acclimation.
It turns out, in the House this leaves us with over 100 bills to work with. In the Senate not so many. To help characterize the Senators I have included the nomination confirmation rollcall votes which were not unanimous.
When you start the application it brings up the 'Home Screen'. While the program initializes, the background is red and a message appears at the bottom of the screen. When initialization completes the background turns blue. On my test systems initialization takes about 7 seconds.
There are three main concepts presented: Bills, Special Interests Groups, and Congresspersons. They all interrelate. Pick one and browse.
Below is a screen shot of the Congressional Bills listing.
Remember, not all bills are contained in this list. Only nominations and bills for which there has been a rollcall vote on passage in either the House or Senate are included. Also remember that as of the release date of this application the 113th Congress is still in session, so you may need to get an updated version of this app to include the latest votes.
Each bill is represented by a 'progress' icon, the abbreviated name of the bill, and the official title.
The progress icon has the following meaning:
if the left of the star is blue then a version of the bill was voted on in the House.
if the right of the star is blue then a version of the bill was voted on in the Senate.
if the star is all blue then some version of the bill was voted on in both chambers.
if the background is gold then the president has signed the bill or the nomination has been confirmed.
The rows can be sorted in two different ways:
"Name" sorts the rows according to the abbreviated name.
"Progress" sorts the rows by their progress icon.
Sort by Name if you are looking for a specific bill. Sorting by Progress merely emphasizes the 'do-nothing-ness' of the 113th.
On large phones or tablets the Bill Details panel may be displayed to the right of the Bills Listing.
Below is a screen shot of the Bill Detail panel.
The abbreviated name of the bill is displayed in the upper left.
The GovTrack button is just to the right. Pressing this button will take you to an internet browser and (if you have a WI-FI connection) link to GovTrack's information page.
As of this writing there is no GovTrack page for Nominations.
Below that are the buttons which take you to the rollcall votes in the House and Senate for that bill. There may not be a rollcall in both chambers, in which case the button is disabled.
Below the rollcall buttons is the Official title of the bill.
Below the title is a list of the Special Interest Groups in which this bill is referenced.
Sometimes the official title is so long that it keeps the SIG listing from being seen. Try holding the phone in portrait orientation.
Below is a screen shot of a rollcall vote.
The bill's abbreviated name is displayed at the top along with the rollcall identifier in the ''.
In the table view, the headings are:
state [and district for Representatives]
the rollcall vote on this bill
This tabular display supports some enhanced sorting and scrolling capabilities. You can probably figure it out but here is a full explanation.
Below is a screen shot of the Special Interest Group listing.
This panel is just a simple listing of Special Interest Group names. Touch a name to see the details on that SIG.
The makeup of a Special Interest Groups is under control of the user. I have pre-created a few interesting examples but I am not a political expert (and would be interested in your definitions).
If you are into it enough to define your own SIG, read the section on Creating Special Interest Groups.
Please note, under the "SIGS" menu option there is one item named "Rank Congresspersons". This is how you get to the display Special Interest Group Congressperson Ranking.
Below is a screen shot of the Special Interest Group detail panel.
This view shows the detail settings on a particular Special Interest Group. In this case the Environment SIG.
On the right of the top line are the names of the House and Senate advocates.
Below that is the list of bills and positions that the SIG prefers. The Advocate's vote on the bill is displayed on the right. If they agree with the SIG position (normally you would expect that), then an '*' is displayed.
If they are different, then the advocate's position is shown on the right. Most of the time it is because the advocate missed a vote as happened above on H.R. 3. I explicitly set the H.R. 3 position using the Assign Bill Position command. See the section on Creating Special Interest Groups for more details.
At the bottom of the view is the official title of the selected bill. You can click on the GovTrack button to go online and get more information on the bill.
As of this writing there is no GovTrack page for nominations.
Below is a screen shot of the Special Interest Group Congressperson Ranking.
In this screen shot we are looking at a list of congresspersons ranked according to their support for the "Environment" Special Interest Group. I have scrolled down in the list a bit.
As an example, lets look at the entry for Mike McIntyre. He is the Democratic (blue dot) representative from North Carolina's 7th district. He supported 23% of the positions in the Environment SIG.
If you touch a congressperson (without moving your finger up/down or right/left) you will be taken to their "Detail" page. From there you can examine their overall voting record.
This view provides access to rankings for each Special Interest Group. Note the blue 'swipe' bar at the top of this display. In this screen shot we are looking at the "Environment" display. If we swipe our finger to the left, then we will be looking at the "Financial Reform" SIG. If we swipe our finger to the right we will be looking at the "Democratic Party Line" SIG.
Below is a screen shot of the Congressperson Listing.
Each congressperson is represented by a 'status' icon, their name and an indication of who they represent. For House members that would be their state and district number. If there is only one representative for the state, then the district number will be "0". For senators it just indicates the state and an "S".
Some former congresspersons are also included in the list, including President Obama. To minimize confusion their state and district is left blank.
The status icon has the title "Rep" or "Sen" for House or Senate membership. If it is printed in red, then they are Republicans, blue means Democrat, and otherwise (Independent) black. If the background of the icon is yellow, that means that congressperson is the chairman of some committee.
You can sort by Name or by District.
Clicking/touching on an item in the list will show details of that person.
Below is a screen shot of the Congressperson Detail panel.
This is an example detail panel for Michael McCaul, a republican from Texas' 10th district.
You can click the "Voting Record" button to see their voting record (described below).
You can click on an item the icon bar to link you to an online resource (requires WI-FI connection).
takes you to their web page.
takes you to their YouTube page.
takes you to their Twitter account.
takes you to their GovTrack page.
At the bottom of the display is a list of the committees they are in. If there is a gold star by their name then they are the chairperson of that committee. If the star is silver, then they are the 'ranking member' of their party on that committee.
In the 113th Congress, 'ranking member' means a senior Democrat in the House or a senior Republican in the Senate. We are not indicating sub-committees organization.
Below is a screen shot of the Congressperson Voting Record Summary
The Congresspersons' Voting Record starts by showing you a summary of how well they support each of the defined Special Interest Groups.
In this example of Rep. Michael McCaul's voting record, we see that he has a very strong Republican voting record at 97%. In the Women's Rights SIG he ranks a 20% support level.
The support level is a simple computation:
count the number of 'referenced-bills' in the SIG.
count the number of 'agreeing-votes' with the SIG.
divide the 'agreeing-votes' by the number 'referenced-bills'.
multiply by 100 to get a percentage.
You can get to the voting details for any SIG by selecting it from the drop-down choice box at the top of the screen or by simply tapping/clicking on the SIG name in the listing.
Below is a screenshot of a congressperson's voting record with respect to a specific Special Interest Group.
This is an example of a voting detail record for Rep. McCaul with respect to the Women's Rights SIG. In this case he agreed with one out of five votes, giving him a 20% ranking.
By clicking/touching a bill you can see the official title at the bottom of the screen. By pressing the GovTrack button you can go on-line to learn more about the bill.
NOTE: Special Interest Groups are designed to be politically biased. In this case the "Women's Rights" SIG biased to score well for the more liberal agenda. You can define your own Special Interest Group and supply your own particular bias (or even re-define this one). See the section on defining special interest groups.
You don't need to read this; you will probably figure it out on your own, but there are some special features built into the Table Data Viewer.
Tap on the column heading to sort the rows according to that column. "Stable sorting" is used. That means if there is a 'tie' with respect to comparing two rows on a specific column, then the tie is resolved by looking at the order in which the rows were previously sorted.
Here is an example of how to use stable sorting in the Bill Rollcall Vote display.
Sort according to "Vote"
Then sort according to "Party"
This will quickly show you the voting blocks within a party (for example, looking for Tea Party Supporters).
Some displays have over 400 rows in them. I thought the standard 'Finger-flinging' was tedious so I implemented a different scheme.
To quickly move through a large number of rows, place your finger on the scroll-bar area on the right. Moving your finger up/down will position the display percentage-wise through the listing.
You can also press down on a row and move your finger up or down. On this table viewer, however there there are three 'speeds'.
by putting your finger down on the left side of the screen, the rows move up and down with your finger.
by putting your finger down about 1/3 of the way from the left, the rows scroll at a '20x speed'.
by putting your finger down about 1/3 of the way from the right, the rows scroll at a '10x speed'.
By '10x speed' I mean it takes10 full swipes of your finger to move through all of the rows. '20x speed' means it will take 20 swipes of your finger to move through all of the rows.
The framework of this application is politically neutral. However defining a Special Interest Group gets down into the nuts and bolts of the politics in our government.
I have pre-defined a few SIGs and probably demonstrated a middle of the road Democratic bias. However I believe SIGs can be defined to measure any political perspective as long as there have been rollcall votes on relevant bills.
I promise not to hard code any political preferences into the framework of this or any future version of this program. What I have done with the pre-defined SIGS, you can undo, alter, or delete.
In the future I hope to create a website where respected sources from all political perspectives can publish Special Interest Group definitions. Let me know if you get something you are proud of.
When the application runs the first time a SIG definition file is created on your file system at:
Each time you make a change to a SIG definition, this file is updated. You can share these files with others if you want. I would advise against editing these files directly; if you make a syntactic mistake it could cause the application to stop working.
If there are problems with loading the Special Interest Group definitions you can delete the SIGs.xml file and the program will re-create it the next time it starts using the default/original definitions.
To create a new Special Interest Group:
Go to the "List Special Interest Groups" screen.
From the menu select "SIGS" then select "New Special Interest Group...".
This will bring up a dialog box.
Enter the "Name" for the interest group; 30 alpha-numeric character or less.
Enter a "Short Name"; 10 alpha-numeric characters or less.
The next thing you need to do is go to the "List Bills" screen. As you scan through the list of bills you will find some that address your SIG.
To include a bill & position in a SIG:
Make sure the bill of interest is selected and being displayed.
A "SIG" menu item should appear at the top of the application.
From the SIG menu select "Assign Bill...".
This will bring up a dialog box.
From the first choice box select a Special Interest Group.
The second choice box will identify the bill of interest. There may have been multiple rollcalls on this bill (one from the Senate and/or one from the House). From the dropdown, select the rollcall that you want to include.
Select the vote that reflects the position of the SIG.
Note that if there is a rollcall in both chambers, you will probably want to include them both. In that case you will need to re-invoke this dialog to include the other one.
It's not to hard to find a bill that is relevant to a SIG, but unless you are well informed or adept in reading legislation it will be hard for you to figure out whether you want the bill to pass or fail. The titles of the bills always sound like a good thing.
To help support neophytes like myself, I have included the concept of 'SIG Advocate'. An advocate is a member of Congress who's vote tends to align with your SIG. For example, Elizabeth Warren is a Senator who's vote aligns with my sense of Financial Reform.
After you assign an advocate to a SIG, then when you use the Assign Bill command, the advocate's vote is displayed in the dialog box and is used as the default position.
To make your life easy, you should assign an advocate from the Senate and from the House.
To assign an advocate to a SIG, go to the "List Congress Person" screen.
Make sure the representative or senator you want to be the advocate is selected and being displayed.
A SIG menu item should appear at the top of the application.
From the SIG menu select "Assign SIG Advocate...".
This will bring up a dialog box.
The congressperson will be named at the top of the dialog.
Below that you should select the Special Interest Group.
Check "Align with advocates voting record." to update existing SIG rollcall positions to agree with the advocate's (see notes below).
Check "Use advocates complete voting record." if you want the SIG to adopt all the advocate's rollcall votes (see notes below).
"Align with advocates voting record" will go through all of the 'applicable' rollcall votes currently assigned to the SIG and change the 'position' to agree with whatever the advocate voted. By applicable I mean a Senator only affects Senatorial rollcalls and a Representative only affects rollcalls from the House. It does not add or remove any additional bills to the SIG.
"Use advocates complete voting record." means remove all the bills/positions currently associated with the SIG and add all the bills that the advocate has voted on and take the same position they took. This is what I used to create the "Democratic/Republican Party lines." After doing this you can of course refine the SIG by altering or removing some of the bill positions.
Suppose you know a congressperson who wants to run for President. Create a Special Interest Group based on their voting record. You may want to refine the set of bills to emphasize the issues that the candidate feels are important. Then go to the Special Interest Group Ranking screen and see how other Congresspersons align with them.
Each House congressional district represents an ~equal number of voters. Do their positions dominate in enough districts to get elected? Or perhaps consider how they compare with other candidates.
In another approach, you could create a SIG to define an ideal (or worst) candidate. Do the SIG Ranking and see who bubbles to the top.
Well ...this is a first release.
It's getting warmer and I want to go out and play.
Let me know if you think this application should live on or die.