Published
Edited
Jan 3, 2022
Insert cell
Insert cell
Insert cell
viewof table = Inputs.table(tdh_results, {})
Insert cell
Insert cell
Insert cell
viewof table2 = Inputs.table(results_9, {})
Insert cell
results_9.filter(x => x.flippable).length / 512
Insert cell
Insert cell
1/Math.sqrt(4)
Insert cell
Insert cell
Insert cell
Insert cell
## Voting procedures

When it comes to actual quadratic voting, the idea is that each voter gets a set number of tokens, and then each vote costs the square of the number. So if you want to cast 3 votes, it costs 9 tokens, 4 votes costs 16 tokens (or +7), 5 votes costs 25 tokens (or +11).

To see why that's nice, consider 10 voters, 3 of which are die-hard for Candidate T, and 7 of which do not like Candidate T but are indifferent among 4 other candidates. With traditional voting, the results would look like:

| Candidate | Votes |
| --- | --- |
| T | 3 |
| A | 2 |
| B | 2 |
| C | 2 |
| D | 1 |

Here the voting doesn't allow the 7 voters to express that they'd prefer any other candidate aside from T. With quadratic voting though, they could.

With 100 tokens and quadratic voting, a die-hard would cast 10 votes for T at a cost of 100 tokens, so T would have 30 votes.

A non-die-hard would cast 5 tokens each for the other for candidates for ${tex`5^2 = 25`} tokens for each candidate (totaling to 100). That would mean all the other candidates would receive ${tex`7*5= 35`} votes, easily beating T.
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more