Donation Election: how voting will work

By Lizka @ 2023-11-14T14:34 (+59)

In brief: we’ll use a weighted version of ranked-choice voting to determine the winners in the Donation Election. Every voter will distribute points across candidates. We’ll add up the points for all the candidates, and then eliminate the lowest-ranking candidate and redistribute points from voters who had given points to the now-eliminated candidate. We’ll repeat that until we have 3 winning candidates; the funding should be allocated in proportion to those candidates’ point totals.

Note: this system is subject to change in the next week (I’m adding this provision in case someone finds obvious improvements or fundamental issues). If we don’t change it by November 21, though, it’ll be the final system, and I currently expect to go with a system that looks basically like this. 

An illustration of what happens to points allocated to Candidate A when Candidate A is eliminated. 

What it will look like for voters

As a reminder, only people who had accounts as of 22 October, 2023, will be able to vote. If you can’t vote but would like to participate, you can write about why you think people should vote in a particular way, donate to the projects directly, etc. 

What it will look like if you can vote: 

  1. Get invited to vote and go to a voting portal to begin the process
    1. (We’ll probably feature a link on the Frontpage, and you can already sign up to get notified when voting opens)
  2. Select candidates you’d like to vote on
    1. You’ll be able to select all the candidates, or just the ones you have opinions about[1]
  3. Assign points to the candidates you’ve selected, based on how you personally would allocate funding across these different projects (paying attention to the relative point ratios)[2]
  4. Write a note about why you voted in that way (optional), and submit!

A rough sketch of these steps (see the footnote[3] for an actual sketch mockup):

This isn’t a real mockup of the process; we’ll have more explanations and tools in the real thing (like reordering projects to help you check that you endorse the point allocation, etc.). 

Longer explanation: How vote aggregation will work and more on why we picked this voting method

In classical ranked-choice voting, voters submit a ranking of candidates. When votes are in, the least popular candidate is eliminated in rounds until a winner is declared. After each elimination, voters’ rankings are updated with the eliminated candidate removed (meaning if they ranked the candidate first, their ranking moves up), so votes for that candidate are not wasted.[4]

We wanted to track preference strength more than ranked-choice voting allows us to do (i.e. we wanted to incorporate information like “Voter 1 thinks A should get 100x more funding than B” and to prompt people to think through considerations like this instead of just ranking projects), so instead of ranking candidates, we’re asking voters to allocate points to all the candidates. We’ll normalize voters’ point distributions so that every voter has equal voting power, and then add up the points assigned to each candidate. This will allow us to identify the candidate with the least number of points, which we’ll eliminate.[5] Any voters who had assigned points to that candidate will have their points redistributed to whatever else they voted on, keeping the proportions the same (alternatively, you can think of this as another renormalization of the voter’s points). If all of a voter’s points were assigned to candidates which are now eliminated, we’ll pretend that the voter spread their points out equally across the remaining candidates.[6] We’ll run this process until we get to the three top candidates. 

A diagram of how we’ll use voters’ point distributions to determine winners. 

This should allow us to capture good information about how people would like to distribute the fund while also giving every voter similar power in determining the final outcome without penalizing people for voting for unpopular candidates or the like. 

Let us know what you think!

Comment here or feel free to just reach out. 

Also, consider exploring the Giving Portal, sharing how your project would use extra funding (or asking questions about other projects) for Marginal Funding Week, or otherwise participating in Giving Season events! 

Thanks to Will Howard and everyone who commented on my earlier Quick Take

  1. ^

    If all the candidates you voted on get eliminated (i.e. your score on all the remaining candidates is 0), your vote on the other candidates will be redistributed as if you spread your vote out equally. This will mean that the final distribution of funding will be a bit more equal than if you hadn’t voted at all. 

    We wanted to prompt people to deliberately select projects to vote on to avoid encouraging people to semi-randomly assign small votes on projects they hadn’t thought much about (which might then get counted a lot if the major projects they’d thought about would get eliminated), and to make the point allocation step simpler for someone who just wants to distribute funding to their top 3 charities or the like. 

  2. ^

    We’ll have some tools to make this process easier. You’ll be able to start with a draft allocation, reorder by the point amounts you’ve added to review, edit, etc. We might also add an optional tool that people would be able to use to create a draft point allocation by simply comparing pairs of projects. 

  3. ^

    A highly polished mockup of the voting portal: 

  4. ^

    See this illustration of what it might look like if Candidate A is eliminated in classical ranked-choice voting:

  5. ^

    If there’s a tie, we’ll eliminate tied projects at the same time, unless that would put us at <3 winning projects, in which case we’ll choose based on the original totals (or, if those are also tied, randomly). I think a tie at any point is highly unlikely. (This process is loosely based on Robert’s Rules.)

  6. ^

    Why this might make sense, intuitively: 

    We could treat votes from people whose voted-on candidates have all been eliminated (or whose remaining votes are 0's) as non-votes (i.e. the fact that they voted doesn’t affect the vote at all at this point), or we could pretend that the 0’s they put were actually minuscule positive point values, distributed evenly on all the non-voted candidates. 

    Now suppose lots of people assign all their points to a few unpopular candidates which are eliminated before we get to the top three (note that this is a somewhat unlikely scenario). This would mean that our top three winning projects are something that lots of voters didn’t think much about (or thought were less cost-effective than other projects). It seems better to treat the projects as if they’re a bit more similar to a normal base rate of charities and in particular to equalize votes between them a bit.


Oscar Delaney @ 2023-11-25T12:08 (+5)

I haven't thought about this much, but wouldn't it be theoretically optimal in some sense for people to only vote for one option because there are no increasing marginal costs to subsequent votes to the same candidate? Which is solved by quadratic voting, but I am guessing you considered and rejected it, so quite likely there is something I am missing.

harfe @ 2023-11-14T15:42 (+5)

As someone who participated in the discussion I am satisfied with the outcome. In particular, I like that peoples votes still count with equal weight if their favourite charity gets eliminated.

A suggestion to supplement the voting system: The proposed voting system is compatible with ranked-choice voting. Maybe you can offer voters the option to give their vote in the form of ranking, without putting in lots of points. When calculating point totals, this would give all points of the voter to the highest-ranked charity on this voters ballot that has not been eliminated yet (within the current system, this effect can be approximated by giving 90% of points to my first choice, 9% to second, 0.9% to third, and so on).

Why? This could be a simpler way to vote for some people, and its fully compatible with the existing system. Also, the share of each voter corresponds to a few dollars, and at those scales, some EAs might think that all their share should go to the charity they consider to be the best, and not split up among multiple charities (this would correspond to giving all your points to that charity, but under the current system you should also spare some points in case your favourite charitiy gets eliminated).

Also, what is the point limit per voter? Maybe you dont need a limit at all, since you normalize the points anyways to give every voter equal weight...

Lizka @ 2023-11-14T15:53 (+3)

This is a good idea, thanks! (I'm not sure if we'll use it, but I expect Agnes or someone else will check what's confusing to people and might try this as an alternative.) Although I think the ranked-choice approximation would involve larger ratios (but I'm not sure). (We might also add a tool that lets people compare pairs of charities to produce a draft allocation of points, which might be easier for some people to work with.)

We aren't planning on having a point limit. We might display the sum of points someone's distributed on the point-allocation page, in case that's useful for them to check as they're allocating points. But we'll normalize points ourselves. 

Peter Wildeford @ 2023-11-14T17:12 (+4)

I assume in the renormalization step there will still be exhausted ballots (e.g., they voted for three orgs and none of the orgs made it). I assume then the plan would be that those ballots just won't continue to matter in the election? I know this sounds bad the way I'm writing it, but this is how ranked choice voting works and seems totally fine + normal to me, just wanted to make sure you've thought about it because I didn't see it mentioned.

I also assume that the way the renormalization step works is that if everyone gets 10pts and someone voted A - 6pts, B - 2pts, C - 2pts and then A is eliminated, their ballot is then changed to "B - 5pts, C - 5pts"? And if B is also eliminated, their ballot becomes "C - 10pts"?

Also do you allow for undervoting (e.g., a ballot that doesn't allocate points to three options but is just "A - 10pts" full stop)?

Lizka @ 2023-11-14T18:08 (+5)

Most of the info on exhausted ballots was in footnotes, unfortunately: 

If all of a voter’s points were assigned to candidates which are now eliminated, we’ll pretend that the voter spread their points out equally across the remaining candidates. 

[Footnote: 

Why this might make sense, intuitively: 

We could treat votes from people whose voted-on candidates have all been eliminated (or whose remaining votes are 0's) as non-votes (i.e. the fact that they voted doesn’t affect the vote at all at this point), or we could pretend that the 0’s they put were actually minuscule positive point values, distributed evenly on all the non-voted candidates. 

Now suppose lots of people assign all their points to a few unpopular candidates which are eliminated before we get to the top three (note that this is a somewhat unlikely scenario). This would mean that our top three winning projects are something that lots of voters didn’t think much about (or thought were less cost-effective than other projects). It seems better to treat the projects as if they’re a bit more similar to a normal base rate of charities and in particular to equalize votes between them a bit.

]

Renormalization: you've got it right! 

Under-voting: yeah, we're allowing it. 

[Edit: looks like harfe and I answered at basically the same time. :) ]

Peter Wildeford @ 2023-11-14T22:16 (+2)

Sorry I missed that. I think that's a sensible way to handle ballot exhaustion.

harfe @ 2023-11-14T18:11 (+3)

I assume then the plan would be that those ballots just won't continue to matter in the election?

No, it sounds like they will count as equally weighted votes. From the article: "If all of a voter’s points were assigned to candidates which are now eliminated, we’ll pretend that the voter spread their points out equally across the remaining candidates." I think both would be ok choices

I also assume that the way the renormalization step works is that if everyone gets 10pts and someone voted A - 6pts, B - 2pts, C - 2pts and then A is eliminated, their ballot is then changed to "B - 5pts, C - 5pts"? And if B is also eliminated, their ballot becomes "C - 10pts"?

Basically, yes, according to my understanding. Except that there is no fixed point limit, but every voters points get normalized so that voters have equal weights.

Also do you allow for undervoting (e.g., a ballot that doesn't allocate points to three options but is just "A - 10pts" full stop)?

I would guess yes, based on the description.

Kirsten @ 2023-11-14T18:44 (+3)

I'm excited!

Sjlver @ 2023-11-16T13:10 (+2)

Thanks for setting up this donation election!

Choosing voting methods is difficult, and no voting method is without flaw. Nevertheless, I am somewhat unhappy with the method proposed here, because it is very difficult for users to support multiple candidates. The problem arises because the method tried to do two things: (1) determine which candidates are in the top three, and (2) determine their relative popularity.

The problem: as a voter who likes two candidates A and B, I cannot support A without harming B, and vice versa. My rational behavior is to allocate all points to either A or B, to maximize the chance that one of them ends up in the top three. If I split my points between two candidates, I face the risk that neither makes it in the top three.

Other voting methods behave better with respect to this problem. For example, if we used approval voting to determine the top three, I could vote for both A and B without one vote harming the other. Similarly, in classical instant runoff voting without weights, I can put A and B at the top of my list, without having to work about negative consequences for either of them.

I think that this problem is best solved with a two-step voting process. In a first step, determine the top three candidates. In a second step, determine relative allocation of money. The second step would probably use different information than the first. This could be done with the current weights, if the first step considered only the order of candidates on the ballots.

harfe @ 2023-11-16T14:00 (+3)

My rational behavior is to allocate all points to either A or B, to maximize the chance that one of them ends up in the top three. If I split my points between two candidates, I face the risk that neither makes it in the top three.

I think you are misunderstanding the mechanics of the elimination here. If you allocate nonzero points to both charities, then after one of A and B will be eliminated, all points will be reallocated to the remaining charity. So, to maximize the chance that one of them ends up in the top three, it doesn't matter much weather to put 50 points on A and B each, or 99 points on A and 1 point on B (and actually, putting all points on one of A and B will do worse than these).

Sjlver @ 2023-11-16T21:27 (+1)

What you write is almost right, but not 100%... we are getting at the heart of the problem here. Thanks for making me re-think this and state it more clearly!

Edited to add: I've now also read the discussion that you've linked to in your comment. It is now clear to me that the team has thought through issues like this... so I wouldn't be angry if you prefer to use your time more wisely than for responding to my ramblings :)

Assume as an example that, without my vote, there is the following situation:

  • candidate A received 933 points from other voters
  • candidate B: 977 points
  • candidate C: 1000 points
  • candidate D: 1001 points

In this case:

  • If I put most of my votes to A, it gets in the top three along with C and D
  • If I put most of my votes to B, it gets in the top three along with C and D
  • If I split my 100 points just right, A and B both get in the top three

I understand that this is a constructed example with low probability of happening. It is meant to illustrate the case where, as a voter, I would like to support two candidates, but my support for one will hurt the other, and vice versa.

As a voter, I'd be particularly vexed if I had allocated 60 votes to A and 40 to B. In that case, I would have caused B to eliminate A, despite having more strongly supported A. This could not happen in approval voting, non-weighted instant run-off voting, or any Condorcet voting method.

As I wrote earlier, no voting system is perfect. For each system, one can construct silly counter-examples for which the system behaves counter-intuitively. For the subproblems "top-3 election" and "funding allocation", there are known solutions, for which the counter-intuitive situations are somewhat well understood. In your case, you have combined the two sub-problems into one harder combined problem. This makes it more difficult to reason about corner-cases, and creates a few more undesired incentives for strategic voting.

I don't think this is a critical flaw, so there is no urgent need to change things. If you did choose to change the approach, you might end up with two separate voting steps that are simpler and require fewer explanations than the current system.