This November, voters in Portland, Maine will elect their new mayor using a ranked-choice ballot. Voters will be able to rank as many as 15 candidates in their order of preference.
The ranked choice system will provide a lot of advantages over traditional elections, where you can only choose one candidate. No longer will we have to worry about the "spoiler effect" of third-party candidates: now, we can vote for Ralph Nader AND Al Gore.
Nevertheless, with fifteen candidates (and up to fifteen possible rankings to choose), the novelty of the ranked choice system is causing some confusion for local voters. It's difficult to explain the dynamics of a ranked-choice election in prose, and some attempts have been downright misleading.
So (and I'm puffing my chest out as I write this, because this represents my first substantial foray into practical programming) I've written a Ranked Choice Election simulation game to let people experience firsthand how a ranked choice election will work.
Fill out up to 50 different ballots as though they were coming from different voters. The program will then run through the Instant Runoff counting process, sequentially eliminating last-place contenders and explaining the process of reallocating the ballots along the way, until one winner crosses the crucial 50% threshold.
It may not look like much, but I spent many, many hours working on this over the summer and fall, so please consider leaving a tip if you find it useful (or, click often on our fossil fuel propagandist advertisers). I've tried my best to debug it across various browsers but it'll work best on Chrome, Safari, or Firefox, and don't bother if you're on a phone.