As part of the WhichWayNC project, we recently launched The Roll Call, a Web application aimed at providing a simple and intuitive means of exploring the North Carolina General Assembly and its voting history.
At its core, the application breaks down voting results by legislator, bill and chamber. It also displays the status of bills and the party identification of legislators.
Beyond keeping the application simple, we had two primary goals: to provide the information that people actually want in an easily digestible form and to reduce the complicated life of a bill into something that our users would instantly be able to understand. As the programmer, I had an additional goal for The Roll Call: it had to be completely automated. This project would have been dead before we started if it relied on humans for data entry or editing.
Unfortunately, making our application simple turned out to be a rather difficult thing to do. We had automation challenging us on the technical side and the complicated source material (along with our “mobile first” motto) on the design side.
The legislative process is complex, and the path of a bill from proposal to law is not a straight path. We needed a way to present the many stages of a bill’s life while keeping our application relatively simple. To that end, we were inspired by the Domino’s Tracker, which shows the status of your pizza from the moment your order is placed until it goes out for delivery. We built a similar product for tracking bills called the Bill Tracker.
Just like its pizza-tracking counterpart, our Bill Tracker displays a bill’s life subdivided into simplified stages and color-coded to mark progress. While the implementation is still a little rough, we think that through iteration, the Bill Tracker is going to evolve into an excellent tool for anyone interested in what the North Carolina General Assembly is up to.
We pull our data directly from the North Carolina General Assembly website through a technique known as Web scraping. The database is updated once a day using an automated parser that downloads the data and processes it. As the parser moves through the data, it breaks the data up into small, meaningful pieces that we then store in our own database. Our application simply would not exist without it.
That being said, this parser was easily one of the most frustrating pieces of software I’ve ever worked with. I’ll stay away from the technical details, but let it be known that building an automated process that relies on an essentially untrustworthy source is beyond difficult. I’m sure the General Assembly Web staff is composed of wonderful people, but seriously expecting a human to not make a mistake or to stick to a strict pattern is insane. And any such mistake or deviation could lead to the parser dying in a fatal error and me having to pore through the hundreds of pages we parse during each update to find out what went wrong.
There are many things that we can do better, and there are just as many new features waiting to be implemented. Here are a few of the changes that are definitely coming over the next few weeks, along with a few wild ideas thrown in for good measure.
At this point, I feel like half the words in this post are synonyms of “complicated”, but I want to say it again: The legislative process is complex. We want to do a better job of guiding the user through this process. The implementation of any feature in this area really doesn’t have to be overly technical. We feel that something as simple as tooltips to explain some of the more confusing stages in the Bill Tracker or even a separate page walking the user through the life of a bill would be beneficial.
On the other hand, there is the potential for more technical features in the “guiding and teaching” category. Imagine an interactive version of the Bill Tracker that allows the user to choose the outcome of certain stages and walk the bill through the possible paths to law or death.
While not strictly related to how the General Assembly votes, we’d like districts to become more than just an integer on a legislator’s page. One of our first post-launch features will be a “Find Your District” feature that will allow a user to enter an address and get the representatives and senators that represent that district. We think this could also be combined with other publicly available data to include things like a user’s polling place and cumulative stats for the current and past legislators from your district.
The Bill Tracker has huge potential for growth, and by the end of this summer, I predict it will be something truly amazing and unique. The tracker could predict points of contention and display the possible branching paths at these points. On the other hand, the tracker could bring in analytical, predictive, or even emotional data from outside sources. Not only would this make the legislature seem more alive, but how cool would it be to look at the tracker and instantly know the public’s emotional sentiment for each stage of the bill’s life?
This really is only the beginning. The Roll Call will continue to grow as we revisit our initial goals and hear from users.