ethyi

ethyi


Pref Poll - A frictionless preference voting app

Prefpoll allows anyone to make preference polls for free. I made it because I found no free, simple to use preference poll apps.

  • Free
  • No signups
  • Accurate ranks
    • Safe to use in multiple winner elections

App

Source Code

Selection_015

## Implementation

I took heavy inspiration from the simplistic, yet effective design of the original Strawpoll (RIP).

The main algorithm used is Ranked Choice Voting due to its popularity and adoption in NY.

Though some implementations have ways to break ties, my version just includes them in the results.

## Accurate Rankings

Though most preference poll apps correctly calculate the highest vote, they don't calculate the subsequent positions accurately.

I am pretty sure other preference poll apps aren't trying to decieve their audience, I just think most people don't understand that

Traditional RCV elections only find who's 1st. Whoever is "2nd" is not guaranteed to be the actual 2nd favorite choice of the population.

A good indicator that they do this is if they use percentages, which is a poor visualization of how RCV works for all ranks, but a good visualization for how it only calculates who's 1st.

My app displays all ranks accurately. If you wanted to have a multiple N winner election, you could safely just declare the top N as winners. There would be no wasted time doing runoff elections.

### Example

  • Options A, B, C
  • Total Votes - 100
    • ACB - 99 votes
    • BAC - 1 vote
  • Results in order
    • A - 99%
    • B - 1%
    • C - 0%

A is first, no doubt about it, but do you think B is truly second?

I'd argue that whatever is in 2nd is the next favorite choice of the population if the 1st place option didn't exist.

In other words, the true 2nd would be the 1st in an election where option A didn't exist.

If option A was an invalid choice and we reran the election with the same population, ideally this is what would happen.

  • Total Votes - 100
    • CB - 99 votes
    • BC - 1 vote
  • Results in order
    • C - 99%
    • B - 1%

C would be 1st here and 2nd overall.

Most polls would have B 2nd overall, and use its percentage to explain that it was the next highest percentage after A's. Most people would likely misinterpret this to mean that B is 2nd.

My app does the recalculation and outputs C as 2nd. The only issue is that this recalculation is expensive for lots of options O(n!n^2).

This is why percentages are a bad metric for voting weight. I am working on a better visualization that captures true rankings.