As local readers will know, I created an election results dashboard for the municipal election that took place in Edmonton on October 18, made possible thanks to the City of Edmonton’s open data. I’d say it was very well-received! There was lots of positive feedback, and it resulted in the highest-trafficked day ever for ShareEdmonton. There were also hundreds of tweets about the dashboard, including some from people in other cities.
I was able to update the dashboard on-the-fly that night, fixing the graph colors and other issues as they were identified. Overall I was pretty happy with how it turned out, though I wish I had been able to add a few more features in time for the big event. Over the last couple days, I decided to extract the dashboard from ShareEdmonton and I have now added that new functionality. Specifically, the page updates automatically (no more refreshing) and there’s a mobile view as well, so it looks decent on your mobile device.
Today is election day in Ontario, and thanks to open data from Toronto, Ottawa, and London, I was able to launch three new election results dashboards, all featuring the latest improvements:
- 2010 Toronto Election Results (Unofficial)
- 2010 Ottawa Election Results (Unofficial)
- 2010 London Election Results (Unofficial)
Some new issues have appeared that I didn’t have to worry about in the Edmonton election (for example, there are 40 candidates for mayor in Toronto, so having them all appear on the graph is difficult at best) but the sites all seem to be running smoothly. I guess we’ll find out at 8 PM EST tonight when the results start to come in!
All of these dashboards were made possible because the cities made election results data available, so kudos to each of them for doing so. The tricky thing for a developer like me is that all four cities (Edmonton, Toronto, Ottawa, and London) made the results available in a different format!
- Edmonton – XML/JSON using OGDI
- Toronto – plaintext, pipe-separated
- Ottawa – plaintext, HTML scrape, kind of a pseudo-CSV
- London – XML
Fortunately, when I had created the dashboard for Edmonton, I had built in a translation-layer. So instead of loading directly from the City’s catalogue into ShareEdmonton, I loaded it first into an internal format. So to get the dashboard working with the other cities, all I had to do was write that translation piece, from their catalogue to my internal format. As you can see, that strategy has worked fairly well (Ottawa was by far the most difficult, and did not provide me with enough information to calculate voter turnout, so that was removed from the ShareOttawa dashboard).
I’m not complaining about the need for this translation layer. I would much rather have a city make its data available than delay just to try to find a common format. But I do hope to see convergence over time. It would be great if these cities (and others that offer this data, like Vancouver) could agree on a common format. That would remove the extra work required to make an application reusable, and would hopefully result in even more applications that make use of the data.
I’m pretty excited about the possibilities of open data, especially as it relates to politics and democracy. There are some really great apps being built, such as Vote.ca, and we’re really just scratching the surface. If we keep at it, I’m confident that open data will have a positive impact on the way we engage with politics.