HOW WE VOTE often determines the outcome of the vote. As more and more people are developing decentralized organizations and decentralized autonomous organizations on the blockchain using smart contracts, as we transition from paper-based to e-governance, more and more formal voting will take place. This page provides a set of free voting concepts and tools for software developers, to improve how we vote. I’m just starting this project, looking for volunteers to help turn it into something really useful. I’ll start by introducing some general concepts that apply equally well to political, organizational, and group voting:

  • Why do we vote?
  • When Should we vote?
  • How Should we vote?

Then I will provide my plan for creating open-source voting modules everyone can use in every application. Mostly, it’s about a voting system called range voting:

  • Range Voting Overview
  • Determining the Winner
  • No Vote vs Low Vote
  • Mobile Range Voting
  • Who Should Vote?
  • Recording and Reporting
  • Liquid Democracy
  • Voting Markets
  • The Range Voting Platform
  • Educating Voters
  • Contact me if you want to help

Why do we Vote?

We vote to try to do the right thing for the most people, especially in situations where the future outcome is not obvious and different people have different ideas of how things will play out. Our goal is to try to maximize our chances of a good outcome in an uncertain situation using limited resources. Voting systems should be designed to promote the following two important principles …

  • V1: the majority gets their way, and
  • V2: the majority can’t stop a minority from becoming the new majority, if that’s what people want.

These are important. Be sure to keep them in mind as you read this page. In practice, most voting systems tend to favor the existing majority and make it difficult for people to try new ideas, violating V2. In addition, most voting systems are gamable — people can vote strategically to try to block alternatives they don’t like, to help favor those they do. So when we vote, we need a better system for accomplishing our goals.

When Should we Vote?

Sometimes we vote when “the rules” say we need to vote. Often, we vote when we don’t need to. Since voting is a subset of decision theory, it helps to understand how to make a good decision and learn when to vote.

This is an important topic I don’t have space to cover fully. If you don’t absolutely have to vote, you could try these things first:

  • Framing, gathering information, eliciting values, and discussion before making a decision. You can learn about these methods by watching videos on YouTube, reading books on decision science, learning Doug Hubbard’s Applied Information Economics, and hiring a decision scientist as a consultant.
  • Use a multi-criteria analysis framework that helps break down the choices and bring people to a conclusion. This takes more work than holding a quick vote, but it probably helps organizations more in the long run.
  • Move decisions further down, allowing smaller groups to do what they want, rather than forcing large groups to do what no one wants.
  • Take turns and learn. Sometimes just taking turns works out best for all, and that can be true in governance as well. A more advanced version of this is building coalitions, where people trade their lesser desires to implement their top priorities, even if they aren’t in alignment with everyone else’s.
  • Try decision markets. Without voting, you can set up decision markets to do much of the heavy lifting, and that may completely replace voting, or it may leave many fewer decisions to a vote.
  • Do experiments and learn more before deciding.

In general, groups of people vote too often and incorrectly, which usually serves one group’s agenda over others, and can result in the worst outcome for all.

Of course, there are times when you should vote, and those can be broken down into two main categories:

  • Using voting as a means to make a decision, either by all group members or by a subset who have been delegated the task/responsibility to do so.
  • Using voting to decide an outcome that is contested and where one side “winning” means another side “losing.” This is usually for “regime change,” situations, where one group wants to seize power of common resources and another group wants to retain that power.

In the first case, we often have group or organizational elective decisions, like where to have the big annual event, whether to buy a competitor, whether to buy back stock, whether to make an investment in new technology, etc. Even in these cases, how we vote can have a huge influence on the decision we make. For example, going for full consensus (100% agreement) is often the kiss of death, since it empowers anyone to block a decision.

It really helps to have a decision scientist around, since decision scientists are trained to spot things like outcome asymmetries, where the costs of not doing something may be higher than the costs of doing something, or vice versa.

Often, the choices we’re voting among haven’t really been thought out very well. In California, the government often decides issues using public votes on particular projects. These are often extremely political, with much back-room maneuvering, messaging, and hidden agendas. The advertising, television debates, and printed material all reflect biases and agendas, most of which distort the evidence and present the “facts” in a light that favors a group’s preferred outcome. In many many cases, the choices aren’t fairly laid out and the framing is skewed to favor one outcome over another. For example, many people often agree on the ultimate objectives of projects — water conservation, cleaning up toxic sites, building museums, improving infrastructure — they simply disagree on how to accomplish them and how much to spend. These subtle nuances often get packaged into a yes/no proposition that people then have to accept or reject entirely. Most voting systems aren’t set up to let people express their preferences — they are set up to determine a winner and move on.

In the second case, voting determines who is in and who is out. This kind of winner-take-all contest can be very stressful, with lies and deceit on both sides. In this case, it’s important for a voting system to capture people’s preferences, not just make a binary decision. The reason is that life is rarely black and white. In keeping with principle V2, we want to be sure that weak voices are heard and have a chance to grow. We don’t want a system that automatically favors the incumbent.

How Should we Vote?

Assuming you have decided (or are required) to vote, it’s time to look at voting systems. I won’t go into the US Electoral College and other required forms of national voting, because they are generally bizarre and distort the outcomes, and changing them is beyond the scope of this page. What I want you to see is that range voting is vastly superior to all other forms of voting, including some you may think are cool or new.

To understand range voting, we should first understand standard, or straight voting, often called majority voting. In this scenario, people vote for their first choice and the one with the most votes wins. It often involves “primary” votes, to determine the two “finalists,” and often allows write-in candidates. This is called “cave man” voting, because it often distorts the will of people, can be gamed, and sets up strategic voting blocs that try to manipulate the vote. To learn why you shouldn’t use cave-man voting, please see the video at

Another approach is called true majority rule, which tries to fix the gaming possibilities of straight voting. This article lays out the pros and cons of various existing voting systems and explains Arrow’s Impossibility Theorem — I encourage you to read it. True majority rule would be the best way to implement voting if we didn’t have range voting, but range voting is usually superior and never inferior to the other forms of voting we have.

Range Voting Overview

Since we don’t have many range-voting systems yet, and most of them are aimed at paper voting, my goal here is to explore various interfaces, test them, and then provide code to help people add them to their apps.

Range voting is only done once, using as many choices as you like, where people express their preferences through their votes. Here’s an example:

I’ll explain the concepts here:

Preferences: The goal of range voting is to capture people’s true preferences without penalty. As we know, in the 2000 presidential election, a vote for Ralph Nader was a vote Al Gore didn’t get, and that had a huge influence on the election. People voting for Nader didn’t actually think he would become president — they wanted a way to express their beliefs and preferences. In this case, they ended up electing George Bush — something most of them didn’t want.

Range Fidelity: The first thing to understand is that I’m using a range of 0 to 20, and that’s for a very good reason: it’s a very good voting range for many purposes. This gives the voter 21 possible choices for each option, which should be plenty. But it’s important to understand that this could also be a 0 to 100 scale, or 0 to 9, or any other scale you like. The numbers don’t matter — only the relative differences matter. However, the goal is to make it easy for voters. Do you really want them trying to split hairs, deciding between a 67 and 68? It may be useful in some cases, but I think either the 0 to 9 or the 0 to 20 ranges provide the differentiation you want without the extra load of trying to think about small increments.

It’s fine to try and see what works. No numbers would be fine, 0 to 9 may be useful in some cases, but the 0 to 20 scale seems to give a good degree of freedom without imposing too much cognitive load.

Why do I say 0 to 9, rather than 0 to 10? Because people tend to fixate too much on numbers like 10 and 100; removing them causes people to think a bit before casting a vote.

Not Adding to 100: The numbers don’t have to add to 100 — another reason not to use a 0 to 100 range. People may instinctively think their choices must add to 100, so you have to try to design that default behavior out of the system. The goal is to get them to express their preferences, not “pick a winner.” It’s entirely normal for a first choice to be, say, 20, and second choice to be 18.

No normalization. It doesn’t matter if I cast my votes all in the red and yellow, and you cast your votes all in the green section. What matters is the relative percentages, not the absolute numbers. So you don’t need to worry about one person’s 14 being another person’s 18 — these differences wash right out. In the example above, the favorite choice is rated at 19. You can think of range voting as automatically renormalizing the votes so that 19 is the highest. Making it 20 is only important if you think you want the difference between Futarchy and Democracy to be one more unit apart. In other words, as long as the user is happy with his ranking and ranges, that’s all that counts.

Color: It should be clear (if you’re not colorblind) that anything in the 0 to 5 range is essentially a negative vote, and anything in the middle is a bit of a vote, and then the green area is for things you really want. This is something to be explored — it may work well, or it may backfire. We need to understand how people perceive the colors, whether they help, and how colorblind people experience the screens.

Relativity: What’s important is the relative positions of the sliders — the numbers don’t matter at all.

Choice fidelity: In the example case, there are four choices. It’s probably best to offer between three and seven choices most of the time.

There will probably be times where you offer two choices — especially in yes/no referenda. The goal is still to capture people’s preferences. For example, if the choice is between building a new bridge for $200 million and not building the bridge, you may have a lot of very low votes for both, since people may want the bridge but think it’s too expensive. Still, in this case, the one with the most votes wins, so if the “no” vote carries but without very high vote numbers, then it’s time to go back to the drawing board and try to find a way to build a bridge for less. But first — ask yourself if you can find a way for people to vote on 3 to 5 versions of this future, and then you will capture more information, even though you have to explain the trade-offs carefully.

In other cases, there may be more than seven potential choices — as we would have if we let everyone who wants to run for president. In this case, you want to work on reducing the list as much as possible, by having candidates meet certain requirements, then letting people write-in any choice they like. Only offer more than seven if you really have to.

You may have to. For example, if you’re choosing board members for your building, and twenty people want to be on the board, then you’ll probably have to offer twenty choices.

No slates. The goal of range voting is to learn what people’s preferences are. You don’t want people ganging up into “slates,” where people can click a slate to select a group together. Never allow slates.

Random presentation: It’s a good idea to present the choices in essentially random order. This is especially important in an election among a large number of voters or with a large number of choices. Software can do this easily.

Write-ins. One way to limit the number of choices is to offer, say, seven choices, and leave an eighth choice to write in anyone you like. Write-ins help determine people’s preferences, so it’s a good default position to use them when you can. Prefer to include write-ins rather than exclude them.

Signaling. One important aspect of range voting is that it encourages people to express their preferences fully. No matter who wins, everyone can see the full spectrum of preferences. This allows, for example, someone who comes in a close second place to continue to work to change the system and try again next time. These signals are important for the V2 concept — creating mechanisms for people to turn a minority into a majority, rather than squelching or disincentivizing them.

Determining the Winner

In range voting, the winner has the highest average score. Simply add up the number score for all the votes cast for each choice and then divide by the number of votes. If, say, you’re choosing seven board members, then the seven people with the highest average scores win.

No Vote vs Low Vote

This is one tricky distinction between range voting and other systems. Technically, there’s a difference between not voting and casting a low vote. Here’s a screen where the voter has left the first two choices untouched and voted for the second two.

Technically, not casting a vote does not affect the average score of that choice, while a low vote will have the effect of dragging that choice down. When you don’t vote for a choice, you are saying it doesn’t matter to you and you don’t think it should be on the ballot.

Let’s see how this works. If the average vote for Monarchy, is 6, then any vote under 6 will make Monarchy less likely to win, and any vote over 6 will increase Monarchy’s chances. Of course, people don’t know what the average is as they vote. A no vote is essentially the same as voting 6 — it doesn’t move the needle at all. Since no one knows what the averages are, this “no vote” choice lets people express their preference by saying they don’t think that choice should be on the ballot. On the other hand, if you really care about a particular choice, you probably want to drag down most or all of the other choices, so people must be aware of the difference between a low vote and a no vote.

This can confuse people if not designed carefully, so a way to keep things simple is to forget about the no-vote option, just start each choice at zero and let people move the sliders forward.

Studies have shown that using negative numbers for votes is confusing. It’s possible that using red shading is also. Is it clear to you that a 2 is more of a vote than a 0? Can you imagine voting in the red zone? These interface issues need to be explored.

It’s possible, but unlikely, to influence the outcome of the election by choosing one of these approaches vs the other. Simpler may be better. We need to do some experiments to determine whether the “no vote” option should be the default or whether we should just keep things simple and only use it in special cases. My sense is that it’s probably best if we don’t offer the no-vote choice, but the people at generally encourage it.

Mobile Range Voting

It’s clear that more and more systems will need to reach people for a quick vote, either on their phones or tablets. We will have to experiment with how to present range-voting solutions.

Recording and Reporting

It makes sense to record votes onto the blockchain, to make them a matter of public record. This will be extremely important for governmental elections as we scale up e-voting. Blockchain voting combined with a good identity scheme will provide transparency and prevent tampering of votes.

We should also give some thought to standardizing our voting results, so data scientists and others can find them. If we use standard formats and tags, data analysis will be able to help us detect trends, anomalies, perhaps even fraud by looking at the data.

Reporting results is very important in the case of hotly contested votes. It will be common for governments and others to refer to third party verification, so people are assured that the vote was properly tallied.

Who Should Vote?

It’s always tricky determining who is eligible to vote and how many votes they get. In many countries, people who have lived and paid taxes there for twenty years still don’t vote if they aren’t citizens, while citizens who live abroad get to vote. When voting for board members for your building, should you get more votes if you own a penthouse than if you have a one-bedroom at the ground level? What about shareholders of companies?

In most cases, the default is one share, one vote. So, for a building, it’s reasonable to give people who either paid more for their property or whose property is worth more a larger number of votes. But these decisions can have huge impacts on the outcomes of future votes. Ideally, a community decides on the degree of equality they want, discuss the consequences, and then write their by-laws to reflect the group’s goals. In practice, this can be very tricky.

If you find a good academic article on allocation of votes, I would love to read it.

Liquid Democracy

One interesting new approach is liquid democracy, where people can delegate their votes to others on an ad-hoc basis. So if I have 23 votes and you have 10, I can give you mine and you will now have 33 votes. I may want and trust you to cast my vote for me, and if I want to, I can take my votes back any time. In this scenario, people can become vote aggregators, but in practice they tend to be respected decisionmakers with more information than others have on a given topic. While I won’t go into it here, liquid democracy is becoming a more and more popular way to make group decisions and is worth looking into.

I expect that range voting eliminates much of the need for liquid democracy. If your single choice on a ballot matters that much, as it does with cave-man voting, and if it can be gamed, as it can with cave-man voting, then it makes sense to ask someone who’s paying attention to handle your vote. But range voting asks you to state your preferences, which most people can probably do with a bit of education. That way, they not only “pick the winner” but they also get to express their full range of preferences, and these then all add up to a group picture of peoples’ preferences that can be quite valuable. While I wouldn’t say we absolutely shouldn’t implement liquid democracy, I would advocate implementing range voting first, and then seeing if the problem you want to solve with liquid democracy is still there.

Liquid democracy requires new tools. If it’s appropriate, I would be interested to add those to the system I describe here, but not for a while.

Voting Markets

There are several proposals for using market mechanisms as voting mechanisms. In general, they fall into two categories:

  • Setting up some kind of market mechanism to get people to vote, to pay attention to their vote, and to pay for votes to show how much they care about the issue.
  • Setting up market mechanisms where each person votes according to how much he/she thinks the vote will impact him/her. So if you think a project or a person will have a $1,000 impact on your personal budget, then you would be willing to spend up to, say, $800 to defeat it.

In general, these mechanisms are far more complex than people are used to, and they may not be as helpful in practice as we may think. It may, in fact, be just as good or better to try to get people to understand and use range voting without payments. For these reasons, I’m not expanding this section, but I remain open to doing so if we see real-world benefit.

The Range-Voting Platform

A voting platform consists of the following:

  • Identity management
  • A vote-casting system
  • Vote tallying and determining results
  • Reporting results

The goal of this web site is to build open-source interfaces and code modules developers can use to just drop in voting and be done with it. I will start with range voting and add other systems as it makes sense (though I’m convinced that range voting should be used in almost all cases). I am looking for designers, developers, and testers to help. I am also looking for groups interested in funding this effort.

Educating Voters

People don’t know or think much about voting. I hope to develop a set of educational material (videos, print-outs, examples, etc.) so people who use the software modules can educate their users. This is a big part of the project and will require funds as well.

Update April 2017: Here’s a good piece on an Ethereum-based system, worth reading.

You can help get things started simply by setting links to this page using the URL:


If you’re interested in this project, please contact me. Feel free to connect with me on LinkedIn.

Provocateur, professional heretic, slayer of myths, speaker of truthiness to powerfulness, and defender of the Oxford comma.

Provocateur, professional heretic, slayer of myths, speaker of truthiness to powerfulness, and defender of the Oxford comma.