electorama / abif

The _Aggregated Ballot Information Format_ provides a concise, aggregated, text-based document to describe the ballots cast in range-based or ranked elections, as well as approval-based and choose-one balloting systems.
Other
4 stars 1 forks source link

What types of scores to allow? #11

Closed simberaj closed 3 years ago

simberaj commented 3 years ago

Alongside integer scores, what kinds of scores do we want ABIF to support?

A/5    # a no-brainer
A/4.5    # decimal non-integer
A/1/3    # rational fractions, the notation gets very unreadable with this combination though
A/A    # used e.g. in standard notations of Majority Judgment

Votelib currently supports the first two alternatives.

robla commented 3 years ago

@simberaj - I think that this issue (along with issue #10 ) points to the need to define what a "number" is. We might want to encourage implementations to normalize their vote ranges and ballot counts to integers, and then provide an optional mechanism for expressing that normalization. To take your example, one way we could express your first three rating examples (A/5, A/4.5, and A/1/3) in the context of a complete ballot set would be like this:

{"RatingMultiplier":30}
10: A/150, B/120, C/30
10: A/135, B/105, C/15
10: A/10, B/105, C/170

Implementations that use the optional "RatingMultiplier" parameter would know to divide by the rating multiplier when reading, and multiply by the rating multiplier when writing. However, I hadn't fully considered this use case, so I'll need to think on it a bit.

simberaj commented 3 years ago

OK, I'm content with keeping integer scores only.