Most real-world STV rulesets specify how ballot weights should be rounded specifically. Most places (certainly Portland, Minneapolis, Eastpointe, and Albany CA) round the transfer values directly to the nearest 4 significant digits (although some round and some truncate). Some places (certainly those same 4 places) also re-round ballot weights after applying the new transfer values (usually rounding down), also to the nearest 4 sig figs. It would be good to expose these rounding parameters for Votekit's STV suite.
This is a pretty good first issue for anyone wanting to get familiar with Votekit's STV suite. You'd wanna look at the _update_because_winner method of NumpySTVInner. Some good tests for this Issue would be to replicate the round-by-round tabulations exactly for either of the 4 aforementioned municipalities; note that Albany already has a profile in Votekit's Test Suite; and I think there's a Portland D3 profile in there as well that should be useable as-is. You can look at the harvard dataverse for Eastpointe and Minnepolis elections (or just ask me),
Most real-world STV rulesets specify how ballot weights should be rounded specifically. Most places (certainly Portland, Minneapolis, Eastpointe, and Albany CA) round the transfer values directly to the nearest 4 significant digits (although some round and some truncate). Some places (certainly those same 4 places) also re-round ballot weights after applying the new transfer values (usually rounding down), also to the nearest 4 sig figs. It would be good to expose these rounding parameters for Votekit's STV suite.
This is a pretty good first issue for anyone wanting to get familiar with Votekit's STV suite. You'd wanna look at the
_update_because_winnermethod ofNumpySTVInner. Some good tests for this Issue would be to replicate the round-by-round tabulations exactly for either of the 4 aforementioned municipalities; note that Albany already has a profile in Votekit's Test Suite; and I think there's a Portland D3 profile in there as well that should be useable as-is. You can look at the harvard dataverse for Eastpointe and Minnepolis elections (or just ask me),