This is close, except it would not use fractions. Here’s how it works:
Each voter is allocated a certain number of votes per citizenship token (CT
). Let’s call this V
and say that V = 9
. Each citizen then has CT * V
votes.
A citizen can cast as many votes for or against as many of the options as she wishes, with the hard constraint that she can cast up to CT * V
.
Let’s says question is “what’s your favorite animal?” with { dog, cat, fish }
as the choices.
Alice might express a relatively neutral preference by voting something like:
Alice = { dog: 5, cat: 4, fish: 1 }
and Bob could display a strong dislike of fish and a relative apathy towards the others with
Bob = { dog: 0, cat: 0, fish: -9 }
At this point, the votes are rooted. To continue the above example:
{ dog: 5, cat: 4, fish: 1 } => { dog: 2.24, cat: 2, fish: 1 }
{ dog: 0, cat: 0, fish: -9 } => { dog: 0, cat: 0, fish: -3 }
When the votes are tallied, dog is the winner, but we learn that cat was close behind and fish are disliked twice as much as cats.
{ dog: 2.24, cat: 2, fish: -2 }
If this was a ranked choice ballot, we would then perform a runoff with {dog,cat}
as the sole options.