skidooesy / stv

Automatically exported from code.google.com/p/stv
0 stars 0 forks source link

Implement the Wright system #27

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
The Wright system is in a way a mix of Scottish STV and Meek STV. It is
designed such that it can be counted by hand like Scottish STV - it
transfers surpluses the same way. But like Meek STV it restarts the
count after a candidate has been eliminated and thus it avoids Woodall
freeriding.

Here you find more details on this method:
http://en.wikipedia.org/wiki/Wright_system

I'm trying to convince organisations that I am a member of to use STV.
Often there are people who find it important that votes CAN be counted
by hand, but at the same time it's easier to get STV adopted when you
can tell people: You don't need to count the votes by hand, you can use
a free software: OpenSTV. So, before I can start recommending the Wright
System to people, it needs to be implemented in a counting program.

Would you consider implementing The Wright System in OpenSTV? This
should be not too difficult, using existing code for Scottish STV as a
starting point.

Sincerely

Martin Wilke from Berlin, Germany

Original issue reported on code.google.com by jeff.oneill on 16 Nov 2009 at 7:34

GoogleCodeExporter commented 8 years ago
I have it implemented in a Access database.  I would be interested in having 
available in the OpenSTV project but have little experience in using Python as 
a programming tool. 

The Wright system also simplifies the count in that the value of the vote stays 
with the ballot paper/vote and it only total when determining the candidates 
total. It only deals with surplus transfers.  If the number of vacancies are 
not filled in a single transaction then candidates are excluded in order of 
lowest value.  Instead of segmenting the vote the vote is transferred as one 
transaction per candidate. On any exclusion the vote count is reset and started 
from scratch with votes being allocated to the next available candidate 
according to the voters nominated preference.  

The iteration process repeats until all vacancies are filled in one iteration.  
The problem with the other systems is that they ere designed to facilitate a 
manual counting system and in the process we introduced flash and 
inconsistencies in the way the vote is counted.  

It was not until I analyzed the Australian Victorian and Queensland Senate 
election that I realised the system in use in Australia was seriously distoring 
the outcome of the election.  

In Queensland 2007 the wrong candidate was elected (As a result of the method 
of segmentation on exclusion. 

In Victoria 207 Senator David Feeney nearly lost his seat, not as a result of 
ballot but because the system and method of calculating the Surplus Transfer 
Value inflated the Party Ticket vote and delivered it a 7,000 vote advantage.  

Analysis of the NSW Senate election held in August 2010 has shown that this 
distortion in Th way the Surplus Transfer is counted has provided a bonus of 
14,000 votes to the Liberal National Party ticket vote at the expense of minor 
party primary votes. 

It was in discussion with a member of Parliament that we realised that the 
system should be much more simpler and straight forward. we applied the same 
rules as would apply to a single member preferential vote whilst adopting the 
quota preferential surplus model using a weighted Surplus Transfer based on the 
value of the vote not the number of ballot papers.  It was also felt that on 
every exclusion the vote count should be restarted and recounted.  This way 
every vote has its first available preference vote counted and allocated to the 
candidate of the voters choice.

In Discussion with Mike Hill I recognise that Meek is a preferred system, but 
the Wright reiterative count produces a greater proportionality and fairness 
then Hare Clarke. One tranbacation er canidate. The value of the vote stays 
with the ballot paper, no segmentation, no fractions. The quopta is adjusted at 
the commencement of each iteration making allowance for optional preferntial 
ballots.

If there is interest I will take on learning Python and  try and write the 
code. (But I will need help and someone to review the code)

Anthony van der Craats 
Systems Analyst
Australia

democracyAtwork (at) g mail (dot) com

Original comment by democrac...@gmail.com on 18 Sep 2010 at 1:12