Multi-method voting / tally software for events

Many of us attend events at which we want people to experience voting with different methods. But tallying the results by hand is a hassle, and even entering data in to multiple sites for tallying via multiple methods is a hassle.

Is there software out there that will take a bunch of ballots, ideally with the opportunity to fill out different kinds of ballots (approval/ranking/rating), tally them all up in various ways, and present the results, highlighting differences?

Ideally it would also produce PDFs for ballots (and/or present an online voting interface) which could be handed out and then entered into the tally system by taking pictures with a phone.

Assuming the answer is “nothing does all that now”, how would you cobble that all up as best you could for the many straw polls that will be happening over and over e.g. for the primaries?

I know of one such meeting tonight, Thursday the 27th :smile:

I used FormScanner once ( for one piece of that puzzle (turning a directory of image files into a CSV of the data). It required quite a bit of manual setup, but it did perform flawlessly on 779 ballots. (

I agree with you. With the right software handling the whole process, a straw poll (or even a real election) could be done quite easily. I haven’t seen such software anywhere.

As I ponder how I would build this:

Are you thinking of download-and-run software, or an online tool? (Either way, the scanning would work best with a dedicated phone app.)

I’ve created PDFs in PHP and C# before. It’s fairly straightforward with the right library, but I’m not sure either of those languages is the right choice.

FormScanner is open-source. Java, I think. Perhaps it could be integrated in. If I had to write that piece from scratch, I would start with OpenCV ( It has rave reviews as an open-source computer vision library.

~ Andy

1 Like

Thanks, Andy - good input!

I’m thinking that an online tool should be part of it, but for my purposes, some can run locally and assume Linux savvy.