Reciprocal Score Voting

From electowiki

Score voting and other cardinal systems are susceptible to the chicken dilemma and other situations which occur when similar groups penalize one another by not cooperating. Reciprocal Score Voting (RSV) is an unusual attempt to address this lack of cooperation by explicitly and safely rewarding it, and punishing those who do not cooperate.

Most strategy-optimizing systems, like Approval Voting or Instant-Runoff Voting, deal with strategy by ensuring voters can never cast a "weak" vote that may be exploited by opposing groups. This way, an equilibrium of aggression is reached by removing the opportunity for collaboration altogether. In contrast, Reciprocal Score Voting aims to encourage collaboration by rewarding it and punishing aggression, be it symmetric or asymmetric. RSV attempts to reward truces instead of removing the possibility of truce.


Yee diagrams for Reciprocal Score Voting, showing non-monotonicity and small amounts of center squeeze.

The idea is to tie how much support a faction's preferred candidate receives from other factions by how much that candidate's faction has supported those other factions. In other words, support must be given to be received, encouraging reciprocation, hence the name.

To do this, voters are split into factions and ballots of each faction are used to rate other factions. These mutual factional ratings are then used to adjust each voter's ballots, so that between any two factions their average mutual ratings are equal. For example, if faction A rates faction B an 8, but B rates A a 5, the scores given by voters in faction A will be adjusted so that the mean rating of faction A towards B is also 5 instead of the original 8. (In practice, if voters can belong to more than one faction, the adjustment only stabilizes the mutual faction ratings approximately.)

Support is capped by the lowest amount of reciprocation. This way, all factions are encouraged to mutually give higher ratings to one another, while striking a balance in not supporting too much.

Method description

Each ballot is assigned to one or more factions, based on the top rated candidates in that ballot. The ballots of each faction are then used to run mini score voting elections, the results of which represent how well each faction rates every other faction.

Let be the ballot rating of the -th voter towards candidate , where is the set of factions assigned to that voter (the candidates which received top ratings from that voter). This means for all .

Define to be the mean rating given by faction to faction , and also that , that is, the mean of the rating given to all members of that set of factions, and similarly for . Note that may be regarded as a square matrix, and and the mean between the columns and rows (respectively) corresponding to the factions in .

With these established, Reciprocal Score Voting proceeds by re-weighting and aggregating the ballot ratings according to the rule:


that is, factions only give support to factions they received support from, and in proportion to that support up to a maximum. Note the case of only occurs when all , in which case no reweighing is necessary.

Only when factions agree on their mutual ratings and perfectly reciprocate is that their reciprocity ratio , in which case votes are left unchanged. In every other situation the side which reciprocated less gets penalized, receiving less support from whatever faction they failed to reciprocate with.


In the case of any asymmetry in support, the reciprocity ratio is for the faction which did not cooperate, and for the faction that did cooperate. Therefore, not cooperating penalizes the side which did not cooperate more. In this way, factions are encouraged to cooperate as much as possible to maximize mutual support, forcing them to strike a balance between supporting their favorite as well as supporting alternatives as much as they can. In the case of opposing factions, the mutual lack of cooperation has no effect.

This system is non-monotonic and suffers from a very unusual "reverse spoiler effect" (see "chicken dilemma" below), in which a larger faction may lose an election by not supporting smaller supportive factions. Therefore, larger factions are encouraged to promote smaller factions as much as possible in order to win.

The condition above is required so that support is never amplified by asymmetry. This is also necessary so that a smaller faction cannot parasite on the support of a larger faction, which will never rate the smaller faction above its own. A smaller faction artificially rating a larger faction too highly will only receive exactly as much support as the larger faction is willing to give to it.


It is always advantageous to top-rate a favorite candidate (RSV passes no favorite betrayal), but the rating of other candidates requires assessment. Strategy under RSV depends on whether a front-runner is among a voter's top choices.

  • If a front-runner is a top choice, under RSV a strategical voter has no incentive to reduce the rating of similar candidates, as in most systems. The opposite is true, in fact: they are encouraged to amplify their support towards allies as much as possible to obtain more of their support, while striking a balance so that their favorite remains a front-runner. Since faction ratings and mutual support are all interrelated, further strategy would require collaboration across competing groups.
  • If any of the top choices is not the front-runner, the optimal strategy is to equally top-rate every "underdog" candidate deemed better than the front-runner (especially the favorite), and rating every other preferred candidate in order of perceived "viability". That is, the preferred front-runner would be rated as highly as possible below the favorite "underdogs", in order to maximize the support they receive from the front-runner's faction. Since the front-runner's faction is also encouraged to support the underdogs as much as possible, as per above, this is beneficial to all cooperating factions.

Thus factions which mutually collaborate have an advantage over opposing factions which are internally fragmented and uncooperative.

Exaggerated approval-like voting

The optimal strategy under score voting is to vote approval-style: only using the minimum and maximum ratings. Under RSV this exaggerates faction overlaps, so that exaggerating voters will belong to multiple factions. This can benefit or damage them, depending on the behavior of other factions, but a precise analysis is difficult.

If every voter exaggerates, the reciprocity ratios will emulate honest score votes with the same outcomes, based on probability of a voter from a faction casting an approval. For example, suppose 30% of faction A voters approve of candidate B as well as A, casting A=10 B=10 ballots. Faction A's mean score towards B will be 3. In turn, 40% of faction B reciprocates, casting A=10 B=10 ballots.

The adjusted ballots for these voters will become A=10 B=3 and A=3 B=10 (B voters reciprocate more, so their support caps at 3), so that their strategical behavior reproduces, in a sense, the "mean belief" of their own faction: if 30% of voters exaggerate a score of 10, this becomes equivalent to the faction giving a score of 3, which produces identical results in a score voting election by linearity.

However, due to the collaborative advantage offered by RSV, such behavior will significantly reward consensus candidates, and will be less problematic than under score or approval voting.

Bullet voting

Bullet voting, supporting a single candidate, is a completely suicidal strategy under Reciprocal Score Voting. By giving zero support to other candidates you ensure your candidate will get very little support from others. If an entire faction bullet votes for their favorite they will receive no support from anyone else. Unless they are a strong majority which can guarantee a victory this will almost certainly backfire.

Chicken dilemma

Unusually for cardinal systems, this system handles the Chicken dilemma reasonably well. Suppose a three-candidate (ABC) election, with 0-10 ballots as follows:

Faction % A B C
A m r 10 b 0
B m (1 - r) a 10 0
C (1 - m) 0 0 10

Here, m is the fraction of voters in the A+B faction, and r the fraction of A+B voters in the A subfaction. a and b represent the scores given to A and B by B and A, respectively. The total scores are:

A = m (r 10 + (1 - r) a)
B = m (r b + (1 - r) 10)
C = (1 - m) 10

If m > 0.5, A+B is a mutual majority. Either A or B can easily win over C provided there is enough mutual support. The goal then is to ensure they mutually support one another. (For example, if m > 53%, a modest majority, they may rate one another as low as 8 and one of them still win. Bigger majorities require even lower ratings.)

Without loss of generality (due to symmetry), we can assume the faction A is larger than B (r ≥ 0.5). In this simplified scenario the faction ratings are simple to see: they can be read straight from the ballots (the table above).

The reciprocity ratios between A and B are then simply and . The ballots are thus adjusted to:

Faction % A B C
A m r 10 b min(1, a/b) 0
B m (1 - r) a min(1, b/a) 10 0
C (1 - m) 0 0 10

Giving total adjusted scores:

A = m (r 10 + (1 - r) a min(1, b/a))
B = m (r b min(1, a/b) + (1 - r) 10)
C = (1 - m) 10

If faction B defects entirely by giving a = 0, the ratings become:

A = m (r 10 + 0)
B = m (0 + (1 - r) 10)
C = (1 - m) 10

Such that B ceases to get any support from A. Thus, there is no incentive for B to defect, and they have an incentive to rate A highly. Even more curiously, suppose r = 3/4 such that A is a much larger subfaction than B. In most voting systems, such as Instant-Runoff Voting, A would be safe not supporting B, but this is not the case under Reciprocal Score Voting. If A defects with b = 0, the exact same results as if B defected occur! Therefore, even if A has an advantage over B, it is still in their best interest to support the minor faction as much as possible. This is akin to a "reverse spoiler effect", in which the larger mainstream party spoils the election by not supporting the smaller third party.

A "soft defection" (giving a low non-zero rating) would produce similar penalties accordingly, with a greater penalty for lower scores. The cardinal nature of RSV ensures all such behaviors are gradual.

Since the incentive for betrayal is eliminated, but the rewards for collaborating are preserved, Reciprocal Score Voting minimizes concerns with Chicken Dilemma scenarios. Thus in any sufficiently large mutual majority scenario, the likelihood of either A or B winning will be very large (although not guaranteed due to the non-ranked nature of the system).

Reverse spoiler effect

RSV suffers from a "reverse spoiler effect" in which a large faction may lose by not supporting a smaller faction. This can be a major problem when the smaller faction is a group with fringe or too radical beliefs compared to the main faction.

Since such fringe groups would likely be universally hated by every other faction, it may be the case that their support becomes effectively irrelevant in an election. In the extreme case if every other faction gives the fringe faction zero support, then the fringe faction's support to every other faction will be zeroed out. Thus, their effect on the election effectively disappears.

If, however, there is significant support for the fringe faction, one way to partially address the issue is to additionally adjust the reciprocity ratio factors to include the total ratings given to each faction, that is, if a fringe faction gets an overall low mean score, then that low mean score is used to lower the penalty of not reciprocating with that faction. This way, sufficiently fringe factions largely give asymmetric support towards more mainstream factions, making reciprocation with them less necessary. Between similar largely acceptable factions, which would receive similar overall mean scores, the effect cancels out and RSV proceeds as normal.

Therefore, by taking into account mutual reciprocation as well as overall ratings RSV can be made to promote reciprocation only between factions that have similar levels of overall support. It is unclear how severe this issue can be, however, and further investigations are warranted.

Passed/Failed criteria

Under complete ballot equilibrium (reciprocity ratios are all 1) RSV is identical to score voting. Therefore, RSV obeys whatever criterion is obeyed by this subspace of possible score voting elections. A basic analysis regarding voting system criterion reveals the following.

  • Majority criterion: as the pre and post-adjustment ballots are both score ballots and operate in a similar fashion, strictly speaking RSV fails the majority criterion under more exotic circumstances. However, it does so only if the majority's and the winning candidate's factions highly rate one another, which is a less problematic situation. It is, however, very robust to strong majorities:
Faction Voters A B
A 80 10 b
B 20 a 10

A is a significant 80% majority, but B can still win under regular score voting if b ≥ 8, with a ≤ 5. Under RSV, however, B can never win for any size of the A majority or values for a and b, as the majority will always benefit from the minority's collaboration or defection.

  • Mutual majority criterion: as in the chicken dilemma scenario mentioned previously and for the same reasons as in the majority criterion, strictly speaking it fails, but it is unlikely and failures likely less severe.
  • Later-no-harm criterion: fails. However, it is more robust with respect to the top-rated candidates (the voter's factions), as per above analysis. The harm to a voter's faction can only happen if there is significant overlap, making these failures less severe in terms of satisfaction. Candidates which are not top rated will suffer more severely from LNH violations. Under strategy, as described above, LNH violations will be minor as the larger factions benefit more from the reciprocity than the smaller ones.
  • Monotonicity criterion: as RSV ties together the support given to multiple candidates, it is non-monotonic in a very exotic way, especially with respect to the favorite candidates: a top-rated candidate can have a lower chance of winning by lowering the scores of another candidate.
  • Independence of clones: passes, provided the clone is sufficiently similar, otherwise the clone itself may gain more support by inducing more reciprocation. Identical clones, which receive identical ratings in all ballots, will receive identical final scores, and their presence will not affect the scores of other candidates.
  • Summability criterion: fails. The reciprocity adjustment pass requires knowledge of all ballots in order to compute the faction ratings.


After the adjusted score ballots are computed, one can additionally implement any variant of score voting. For example, Reciprocal STAR Voting (RSTAR) would have the top-two rated RSV candidates in an automatic runoff, and the most preferred candidate wins, preferably using the original ballots, not the adjusted ones.

If one chooses to use the adjusted ballots in the automatic runoff it is possible that factional betrayal reverses the preference of a voter, which could be problematic. For example: a voter rates (A=10 B=8 C=5 D=0), and BC are the top two under RSV. If B did not reciprocate with A and this voter's score is adjusted to B=4, this voter's runoff vote would go towards C, not B. While this could also be interpreted as a form of retaliation in the spirit of RSV, it is harder to justify as it does not directly encourage any particular positive outcome or behavior (like reciprocation).


The following Mathematica code takes a list of score ballots and returns the Reciprocal Score Voting mean score.

RSV[ballots_] := Module[{i, factionmask, factionratings, fif, ffi, nc, nv, fr},
   {nv, nc} = Dimensions[ballots];
   factionmask = KroneckerDelta /@ (# - Max[#]) & /@ ballots;
   factionratings = Mean /@ Table[
      fr = 
       Select[ballots, (KroneckerDelta /@ (# - Max[#]))[[i]] == 1 &];
      If[Length[fr] == 0, {ConstantArray[0, nc]}, fr],
      {i, 1, nc}
     fif = 
          Position[factionmask[[i]], 1]]];(* i\[Rule]\[Phi] *)
     ffi = 
          Position[factionmask[[i]], 1]]];(* \[Phi]\[Rule]i *)
     ballots[[i]] (Min[1, #[[1]]/If[#[[2]] == 0, 1, #[[2]]]] & /@ 
        Thread[{fif, ffi}]),
     {i, 1, nv}

See also