The intent is to make a proportional version of SODA, which preserves SODA's principal advantages. These are, as I see them: (1) ballot simplicity, (2) relative counting simplicity, (3) good results, and (4) acceptability from the point of view of an existing plurality-winner politician.
The resulting system will not reduce to SODA in the single-winner case, although it will come close. The tactical concerns in an "order of play" system are too different between mulit- and single-winner. For instance, single-winner has no free-rider strategy. So here's the base system. As with SODA, ballots are approval-style, with bullet votes counting as delegated to the candidate for further use. The Droop quota is used and reweighting is "quota-style". Unlike SODA, candidates pre-declare, not a delegation ranking, but an approval-style ballot for delegation. One can imagine that many candidates would simply approve all "nominated" members of their party. The election proceeds by first electing candidates with a Droop quota and re-assigning overvotes, from most "total votes" on down; then eliminating candidates and transferring, from least "unique votes" up, electing any candidates who attain a Droop quota during the transfers; and finally, electing all un-eliminated candidates when there are only enough to fill the remaining seats. The pseudocode is at the end of this message; and it's simpler than it looks at first glance. Basically, it defines "total votes" and "unique votes", and implements the procedure I just explained in one (compound) sentence. This system, I believe, satisfies my first three criteria for a good PR-SODA. To make it satisfy the fourth — acceptability from the point of view of an existing plurality-winner politician — I would simply redesign the ballots by district. All candidates from the district where the ballot is cast would be listed first, in large type; all candidates from the closest two other districts (by some simple metric - it doesn't matter) would be listed later, in smaller type; and all other candidates would be available only as write-ins. Why would this be acceptable to existing politicians? Well, if you assume "no changes to voting patterns", and a state gerrymandered "fairly" such that results are already two-party proportional, it would give the same results as districted FPTP. That is, if all voters vote for one of two "nominated" major-party candidates from their district, and all candidates approve the one "nominated" candidate per district from their party, then this system is just a proportional adjustment to FPTP. It would be important, in this system, that both main parties and third parties would allow "fusion" main-party candidates. If not, a fringe party could "spoil" the election of too many sympathetic major-party candidates, and thus counterproductively push the major party (although not the legislature) away from their position. This is a matter of intraparty rules, not election rules, but I think it could be worked out satisfactorily. JQ ps. Here's the pseudocode I promised: subroutine recalculate totals: for each candidate: total votes T(C) <- sum(ballots approving candidate * ballot weight) delegated votes D(C) <- sum(ballots delegating to candidate * ballot weight) unique votes U(C) <- sum(ballots approving candidate * ballot weight / number of uneliminated candidates approved on the ballot) subroutine elect C and reweight ballots: add C to elected candidates, remove C from uneliminated candidates, reduce remaining seats by 1 for each ballot B which was delegated to C: ballot now approves of all candidates approved by C ballot weight W(B) <- W(B) * min(0, (D(C)-d)/D(C)) [that is, use up delegated votes first] for each ballot B approving but not delegating to C: ballot weight W(B) <- W(B) * min(0, (T(C) - max(0, d-D(C)))/T(C)) [that is, use up the remainder of the Droop quota which wasn't used up in delegated votes] subroutine eliminate C: remove C from set of uneliminated candidates for each ballot B which was delegated to C: ballot now approves of all candidates approved by C Main procedure: Droop Quota d <- V / (N+1) [this is really the non-integer whatstheirname quota, but whatever] All ballots start with weight W(B) <- 1 uneliminated canidates <- all candidates recalculate totals while there are more uneliminated candidates than remaining seats: while there are any candidates with T(C) > D: elect candidate with highest T(C) and reweight ballots recalculate totals eliminate candidate with lowest U(C) elect all uneliminated candidates
---- Election-Methods mailing list - see http://electorama.com/em for list info
