Goodbye Gallup: Twitter-Based Election Polls

by Chadwick Wood
September 20th, 2010

The other night I had an idea: Create a web service that uses Twitter to poll the upcoming elections. I'd love to see if something like this could give accurate predictions for election results. And, it would be a transparent (although not anonymous) polling system. Here's how it works:

How to Vote in a Poll

First off, we'd need a name for a Twitter account that will be used by people to signify a poll vote. I suggest @iAmVotingFor. So, anyone who wants to take part in a poll for any race in the election simply tweets "@iAmVotingFor" followed by the Twitter account of the candidate they are voting for (e.g. "@iAmVotingFor @jdoe". The web service will monitor all mentions of iAmVotingFor, and cast a poll vote for a candidate whenever it sees a candidate's Twitter name in one of those tweets.

Internally, each recorded vote will be tied to the Twitter name of the voter, so that a person can switch their vote if they want, just by tweeting the name of an opposing candidate in a race. The web service would note that a new vote had been cast by that person, and remove the conflicting, older vote.

How Election Races Are Tracked

Since I'm lazy, I've given some thought to how the races would be set up. How does this service know who's running against whom, and what their Twitter accounts are? For this problem, the website (iAmVotingFor.com) would be used. Visitors can go to the website, and in one section, they will be presented with a series of questions like "Who is @jdoe running against?". A list of possible matches will be shown, and the user chooses among those matches, or enters their own, to tell the system who the candidate @jdoe is running against.

It would take a certain number of matching responses across a number of users to confirm any given race that's taking place, to avoid malicious or mistaken users messing things up.

Showing the Results

The website would also have a chart for each election race, showing the voter breakdown as it's changing over time. My hope is that this chart would get more and more accurate as more votes are cast in the polls. Some sort of location-based election grouping would be good, to make the site easily navigable, allowing a person to see the elections that matter to them.

Also, the @iAmVotingFor Twitter account could be hooked up to the web service to automatically tweet whenever a significant change occurs, or a threshold is met, for a race.

Why It Could Be Viral

The fact that people cast votes in the poll by mentioning the Twitter name of the service itself is what would hopefully spread word quickly about the existence of the service. Followers of a voter would see the vote tweet, and hopefully check out what @iAmVotingFor is.

To facilitate the voting process, on the iAmVotingFor.com, each page for an election race could have a widget showing a button for each candidate in the race. A user could simply click the button for a candidate, and a vote tweet (e.g. "@iAmVotingFor @jDoe (via iAmVotingFor.com)" would be constructed for the user to quickly send out (or maybe the tweet could just happen, I'm not clear on the API possibilities there).

Assumptions, Problems, Whatever

One assumption of this service is that every political candidate has a Twitter account. That's probably not the case, but I bet it's not too far off. I'm sure every campaign manager out there is aware of Twitter now, and is probably creating a Twitter account for their candidate, whether they really know what Twitter is or not.

Also, there's obviously got to be a statistical skew to this data: only Twitter users are voting. That's not an accurate reflection of the demographics of the nation as a whole.

And the big gotcha: you don't have to be an eligible US voter to cast a vote in this poll.

But So What? Let's Do It

It's an experiment! The interesting thing to see would be: given these problems and assumptions inherent in the poll, how accurate would the results be in predicting elections?

So, if you think this is an interesting idea, help me out. Either spread word about this idea (Twitter might be a good way), or let me know if you're interested in taking on the project (you can contact me via my website), or just go out and start making it happen. I don't care if you take the idea and run with it; I'd just like to see what happens if it comes into existence.