TS
Ted Stern
Fri, Aug 7, 2020 9:33 PM
Over the years a number of people on this list (e.g. Rob Lanphier, myself
and others) have proposed various methods for using Approval in primary
elections.
There are arguments to be made for using other PR methods, but it seems to
me that SNTV is ideally suited to be a primary method, since it resists
pushover and doesn't tend to overrepresent parties.
Using Approval as a base method, single non-transferable approval voting
would look like
- Advance Approval winner and Approval runner-up
- Deweight to zero all ballots approving of AW.
- Repeat until some threshold (e.g. 90%) of ballots have been used up:
- Advance approval winner on the current remaining ballots
- Deweight ballots approving of latest winner to zero
The advantages here are
- Relative simplicity -- No complicated reweighting algorithms, so each
recount for the next approval winner is faster than the previous, and can
even be done by hand.
- Each winner (other than the first approval runner-up) will tend to be
from a different party or faction of a party. There may be some overlap
from also advancing the overall Approval runner-up, but if the total AW and
ARU are from the same party, it gives them an advantage under Approval to
have a similar candidate for comparison.
- Most groups will be represented in the General election.
- Pushover strategy is disincentivized by complete deweighting, so
parties should not be threatened by strategic promotion of their worst
candidate. There is some possibility that voters would do that regardless,
but the effect should be no worse than in current top-two elections.
- Modifications could include:
- Stop advancing candidates when the highest approval on remaining
ballots drops below a threshold. For example, if the total deweight
threshold is 90%, if the latest winner has less than 5% approval on
remaining ballots (half the complement of 90%), break the loop.
- Stop when a certain number of candidates have advanced. For
example, if using the 5% rule above, it is possible that 10 to 15
candidates could advance to the General, defeating the winnowing
purpose of
a primary. It seems reasonable to stop at 5 or 6 candidates.
- Use a different method other than simple Approval.
I would be perfectly satisfied to have SNTAV as a primary method, but if
one can handle a bit more complexity (say in smaller groups), it would be
reasonable to use Approval Sorted Margins as the base method:
- Use Ranked or Rated ballots with explicit Approval Cutoff. If not
explicitly specified, cutoff is at zero-rating or last ranking.
- Advance Approval Sorted Margins winner to general election
- Deweight to zero all ballots approving of AW.
- Repeat until some threshold (e.g. 90%) of ballots have been used up:
- Advance ASM winner on the current remaining ballots
- Deweight ballots approving of latest winner to zero
For public elections, I think the SNTAV approach I outline above, with a
90% threshold, 5% minimum remaining approval, and limited to 6 candidates
(4 approval winners and 1 top approval runner-up) gives enough room to
enable more parties to develop.
Over the years a number of people on this list (e.g. Rob Lanphier, myself
and others) have proposed various methods for using Approval in primary
elections.
There are arguments to be made for using other PR methods, but it seems to
me that SNTV is ideally suited to be a primary method, since it resists
pushover and doesn't tend to overrepresent parties.
Using Approval as a base method, single non-transferable approval voting
would look like
- Advance Approval winner and Approval runner-up
- Deweight to zero all ballots approving of AW.
- Repeat until some threshold (e.g. 90%) of ballots have been used up:
- Advance approval winner on the current remaining ballots
- Deweight ballots approving of latest winner to zero
The advantages here are
- Relative simplicity -- No complicated reweighting algorithms, so each
recount for the next approval winner is faster than the previous, and can
even be done by hand.
- Each winner (other than the first approval runner-up) will tend to be
from a different party or faction of a party. There may be some overlap
from also advancing the overall Approval runner-up, but if the total AW and
ARU are from the same party, it gives them an advantage under Approval to
have a similar candidate for comparison.
- Most groups will be represented in the General election.
- Pushover strategy is disincentivized by complete deweighting, so
parties should not be threatened by strategic promotion of their worst
candidate. There is some possibility that voters would do that regardless,
but the effect should be no worse than in current top-two elections.
- Modifications could include:
- Stop advancing candidates when the highest approval on remaining
ballots drops below a threshold. For example, if the total deweight
threshold is 90%, if the latest winner has less than 5% approval on
remaining ballots (half the complement of 90%), break the loop.
- Stop when a certain number of candidates have advanced. For
example, if using the 5% rule above, it is possible that 10 to 15
candidates could advance to the General, defeating the winnowing
purpose of
a primary. It seems reasonable to stop at 5 or 6 candidates.
- Use a different method other than simple Approval.
I would be perfectly satisfied to have SNTAV as a primary method, but if
one can handle a bit more complexity (say in smaller groups), it would be
reasonable to use Approval Sorted Margins as the base method:
- Use Ranked or Rated ballots with explicit Approval Cutoff. If not
explicitly specified, cutoff is at zero-rating or last ranking.
- Advance Approval Sorted Margins winner to general election
- Deweight to zero all ballots approving of AW.
- Repeat until some threshold (e.g. 90%) of ballots have been used up:
- Advance ASM winner on the current remaining ballots
- Deweight ballots approving of latest winner to zero
For public elections, I think the SNTAV approach I outline above, with a
90% threshold, 5% minimum remaining approval, and limited to 6 candidates
(4 approval winners and 1 top approval runner-up) gives enough room to
enable more parties to develop.
TS
Ted Stern
Thu, Sep 17, 2020 8:43 PM
I've implemented the primary idea I proposed last month. It's available in
my github repository as winnow.py. The repo is located at
https://github.com/dodecatheon/approval-sorted-margins/
The code is designed to be used as a test bed for several
score-ballot-based methods.
The default method for advancing candidates is Preference Approval Sorted
Margins. It's basically Approval Sorted Margins, but I interpret any
non-zero score as approval, so I'm calling the higher level of approval
"Preference". As I proposed before, any ballots approving (non-zero score)
of the currently advancing winner are removed completely, then tallies are
done on the remaining ballots until no more candidates remain or 95% of the
ballots are used up, or a maximum number of candidates (default 7) has been
reached. In each candidate advance round, candidates with remaining
approval below the threshold (default 1%) are dropped.
Approval, Score, STAR, Vote 3-2-1, and Score Sorted Margins are supported,
and just for the sake of completeness, I also include Preference (like
approval but using explicit "preference" cutoff), and Top-rating.
It is designed to be used on a linux command line with python 3.7+ that
includes numpy. I recommend getting the Anaconda (or mini-conda) package.
There are a lot of commandline options.
From the standpoint of practicality, say in the event of a 100+ candidate
jungle primary, this type of primary would be relatively simple to
implement for Approval, Score, Preference or Top-Rating. Slightly more
difficult would be STAR or Vote 3-2-1. Finally, any method that requires
the pairwise array, such as PASM or SSM, would be most complicated, and
would probably require some sort of candidate pruning below an approval
threshold (to get the number of candidates below 20 or so) to be at all
feasible.
On Fri, Aug 7, 2020 at 2:33 PM Ted Stern dodecatheon@gmail.com wrote:
Over the years a number of people on this list (e.g. Rob Lanphier, myself
and others) have proposed various methods for using Approval in primary
elections.
There are arguments to be made for using other PR methods, but it seems to
me that SNTV is ideally suited to be a primary method, since it resists
pushover and doesn't tend to overrepresent parties.
Using Approval as a base method, single non-transferable approval voting
would look like
- Advance Approval winner and Approval runner-up
- Deweight to zero all ballots approving of AW.
- Repeat until some threshold (e.g. 90%) of ballots have been used up:
- Advance approval winner on the current remaining ballots
- Deweight ballots approving of latest winner to zero
The advantages here are
- Relative simplicity -- No complicated reweighting algorithms, so
each recount for the next approval winner is faster than the previous, and
can even be done by hand.
- Each winner (other than the first approval runner-up) will tend to
be from a different party or faction of a party. There may be some overlap
from also advancing the overall Approval runner-up, but if the total AW and
ARU are from the same party, it gives them an advantage under Approval to
have a similar candidate for comparison.
- Most groups will be represented in the General election.
- Pushover strategy is disincentivized by complete deweighting, so
parties should not be threatened by strategic promotion of their worst
candidate. There is some possibility that voters would do that regardless,
but the effect should be no worse than in current top-two elections.
- Modifications could include:
- Stop advancing candidates when the highest approval on remaining
ballots drops below a threshold. For example, if the total deweight
threshold is 90%, if the latest winner has less than 5% approval on
remaining ballots (half the complement of 90%), break the loop.
- Stop when a certain number of candidates have advanced. For
example, if using the 5% rule above, it is possible that 10 to 15
candidates could advance to the General, defeating the winnowing purpose of
a primary. It seems reasonable to stop at 5 or 6 candidates.
- Use a different method other than simple Approval.
I would be perfectly satisfied to have SNTAV as a primary method, but if
one can handle a bit more complexity (say in smaller groups), it would be
reasonable to use Approval Sorted Margins as the base method:
- Use Ranked or Rated ballots with explicit Approval Cutoff. If not
explicitly specified, cutoff is at zero-rating or last ranking.
- Advance Approval Sorted Margins winner to general election
- Deweight to zero all ballots approving of AW.
- Repeat until some threshold (e.g. 90%) of ballots have been used up:
- Advance ASM winner on the current remaining ballots
- Deweight ballots approving of latest winner to zero
For public elections, I think the SNTAV approach I outline above, with a
90% threshold, 5% minimum remaining approval, and limited to 6 candidates
(4 approval winners and 1 top approval runner-up) gives enough room to
enable more parties to develop.
I've implemented the primary idea I proposed last month. It's available in
my github repository as *winnow.py*. The repo is located at
https://github.com/dodecatheon/approval-sorted-margins/
The code is designed to be used as a test bed for several
score-ballot-based methods.
The default method for advancing candidates is Preference Approval Sorted
Margins. It's basically Approval Sorted Margins, but I interpret any
non-zero score as approval, so I'm calling the higher level of approval
"Preference". As I proposed before, any ballots approving (non-zero score)
of the currently advancing winner are removed completely, then tallies are
done on the remaining ballots until no more candidates remain or 95% of the
ballots are used up, or a maximum number of candidates (default 7) has been
reached. In each candidate advance round, candidates with remaining
approval below the threshold (default 1%) are dropped.
Approval, Score, STAR, Vote 3-2-1, and Score Sorted Margins are supported,
and just for the sake of completeness, I also include Preference (like
approval but using explicit "preference" cutoff), and Top-rating.
It is designed to be used on a linux command line with python 3.7+ that
includes numpy. I recommend getting the Anaconda (or mini-conda) package.
There are a lot of commandline options.
>From the standpoint of practicality, say in the event of a 100+ candidate
jungle primary, this type of primary would be relatively simple to
implement for Approval, Score, Preference or Top-Rating. Slightly more
difficult would be STAR or Vote 3-2-1. Finally, any method that requires
the pairwise array, such as PASM or SSM, would be most complicated, and
would probably require some sort of candidate pruning below an approval
threshold (to get the number of candidates below 20 or so) to be at all
feasible.
On Fri, Aug 7, 2020 at 2:33 PM Ted Stern <dodecatheon@gmail.com> wrote:
> Over the years a number of people on this list (e.g. Rob Lanphier, myself
> and others) have proposed various methods for using Approval in primary
> elections.
>
> There are arguments to be made for using other PR methods, but it seems to
> me that SNTV is ideally suited to be a primary method, since it resists
> pushover and doesn't tend to overrepresent parties.
>
> Using Approval as a base method, single non-transferable approval voting
> would look like
>
> - Advance Approval winner and Approval runner-up
> - Deweight to zero all ballots approving of AW.
> - Repeat until some threshold (e.g. 90%) of ballots have been used up:
> - Advance approval winner on the current remaining ballots
> - Deweight ballots approving of latest winner to zero
>
> The advantages here are
>
> - Relative simplicity -- No complicated reweighting algorithms, so
> each recount for the next approval winner is faster than the previous, and
> can even be done by hand.
> - Each winner (other than the first approval runner-up) will tend to
> be from a different party or faction of a party. There may be some overlap
> from also advancing the overall Approval runner-up, but if the total AW and
> ARU are from the same party, it gives them an advantage under Approval to
> have a similar candidate for comparison.
> - Most groups will be represented in the General election.
> - Pushover strategy is disincentivized by complete deweighting, so
> parties should not be threatened by strategic promotion of their worst
> candidate. There is some possibility that voters would do that regardless,
> but the effect should be no worse than in current top-two elections.
> - Modifications could include:
> - Stop advancing candidates when the highest approval on remaining
> ballots drops below a threshold. For example, if the total deweight
> threshold is 90%, if the latest winner has less than 5% approval on
> remaining ballots (half the complement of 90%), break the loop.
> - Stop when a certain number of candidates have advanced. For
> example, if using the 5% rule above, it is possible that 10 to 15
> candidates could advance to the General, defeating the winnowing purpose of
> a primary. It seems reasonable to stop at 5 or 6 candidates.
> - Use a different method other than simple Approval.
>
> I would be perfectly satisfied to have SNTAV as a primary method, but if
> one can handle a bit more complexity (say in smaller groups), it would be
> reasonable to use Approval Sorted Margins as the base method:
>
>
> - Use Ranked or Rated ballots with explicit Approval Cutoff. If not
> explicitly specified, cutoff is at zero-rating or last ranking.
> - Advance Approval Sorted Margins winner to general election
> - Deweight to zero all ballots approving of AW.
> - Repeat until some threshold (e.g. 90%) of ballots have been used up:
> - Advance ASM winner on the current remaining ballots
> - Deweight ballots approving of latest winner to zero
>
> For public elections, I think the SNTAV approach I outline above, with a
> 90% threshold, 5% minimum remaining approval, and limited to 6 candidates
> (4 approval winners and 1 top approval runner-up) gives enough room to
> enable more parties to develop.
>
C
C.Benham
Fri, Sep 18, 2020 4:48 PM
Ted,
I haven't been thinking very much about this topic lately. But I have
one or two ideas.
Abolish the party primaries and just have one big "primary". Use STV to
one-at -a-time eliminate candidates until the remaining candidate with
the fewest votes has a tally that is at least X (say 15)%
of the total of the unexhausted ballots (i.e. those that show some
preference among uneliminated candidates).
In the "general election" this should limit the field to a manageable
number (no more than 6).
("STAR" is an abomination.)
At least as important in the current period is election integrity and
thinking of ways to use technology to implement direct democracy or some
hybrid of direct and representative democracy.
Chris
On 18/09/2020 6:13 am, Ted Stern wrote:
I've implemented the primary idea I proposed last month. It's
available in my github repository as winnow.py. The repo is located at
*
*
https://github.com/dodecatheon/approval-sorted-margins/
*
*
The code is designed to be used as a test bed for several
score-ballot-based methods.
The default method for advancing candidates is Preference Approval
Sorted Margins. It's basically Approval Sorted Margins, but I
interpret any non-zero score as approval, so I'm calling the higher
level of approval "Preference". As I proposed before, any ballots
approving (non-zero score) of the currently advancing winner are
removed completely, then tallies are done on the remaining ballots
until no more candidates remain or 95% of the ballots are used up, or
a maximum number of candidates (default 7) has been reached. In each
candidate advance round, candidates with remaining approval below the
threshold (default 1%) are dropped.
Approval, Score, STAR, Vote 3-2-1, and Score Sorted Margins are
supported, and just for the sake of completeness, I also include
Preference (like approval but using explicit "preference" cutoff), and
Top-rating.
It is designed to be used on a linux command line with python 3.7+
that includes numpy. I recommend getting the Anaconda (or mini-conda)
package. There are a lot of commandline options.
From the standpoint of practicality, say in the event of a 100+
candidate jungle primary, this type of primary would be relatively
simple to implement for Approval, Score, Preference or Top-Rating.
Slightly more difficult would be STAR or Vote 3-2-1. Finally, any
method that requires the pairwise array, such as PASM or SSM, would be
most complicated, and would probably require some sort of candidate
pruning below an approval threshold (to get the number of candidates
below 20 or so) to be at all feasible.
On Fri, Aug 7, 2020 at 2:33 PM Ted Stern <dodecatheon@gmail.com
mailto:dodecatheon@gmail.com> wrote:
Over the years a number of people on this list (e.g. Rob Lanphier,
myself and others) have proposed various methods for using
Approval in primary elections.
There are arguments to be made for using other PR methods, but it
seems to me that SNTV is ideally suited to be a primary method,
since it resists pushover and doesn't tend to overrepresent parties.
Using Approval as a base method, single non-transferable approval
voting would look like
* Advance Approval winner and Approval runner-up
* Deweight to zero all ballots approving of AW.
* Repeat until some threshold (e.g. 90%) of ballots have been
used up:
o Advance approval winner on the current remaining ballots
o Deweight ballots approving of latest winner to zero
The advantages here are
* Relative simplicity -- No complicated reweighting algorithms,
so each recount for the next approval winner is faster than
the previous, and can even be done by hand.
* Each winner (other than the first approval runner-up) will
tend to be from a different party or faction of a party.
There may be some overlap from also advancing the overall
Approval runner-up, but if the total AW and ARU are from the
same party, it gives them an advantage under Approval to have
a similar candidate for comparison.
* Most groups will be represented in the General election.
* Pushover strategy is disincentivized by complete deweighting,
so parties should not be threatened by strategic promotion of
their worst candidate. There is some possibility that voters
would do that regardless, but the effect should be no worse
than in current top-two elections.
* Modifications could include:
o Stop advancing candidates when the highest approval on
remaining ballots drops below a threshold. For example, if
the total deweight threshold is 90%, if the latest winner
has less than 5% approval on remaining ballots (half the
complement of 90%), break the loop.
o Stop when a certain number of candidates have advanced.
For example, if using the 5% rule above, it is possible
that 10 to 15 candidates could advance to the General,
defeating the winnowing purpose of a primary. It seems
reasonable to stop at 5 or 6 candidates.
o Use a different method other than simple Approval.
I would be perfectly satisfied to have SNTAV as a primary method,
but if one can handle a bit more complexity (say in smaller
groups), it would be reasonable to use Approval Sorted Margins as
the base method:
* Use Ranked or Rated ballots with explicit Approval Cutoff. If
not explicitly specified, cutoff is at zero-rating or last
ranking.
* Advance Approval Sorted Margins winner to general election
* Deweight to zero all ballots approving of AW.
* Repeat until some threshold (e.g. 90%) of ballots have been
used up:
o Advance ASM winner on the current remaining ballots
o Deweight ballots approving of latest winner to zero
For public elections, I think the SNTAV approach I outline above,
with a 90% threshold, 5% minimum remaining approval, and limited
to 6 candidates (4 approval winners and 1 top approval runner-up)
gives enough room to enable more parties to develop.
Ted,
I haven't been thinking very much about this topic lately. But I have
one or two ideas.
Abolish the party primaries and just have one big "primary". Use STV to
one-at -a-time eliminate candidates until the remaining candidate with
the fewest votes has a tally that is at least X (say 15)%
of the total of the unexhausted ballots (i.e. those that show some
preference among uneliminated candidates).
In the "general election" this should limit the field to a manageable
number (no more than 6).
("STAR" is an abomination.)
At least as important in the current period is election integrity and
thinking of ways to use technology to implement direct democracy or some
hybrid of direct and representative democracy.
Chris
On 18/09/2020 6:13 am, Ted Stern wrote:
> I've implemented the primary idea I proposed last month. It's
> available in my github repository as *winnow.py*. The repo is located at
> *
> *
> https://github.com/dodecatheon/approval-sorted-margins/
> *
> *
> The code is designed to be used as a test bed for several
> score-ballot-based methods.
>
> The default method for advancing candidates is Preference Approval
> Sorted Margins. It's basically Approval Sorted Margins, but I
> interpret any non-zero score as approval, so I'm calling the higher
> level of approval "Preference". As I proposed before, any ballots
> approving (non-zero score) of the currently advancing winner are
> removed completely, then tallies are done on the remaining ballots
> until no more candidates remain or 95% of the ballots are used up, or
> a maximum number of candidates (default 7) has been reached. In each
> candidate advance round, candidates with remaining approval below the
> threshold (default 1%) are dropped.
>
> Approval, Score, STAR, Vote 3-2-1, and Score Sorted Margins are
> supported, and just for the sake of completeness, I also include
> Preference (like approval but using explicit "preference" cutoff), and
> Top-rating.
>
> It is designed to be used on a linux command line with python 3.7+
> that includes numpy. I recommend getting the Anaconda (or mini-conda)
> package. There are a lot of commandline options.
>
> From the standpoint of practicality, say in the event of a 100+
> candidate jungle primary, this type of primary would be relatively
> simple to implement for Approval, Score, Preference or Top-Rating.
> Slightly more difficult would be STAR or Vote 3-2-1. Finally, any
> method that requires the pairwise array, such as PASM or SSM, would be
> most complicated, and would probably require some sort of candidate
> pruning below an approval threshold (to get the number of candidates
> below 20 or so) to be at all feasible.
>
> On Fri, Aug 7, 2020 at 2:33 PM Ted Stern <dodecatheon@gmail.com
> <mailto:dodecatheon@gmail.com>> wrote:
>
> Over the years a number of people on this list (e.g. Rob Lanphier,
> myself and others) have proposed various methods for using
> Approval in primary elections.
>
> There are arguments to be made for using other PR methods, but it
> seems to me that SNTV is ideally suited to be a primary method,
> since it resists pushover and doesn't tend to overrepresent parties.
>
> Using Approval as a base method, single non-transferable approval
> voting would look like
>
> * Advance Approval winner and Approval runner-up
> * Deweight to zero all ballots approving of AW.
> * Repeat until some threshold (e.g. 90%) of ballots have been
> used up:
> o Advance approval winner on the current remaining ballots
> o Deweight ballots approving of latest winner to zero
>
> The advantages here are
>
> * Relative simplicity -- No complicated reweighting algorithms,
> so each recount for the next approval winner is faster than
> the previous, and can even be done by hand.
> * Each winner (other than the first approval runner-up) will
> tend to be from a different party or faction of a party.
> There may be some overlap from also advancing the overall
> Approval runner-up, but if the total AW and ARU are from the
> same party, it gives them an advantage under Approval to have
> a similar candidate for comparison.
> * Most groups will be represented in the General election.
> * Pushover strategy is disincentivized by complete deweighting,
> so parties should not be threatened by strategic promotion of
> their worst candidate. There is some possibility that voters
> would do that regardless, but the effect should be no worse
> than in current top-two elections.
> * Modifications could include:
> o Stop advancing candidates when the highest approval on
> remaining ballots drops below a threshold. For example, if
> the total deweight threshold is 90%, if the latest winner
> has less than 5% approval on remaining ballots (half the
> complement of 90%), break the loop.
> o Stop when a certain number of candidates have advanced.
> For example, if using the 5% rule above, it is possible
> that 10 to 15 candidates could advance to the General,
> defeating the winnowing purpose of a primary. It seems
> reasonable to stop at 5 or 6 candidates.
> o Use a different method other than simple Approval.
>
> I would be perfectly satisfied to have SNTAV as a primary method,
> but if one can handle a bit more complexity (say in smaller
> groups), it would be reasonable to use Approval Sorted Margins as
> the base method:
>
> * Use Ranked or Rated ballots with explicit Approval Cutoff. If
> not explicitly specified, cutoff is at zero-rating or last
> ranking.
> * Advance Approval Sorted Margins winner to general election
> * Deweight to zero all ballots approving of AW.
> * Repeat until some threshold (e.g. 90%) of ballots have been
> used up:
> o Advance ASM winner on the current remaining ballots
> o Deweight ballots approving of latest winner to zero
>
> For public elections, I think the SNTAV approach I outline above,
> with a 90% threshold, 5% minimum remaining approval, and limited
> to 6 candidates (4 approval winners and 1 top approval runner-up)
> gives enough room to enable more parties to develop.
>
RB
robert bristow-johnson
Fri, Sep 18, 2020 5:10 PM
On 09/18/2020 12:48 PM C.Benham cbenham@adam.com.au wrote:
Ted,
I haven't been thinking very much about this topic lately. But I have one or two ideas.
Abolish the party primaries and just have one big "primary".
Ain't that what they do in California? They call it their "Open primary".
Problem is, some people are alarmed with there is absolutely no one from their party on the general election ballot. (Admittedly, they were Republicans, but they were not happy that the only choice they could have was between various Democrats on the general election ballot.)
I think every party has a right to put their best foot forward, select among themselves the best candidate (from their POV) to put on the ballot. Of course everyone, whether they are major party, minor party, or independent, must satisfy ballot access requirements (sufficient number of valid signatures on a petition).
But I ain't for the Open Primary.
--
r b-j rbj@audioimagination.com
"Imagination is more important than knowledge."
> On 09/18/2020 12:48 PM C.Benham <cbenham@adam.com.au> wrote:
>
>
> Ted,
>
> I haven't been thinking very much about this topic lately. But I have one or two ideas.
>
> Abolish the party primaries and just have one big "primary".
Ain't that what they do in California? They call it their "Open primary".
Problem is, some people are alarmed with there is absolutely no one from their party on the general election ballot. (Admittedly, they were Republicans, but they were not happy that the only choice they could have was between various Democrats *on* *the* *general* *election* *ballot*.)
I think every party has a right to put their best foot forward, select among themselves the best candidate (from their POV) to put on the ballot. Of course everyone, whether they are major party, minor party, or independent, must satisfy ballot access requirements (sufficient number of valid signatures on a petition).
But I ain't for the Open Primary.
--
r b-j rbj@audioimagination.com
"Imagination is more important than knowledge."
RL
Richard Lung
Fri, Sep 18, 2020 6:30 PM
Hoag and Hallett , in their at-large city elections said STV had built-in primaries, so you didn't need separate elections.
Richard L.
On 18 Sep 2020, at 9:48 am, C.Benham cbenham@adam.com.au wrote:
Ted,
I haven't been thinking very much about this topic lately. But I have one or two ideas.
Abolish the party primaries and just have one big "primary". Use STV to one-at -a-time eliminate candidates until the remaining candidate with the fewest votes has a tally that is at least X (say 15)%
of the total of the unexhausted ballots (i.e. those that show some preference among uneliminated candidates).
In the "general election" this should limit the field to a manageable number (no more than 6).
("STAR" is an abomination.)
At least as important in the current period is election integrity and thinking of ways to use technology to implement direct democracy or some hybrid of direct and representative democracy.
Chris
On 18/09/2020 6:13 am, Ted Stern wrote:
I've implemented the primary idea I proposed last month. It's available in my github repository as winnow.py. The repo is located at
https://github.com/dodecatheon/approval-sorted-margins/
The code is designed to be used as a test bed for several score-ballot-based methods.
The default method for advancing candidates is Preference Approval Sorted Margins. It's basically Approval Sorted Margins, but I interpret any non-zero score as approval, so I'm calling the higher level of approval "Preference". As I proposed before, any ballots approving (non-zero score) of the currently advancing winner are removed completely, then tallies are done on the remaining ballots until no more candidates remain or 95% of the ballots are used up, or a maximum number of candidates (default 7) has been reached. In each candidate advance round, candidates with remaining approval below the threshold (default 1%) are dropped.
Approval, Score, STAR, Vote 3-2-1, and Score Sorted Margins are supported, and just for the sake of completeness, I also include Preference (like approval but using explicit "preference" cutoff), and Top-rating.
It is designed to be used on a linux command line with python 3.7+ that includes numpy. I recommend getting the Anaconda (or mini-conda) package. There are a lot of commandline options.
From the standpoint of practicality, say in the event of a 100+ candidate jungle primary, this type of primary would be relatively simple to implement for Approval, Score, Preference or Top-Rating. Slightly more difficult would be STAR or Vote 3-2-1. Finally, any method that requires the pairwise array, such as PASM or SSM, would be most complicated, and would probably require some sort of candidate pruning below an approval threshold (to get the number of candidates below 20 or so) to be at all feasible.
On Fri, Aug 7, 2020 at 2:33 PM Ted Stern dodecatheon@gmail.com wrote:
Over the years a number of people on this list (e.g. Rob Lanphier, myself and others) have proposed various methods for using Approval in primary elections.
There are arguments to be made for using other PR methods, but it seems to me that SNTV is ideally suited to be a primary method, since it resists pushover and doesn't tend to overrepresent parties.
Using Approval as a base method, single non-transferable approval voting would look like
Advance Approval winner and Approval runner-up
Deweight to zero all ballots approving of AW.
Repeat until some threshold (e.g. 90%) of ballots have been used up:
Advance approval winner on the current remaining ballots
Deweight ballots approving of latest winner to zero
The advantages here are
Relative simplicity -- No complicated reweighting algorithms, so each recount for the next approval winner is faster than the previous, and can even be done by hand.
Each winner (other than the first approval runner-up) will tend to be from a different party or faction of a party. There may be some overlap from also advancing the overall Approval runner-up, but if the total AW and ARU are from the same party, it gives them an advantage under Approval to have a similar candidate for comparison.
Most groups will be represented in the General election.
Pushover strategy is disincentivized by complete deweighting, so parties should not be threatened by strategic promotion of their worst candidate. There is some possibility that voters would do that regardless, but the effect should be no worse than in current top-two elections.
Modifications could include:
Stop advancing candidates when the highest approval on remaining ballots drops below a threshold. For example, if the total deweight threshold is 90%, if the latest winner has less than 5% approval on remaining ballots (half the complement of 90%), break the loop.
Stop when a certain number of candidates have advanced. For example, if using the 5% rule above, it is possible that 10 to 15 candidates could advance to the General, defeating the winnowing purpose of a primary. It seems reasonable to stop at 5 or 6 candidates.
Use a different method other than simple Approval.
I would be perfectly satisfied to have SNTAV as a primary method, but if one can handle a bit more complexity (say in smaller groups), it would be reasonable to use Approval Sorted Margins as the base method:
Use Ranked or Rated ballots with explicit Approval Cutoff. If not explicitly specified, cutoff is at zero-rating or last ranking.
Advance Approval Sorted Margins winner to general election
Deweight to zero all ballots approving of AW.
Repeat until some threshold (e.g. 90%) of ballots have been used up:
Advance ASM winner on the current remaining ballots
Deweight ballots approving of latest winner to zero
For public elections, I think the SNTAV approach I outline above, with a 90% threshold, 5% minimum remaining approval, and limited to 6 candidates (4 approval winners and 1 top approval runner-up) gives enough room to enable more parties to develop.
Hoag and Hallett , in their at-large city elections said STV had built-in primaries, so you didn't need separate elections.
Richard L.
On 18 Sep 2020, at 9:48 am, C.Benham <cbenham@adam.com.au> wrote:
Ted,
I haven't been thinking very much about this topic lately. But I have one or two ideas.
Abolish the party primaries and just have one big "primary". Use STV to one-at -a-time eliminate candidates until the remaining candidate with the fewest votes has a tally that is at least X (say 15)%
of the total of the unexhausted ballots (i.e. those that show some preference among uneliminated candidates).
In the "general election" this should limit the field to a manageable number (no more than 6).
("STAR" is an abomination.)
At least as important in the current period is election integrity and thinking of ways to use technology to implement direct democracy or some hybrid of direct and representative democracy.
Chris
> On 18/09/2020 6:13 am, Ted Stern wrote:
> I've implemented the primary idea I proposed last month. It's available in my github repository as winnow.py. The repo is located at
>
> https://github.com/dodecatheon/approval-sorted-margins/
>
> The code is designed to be used as a test bed for several score-ballot-based methods.
>
> The default method for advancing candidates is Preference Approval Sorted Margins. It's basically Approval Sorted Margins, but I interpret any non-zero score as approval, so I'm calling the higher level of approval "Preference". As I proposed before, any ballots approving (non-zero score) of the currently advancing winner are removed completely, then tallies are done on the remaining ballots until no more candidates remain or 95% of the ballots are used up, or a maximum number of candidates (default 7) has been reached. In each candidate advance round, candidates with remaining approval below the threshold (default 1%) are dropped.
>
> Approval, Score, STAR, Vote 3-2-1, and Score Sorted Margins are supported, and just for the sake of completeness, I also include Preference (like approval but using explicit "preference" cutoff), and Top-rating.
>
> It is designed to be used on a linux command line with python 3.7+ that includes numpy. I recommend getting the Anaconda (or mini-conda) package. There are a lot of commandline options.
>
> From the standpoint of practicality, say in the event of a 100+ candidate jungle primary, this type of primary would be relatively simple to implement for Approval, Score, Preference or Top-Rating. Slightly more difficult would be STAR or Vote 3-2-1. Finally, any method that requires the pairwise array, such as PASM or SSM, would be most complicated, and would probably require some sort of candidate pruning below an approval threshold (to get the number of candidates below 20 or so) to be at all feasible.
>
>> On Fri, Aug 7, 2020 at 2:33 PM Ted Stern <dodecatheon@gmail.com> wrote:
>> Over the years a number of people on this list (e.g. Rob Lanphier, myself and others) have proposed various methods for using Approval in primary elections.
>>
>> There are arguments to be made for using other PR methods, but it seems to me that SNTV is ideally suited to be a primary method, since it resists pushover and doesn't tend to overrepresent parties.
>>
>> Using Approval as a base method, single non-transferable approval voting would look like
>> Advance Approval winner and Approval runner-up
>> Deweight to zero all ballots approving of AW.
>> Repeat until some threshold (e.g. 90%) of ballots have been used up:
>> Advance approval winner on the current remaining ballots
>> Deweight ballots approving of latest winner to zero
>> The advantages here are
>> Relative simplicity -- No complicated reweighting algorithms, so each recount for the next approval winner is faster than the previous, and can even be done by hand.
>> Each winner (other than the first approval runner-up) will tend to be from a different party or faction of a party. There may be some overlap from also advancing the overall Approval runner-up, but if the total AW and ARU are from the same party, it gives them an advantage under Approval to have a similar candidate for comparison.
>> Most groups will be represented in the General election.
>> Pushover strategy is disincentivized by complete deweighting, so parties should not be threatened by strategic promotion of their worst candidate. There is some possibility that voters would do that regardless, but the effect should be no worse than in current top-two elections.
>> Modifications could include:
>> Stop advancing candidates when the highest approval on remaining ballots drops below a threshold. For example, if the total deweight threshold is 90%, if the latest winner has less than 5% approval on remaining ballots (half the complement of 90%), break the loop.
>> Stop when a certain number of candidates have advanced. For example, if using the 5% rule above, it is possible that 10 to 15 candidates could advance to the General, defeating the winnowing purpose of a primary. It seems reasonable to stop at 5 or 6 candidates.
>> Use a different method other than simple Approval.
>> I would be perfectly satisfied to have SNTAV as a primary method, but if one can handle a bit more complexity (say in smaller groups), it would be reasonable to use Approval Sorted Margins as the base method:
>>
>> Use Ranked or Rated ballots with explicit Approval Cutoff. If not explicitly specified, cutoff is at zero-rating or last ranking.
>> Advance Approval Sorted Margins winner to general election
>> Deweight to zero all ballots approving of AW.
>> Repeat until some threshold (e.g. 90%) of ballots have been used up:
>> Advance ASM winner on the current remaining ballots
>> Deweight ballots approving of latest winner to zero
>> For public elections, I think the SNTAV approach I outline above, with a 90% threshold, 5% minimum remaining approval, and limited to 6 candidates (4 approval winners and 1 top approval runner-up) gives enough room to enable more parties to develop.
----
Election-Methods mailing list - see https://electorama.com/em for list info
TS
Ted Stern
Fri, Sep 18, 2020 10:24 PM
Hi Chris,
Taking your points in reverse order:
Direct democracy would be great, but in the US, at least, it's a long way
off until we can elect representatives who will put us on the path to get
there.
I wouldn't call STAR an abomination, but it doesn't seem to have a firm
foothold in either utilitarian or majoritarian philosophies, and IMO it
fails to find the centroid of voter sentiment even in an idealized
framework like Yee plots.
The proposed method was intended to be a winnowing election in the case
that there are more than 7 candidates, and remove some clone-type of
duplication of candidates at the same time. So yes, it would replace all
party primaries. Robert Bristow-Johnson points out that California has an
open primary. Yes, I am aware of that -- Washington State's is similar. It
is a top two single vote primary. The problem with that is, as pointed out
by Robert and Richard, that some parties might not be represented. Hence
the winnowing primary, allowing more candidates to represent a larger
portion of the electorate.
STV is an interesting idea, although in the sense you describe it, it looks
more like extended IRV. I would like to see someone implement that, but the
other aspect of my testbed script is that it uses score ballots, and I
don't see an easy way to do that. But STV at least has the virtue of being
hand-countable. I would run it until the smallest candidate total is above
5%, though, up to a max of 7 candidates instead of 6.
Ted
On Fri, Sep 18, 2020 at 9:48 AM C.Benham cbenham@adam.com.au wrote:
Ted,
I haven't been thinking very much about this topic lately. But I have one
or two ideas.
Abolish the party primaries and just have one big "primary". Use STV to
one-at -a-time eliminate candidates until the remaining candidate with the
fewest votes has a tally that is at least X (say 15)%
of the total of the unexhausted ballots (i.e. those that show some
preference among uneliminated candidates).
In the "general election" this should limit the field to a manageable
number (no more than 6).
("STAR" is an abomination.)
At least as important in the current period is election integrity and
thinking of ways to use technology to implement direct democracy or some
hybrid of direct and representative democracy.
Chris
On 18/09/2020 6:13 am, Ted Stern wrote:
I've implemented the primary idea I proposed last month. It's available in
my github repository as winnow.py. The repo is located at
https://github.com/dodecatheon/approval-sorted-margins/
The code is designed to be used as a test bed for several
score-ballot-based methods.
The default method for advancing candidates is Preference Approval Sorted
Margins. It's basically Approval Sorted Margins, but I interpret any
non-zero score as approval, so I'm calling the higher level of approval
"Preference". As I proposed before, any ballots approving (non-zero score)
of the currently advancing winner are removed completely, then tallies are
done on the remaining ballots until no more candidates remain or 95% of the
ballots are used up, or a maximum number of candidates (default 7) has been
reached. In each candidate advance round, candidates with remaining
approval below the threshold (default 1%) are dropped.
Approval, Score, STAR, Vote 3-2-1, and Score Sorted Margins are supported,
and just for the sake of completeness, I also include Preference (like
approval but using explicit "preference" cutoff), and Top-rating.
It is designed to be used on a linux command line with python 3.7+ that
includes numpy. I recommend getting the Anaconda (or mini-conda) package.
There are a lot of commandline options.
From the standpoint of practicality, say in the event of a 100+ candidate
jungle primary, this type of primary would be relatively simple to
implement for Approval, Score, Preference or Top-Rating. Slightly more
difficult would be STAR or Vote 3-2-1. Finally, any method that requires
the pairwise array, such as PASM or SSM, would be most complicated, and
would probably require some sort of candidate pruning below an approval
threshold (to get the number of candidates below 20 or so) to be at all
feasible.
On Fri, Aug 7, 2020 at 2:33 PM Ted Stern dodecatheon@gmail.com wrote:
Over the years a number of people on this list (e.g. Rob Lanphier, myself
and others) have proposed various methods for using Approval in primary
elections.
There are arguments to be made for using other PR methods, but it seems
to me that SNTV is ideally suited to be a primary method, since it resists
pushover and doesn't tend to overrepresent parties.
Using Approval as a base method, single non-transferable approval voting
would look like
- Advance Approval winner and Approval runner-up
- Deweight to zero all ballots approving of AW.
- Repeat until some threshold (e.g. 90%) of ballots have been used up:
- Advance approval winner on the current remaining ballots
- Deweight ballots approving of latest winner to zero
The advantages here are
- Relative simplicity -- No complicated reweighting algorithms, so
each recount for the next approval winner is faster than the previous, and
can even be done by hand.
- Each winner (other than the first approval runner-up) will tend to
be from a different party or faction of a party. There may be some overlap
from also advancing the overall Approval runner-up, but if the total AW and
ARU are from the same party, it gives them an advantage under Approval to
have a similar candidate for comparison.
- Most groups will be represented in the General election.
- Pushover strategy is disincentivized by complete deweighting, so
parties should not be threatened by strategic promotion of their worst
candidate. There is some possibility that voters would do that regardless,
but the effect should be no worse than in current top-two elections.
- Modifications could include:
- Stop advancing candidates when the highest approval on remaining
ballots drops below a threshold. For example, if the total deweight
threshold is 90%, if the latest winner has less than 5% approval on
remaining ballots (half the complement of 90%), break the loop.
- Stop when a certain number of candidates have advanced. For
example, if using the 5% rule above, it is possible that 10 to 15
candidates could advance to the General, defeating the winnowing purpose of
a primary. It seems reasonable to stop at 5 or 6 candidates.
- Use a different method other than simple Approval.
I would be perfectly satisfied to have SNTAV as a primary method, but if
one can handle a bit more complexity (say in smaller groups), it would be
reasonable to use Approval Sorted Margins as the base method:
- Use Ranked or Rated ballots with explicit Approval Cutoff. If not
explicitly specified, cutoff is at zero-rating or last ranking.
- Advance Approval Sorted Margins winner to general election
- Deweight to zero all ballots approving of AW.
- Repeat until some threshold (e.g. 90%) of ballots have been used up:
- Advance ASM winner on the current remaining ballots
- Deweight ballots approving of latest winner to zero
For public elections, I think the SNTAV approach I outline above, with a
90% threshold, 5% minimum remaining approval, and limited to 6 candidates
(4 approval winners and 1 top approval runner-up) gives enough room to
enable more parties to develop.
Hi Chris,
Taking your points in reverse order:
Direct democracy would be great, but in the US, at least, it's a long way
off until we can elect representatives who will put us on the path to get
there.
I wouldn't call STAR an abomination, but it doesn't seem to have a firm
foothold in either utilitarian or majoritarian philosophies, and IMO it
fails to find the centroid of voter sentiment even in an idealized
framework like Yee plots.
The proposed method was intended to be a winnowing election in the case
that there are more than 7 candidates, and remove some clone-type of
duplication of candidates at the same time. So yes, it would replace all
party primaries. Robert Bristow-Johnson points out that California has an
open primary. Yes, I am aware of that -- Washington State's is similar. It
is a top two single vote primary. The problem with that is, as pointed out
by Robert and Richard, that some parties might not be represented. Hence
the winnowing primary, allowing more candidates to represent a larger
portion of the electorate.
STV is an interesting idea, although in the sense you describe it, it looks
more like extended IRV. I would like to see someone implement that, but the
other aspect of my testbed script is that it uses score ballots, and I
don't see an easy way to do that. But STV at least has the virtue of being
hand-countable. I would run it until the smallest candidate total is above
5%, though, up to a max of 7 candidates instead of 6.
Ted
On Fri, Sep 18, 2020 at 9:48 AM C.Benham <cbenham@adam.com.au> wrote:
> Ted,
>
> I haven't been thinking very much about this topic lately. But I have one
> or two ideas.
>
> Abolish the party primaries and just have one big "primary". Use STV to
> one-at -a-time eliminate candidates until the remaining candidate with the
> fewest votes has a tally that is at least X (say 15)%
> of the total of the unexhausted ballots (i.e. those that show some
> preference among uneliminated candidates).
>
> In the "general election" this should limit the field to a manageable
> number (no more than 6).
>
> ("STAR" is an abomination.)
>
> At least as important in the current period is election integrity and
> thinking of ways to use technology to implement direct democracy or some
> hybrid of direct and representative democracy.
>
> Chris
>
>
> On 18/09/2020 6:13 am, Ted Stern wrote:
>
> I've implemented the primary idea I proposed last month. It's available in
> my github repository as *winnow.py*. The repo is located at
>
> https://github.com/dodecatheon/approval-sorted-margins/
>
> The code is designed to be used as a test bed for several
> score-ballot-based methods.
>
> The default method for advancing candidates is Preference Approval Sorted
> Margins. It's basically Approval Sorted Margins, but I interpret any
> non-zero score as approval, so I'm calling the higher level of approval
> "Preference". As I proposed before, any ballots approving (non-zero score)
> of the currently advancing winner are removed completely, then tallies are
> done on the remaining ballots until no more candidates remain or 95% of the
> ballots are used up, or a maximum number of candidates (default 7) has been
> reached. In each candidate advance round, candidates with remaining
> approval below the threshold (default 1%) are dropped.
>
> Approval, Score, STAR, Vote 3-2-1, and Score Sorted Margins are supported,
> and just for the sake of completeness, I also include Preference (like
> approval but using explicit "preference" cutoff), and Top-rating.
>
> It is designed to be used on a linux command line with python 3.7+ that
> includes numpy. I recommend getting the Anaconda (or mini-conda) package.
> There are a lot of commandline options.
>
> From the standpoint of practicality, say in the event of a 100+ candidate
> jungle primary, this type of primary would be relatively simple to
> implement for Approval, Score, Preference or Top-Rating. Slightly more
> difficult would be STAR or Vote 3-2-1. Finally, any method that requires
> the pairwise array, such as PASM or SSM, would be most complicated, and
> would probably require some sort of candidate pruning below an approval
> threshold (to get the number of candidates below 20 or so) to be at all
> feasible.
>
> On Fri, Aug 7, 2020 at 2:33 PM Ted Stern <dodecatheon@gmail.com> wrote:
>
>> Over the years a number of people on this list (e.g. Rob Lanphier, myself
>> and others) have proposed various methods for using Approval in primary
>> elections.
>>
>> There are arguments to be made for using other PR methods, but it seems
>> to me that SNTV is ideally suited to be a primary method, since it resists
>> pushover and doesn't tend to overrepresent parties.
>>
>> Using Approval as a base method, single non-transferable approval voting
>> would look like
>>
>> - Advance Approval winner and Approval runner-up
>> - Deweight to zero all ballots approving of AW.
>> - Repeat until some threshold (e.g. 90%) of ballots have been used up:
>> - Advance approval winner on the current remaining ballots
>> - Deweight ballots approving of latest winner to zero
>>
>> The advantages here are
>>
>> - Relative simplicity -- No complicated reweighting algorithms, so
>> each recount for the next approval winner is faster than the previous, and
>> can even be done by hand.
>> - Each winner (other than the first approval runner-up) will tend to
>> be from a different party or faction of a party. There may be some overlap
>> from also advancing the overall Approval runner-up, but if the total AW and
>> ARU are from the same party, it gives them an advantage under Approval to
>> have a similar candidate for comparison.
>> - Most groups will be represented in the General election.
>> - Pushover strategy is disincentivized by complete deweighting, so
>> parties should not be threatened by strategic promotion of their worst
>> candidate. There is some possibility that voters would do that regardless,
>> but the effect should be no worse than in current top-two elections.
>> - Modifications could include:
>> - Stop advancing candidates when the highest approval on remaining
>> ballots drops below a threshold. For example, if the total deweight
>> threshold is 90%, if the latest winner has less than 5% approval on
>> remaining ballots (half the complement of 90%), break the loop.
>> - Stop when a certain number of candidates have advanced. For
>> example, if using the 5% rule above, it is possible that 10 to 15
>> candidates could advance to the General, defeating the winnowing purpose of
>> a primary. It seems reasonable to stop at 5 or 6 candidates.
>> - Use a different method other than simple Approval.
>>
>> I would be perfectly satisfied to have SNTAV as a primary method, but if
>> one can handle a bit more complexity (say in smaller groups), it would be
>> reasonable to use Approval Sorted Margins as the base method:
>>
>>
>> - Use Ranked or Rated ballots with explicit Approval Cutoff. If not
>> explicitly specified, cutoff is at zero-rating or last ranking.
>> - Advance Approval Sorted Margins winner to general election
>> - Deweight to zero all ballots approving of AW.
>> - Repeat until some threshold (e.g. 90%) of ballots have been used up:
>> - Advance ASM winner on the current remaining ballots
>> - Deweight ballots approving of latest winner to zero
>>
>> For public elections, I think the SNTAV approach I outline above, with a
>> 90% threshold, 5% minimum remaining approval, and limited to 6 candidates
>> (4 approval winners and 1 top approval runner-up) gives enough room to
>> enable more parties to develop.
>>
>