Note: You are viewing an old revision of this page. View the current version.

DavidLucifer: I suggest we leave everything after this comment to an amendment. Voting on the voting rules is urgent. Figuring out how vote history should or should not affect reputation can be left for another day.

New Suggestion 3: Virians shall receive 100% of their voting equity on casting their first vote. From then on, should a Virian not vote in a "compulsory" election, they will lose 25% of their voting equity for each election missed during the last 4 elections closed. Each vote placed (including the current vote) will earn back 25% of their voting equity up to 100% of their voting equity.

As an example, consider the following (assume all existing voters have 100% at start, votes which are not closed have unknown voter equity)

|Vote Count|Vote Status|Voter 1|Voter 2|Voter 3|Voter 4|Voter 5 |Vote 1 |Open|Voted ?|No Vote ?| | |No Vote ? |Vote 2 |Closed|Voted 100% |No Vote 75%| |(Joins - 100%)|No Vote 75% |Vote 3 |Closed|Voted 100% |No Vote 50%|(Joins - 100%)|No Vote 75%|Vote 100% |Vote 4 |Closed|Voted 100% |No Vote 25% |Voted 100% |No Vote 50%|No Vote 75% |Vote 5 |Open|Voted ? |No Vote ?|Voted ?|No Vote ?|No Vote ? |Vote 6 |Closed|Voted 100% |No Vote 0%|Voted 100% |No Vote 25%|No Vote 50%

Vote 7 is now called.

Voter 1 will have 100% of equity available. Voter 2 has no equity available, but voting in vote 7 will give them 25% of equity. They could also vote in 1, 5 and 7 and restore 75% of equity. Voter 3 has 100% of equity available. Voter 4 has 25% of equity available, and voting in 7 will give them 50% of equity. Voting in 1, 5 and 7 will restore 100% of equity. Voter 5 has 50% of equity available, and voting in 7 will give them 75% of equity. Voting in 1, 5 and 7 will restore 100% of equity.

In pseudo code:


!OnEvent?: New Member

Voter.!VoteEquity? = 100%


!OnEvent?: Close Vote

For each eligible Voter

If not (Voter.!VoteHistory?.!ThisVote?.!VotedForMotion? AND Voter.!VoteHistory?.!ThisVote?.!VotedAgainstMotion? AND Voter.!VoteHistory?.!ThisVote?.!VoterAbstained?)

Voter.Equity = Ceiling(0%,Voter.Equity - 25%)

EndIf?

Voter.!VoteHistory?.!ThisVote?.!VoteEquity? = Voter.Equity Voter.!VoteHistory?.!ThisVote?.Voted = 0 && (Voter.!VoteHistory?.!ThisVote?.!VotedForMotion? AND Voter.!VoteHistory?.!ThisVote?.!VotedAgainstMotion? AND Voter.!VoteHistory?.!ThisVote?.!VoterAbstained?)

Voter.!VoteHistory?.!ThisVote?.Voted = (-1 * Voter.!VoteHistory?.!ThisVote?.!VotedAgainstMotion?) + (1 * Voter.!VoteHistory?.!ThisVote?.!VotedForMotion?)

Next


!OnEvent?: Vote (NB Not Revote)

Voter.Equity = Floor(100%,Voter.Equity + 25%)


!OnEvent?: Calculate Vote

EquityPossible? = 0 ; !VotesForMotion? = 0 ; !VotesAgainstMotion? = 0 ; !VotesAbstain? = 0

For each eligible Voter

EquityPossible? = !EquityPossible? + Voter.Equity

VotesForMotion? = !VotesForMotion? + (Voter.!VotedForMotion? * Voter.Equity)

VotesAgainstMotion? = !VotesAgainstMotion? + (Voter.!VotedAgainstMotion? * Voter.Equity)

VotesAbstain? = !VotesAbstain? + (Voter.!VoterAbstained? * Voter.Equity)

Next


NB:

Floor returns the lowest valued parameter

Ceiling returns the highest valued parameter

&& is a bitwise AND


Version 1, saved on Saturday, September 27, 2003 6:51:20 pm.