Published On: August 31, 2021
Home>Financial Education, Participatory Budgeting>Voting Algorithms in Participatory Budgeting

One compelling benefit of our #participatorybudgeting app is that it makes voting easy: There’s no need to print, distribute, collect, process, and ratify paper ballots. If you make a mistake, you can easily reset a proposal, reset the ballot, and even re-run the vote. More importantly, you can explore different voting algorithms over time, giving educators even better options for teaching civics. This article explores some of the voting algorithms we’ve implemented in the FirstRoot platform and discusses potential future algorithms.

Important terms

To help our discussion let’s define the following terms:

  • A Participatory Budgeting program consists of one or more cycles (PBCycle)
  • A PBCycle comprises all of the phases of Participatory Budgeting, from Ideation to Implementation
  • A PBCycle has a budget (PBCycle.budget) of real money
  • Students create multiple Proposals during the PBCycle
  • Each proposal has a Cost (Proposal.cost) in which Proposal.cost <= PBCycle.budget)
  • Students select their preferred Proposals through a voting process
  • A PBCycle Ballot has one or more proposals (PBCycle.ballot)

Voting system goals

Every voting system is designed with a specific set of goals. We believe that a Participatory Budgeting (PB) voting system has two primary goals:

  1. Find the preferences of the voters.
  2. Fund their proposals in ways that align with their objectives.

Because different algorithms are used to determine preferences and select which proposals are funded, this is a two-step process. In addition, and as discussed below, preference determination algorithms can be constructed to be more influenced or less influenced by the cost of the proposals and the overall budget.

Many PB programs favor selecting multiple proposals, which acts as a constraint on Proposal.cost. For example, suppose that the PBCycle.budget is $21,000, and the students want to ensure that at least three proposals are chosen. Practically, this establishes a limit of $7,000 per proposal, even though it is certainly possible that a single proposal could be selected that costs more than $7,000.

As we shall see, there is no perfect voting system. So, we advocate that the voting system is chosen through an open discussion with students. That way, that the tradeoffs are known. This encourages deeper thinking and helps prepare our students for civic life.

We begin our with the simplest voting system, and then introduce increasingly sophisticated methods.

Single-proposal, majority-winner voting

Majority-winner voting systems ask students to pick one winner from a ballot of individual proposals. This resembles many elections where voters have a list of candidates for public office and are asked to pick one.

This model is generally not recommended for Participatory Budgeting because it is rare that only one proposal is chosen for funding. Our experience shows that students, like any engaged citizens, usually identify and then want to fund multiple school needs, which gives them the experience of prioritizing budget items. That makes majority-winner voting restrictive and impractical.

Majority winner voting also has the disadvantage that it suggests that the majority winner receives more than 50% of the vote. That’s one true when there are two choices – which is rare for Participatory Budgeting programs. Unfortunately, many people interpret majority as more than 50%, which can also cause confusion for students.

Knapsack voting with preferences


In this approach, voting participants (typically students) select a set of proposals they wish to fund from a ballot. The ballot is considered valid if the total cost of the selected proposals is less than PBCycle.budget.

Knapsack voting is difficult to implement on paper because it forces the voter to perform a complex set of calculations in real-time: Every time they add or remove a proposal, the total cost of the ballot must be recalculated.

Fortunately, that’s what computers can do! Thus, the FirstRoot app uses a modified form of Knapsack Voting to ensure that every ballot is valid.

A decade of building PB solutions for global enterprises showed me that voters also want to indicate when they DO NOT WANT a proposal. This additional information is invaluable in understanding voter sentiment and can be used to further meet constituents’ needs.

The FirstRoot app extends Knapsack voting by allowing each voter to indicate a preference for a proposal, the strongest being to fund it. For proposals not chosen for funding, the voter can pick “Like,” “Neutral,” or “Dislike.”

We present the data to administrators, who can then determine which submissions should be funded in the case of ties or extremely close results. We also present these data to students to show the preferences, including proposals that are disliked, or even strongly disliked.

To see how @FirstRoot has implemented Knapsack voting with preferences, watch this video.

Ranked Choice Voting

Ranked Choice Voting (RCV) starts with voters ranking their top choices on the ballot. By default, our implementation sets n=5, which means that the voter can rank their top five proposals. The ballots are processed as follows:

  1. All first-choice votes are counted. If a proposal receives more than 50% of the first-choice votes, that proposal wins.
  2. If no proposal earns more than 50% of first-choice votes, then counting continues in rounds.
  3. At the end of each round, the last-place proposal is eliminated; voters who chose it now have their vote counted for their next proposal choice.
  4. This process continues until one proposal has the majority of the votes.
  5. Although RCV will identify the winning proposal, it does not solely determine which proposals are funded. The funding algorithm determines this, as discussed later.

New York is one major city that has adopted RCV. Accordingly, our PB colleagues in NYC have asked us to add support for Ranked Choice Voting (RCV) in the FirstRoot app because it is a challenging algorithm to implement on a paper ballot. We were happy to do this because we think it is important for teachers have the option to present multiple voting algorithms to students.

To see a preview of our designs for Rank Choice Voting, check out the following PDF.

RCV Overview

Quadratic voting

Quadratic voting is designed to allow participants to express both their preferences and the intensity of their preferences. To illustrate why this is valuable, let’s say you receive a ballot that contains one proposal you like a great deal, one you like somewhat, and two that you find appealing. While (RCV) allows you to arrange these four proposals according to your preferences, the ordering is linear; someone counting your ballot wouldn’t know the intensity of your feelings for the first proposal.

Quadratic Voting (QV) is designed to allow voters to express the intensity of their preferences by allowing them to cast more than one vote for a proposal AND establish an increasing cost to cast more votes. Put another way, voters have to “pay” for additional votes to express a strong opinion. Voting outcomes are then aligned, revealing the voters willing to “pay the most” rather than just a majority of voters.

The name of this voting algorithm comes from the cost formula, which is quadratic:

Voter cost = (number of votes)2

To accommodate the cost, voters are given a budget equal to the maximum number of votes that they can cast. The cost of the votes for a proposal would therefore be:

Number of Votes Cost of Vote
1 1
2 4
3 9
4 16

Assume that you were given a budget of 16 “voting credits.” If you truly preferred one and only one proposal, you could allocate four votes to help ensure that it passed. However, in the example, you might assign:

  • Three votes to the proposal you liked most, costing you nine credits
  • Two votes to another proposal you liked, costing four credits,
  • One vote to proposals you found attractive

This would mean you allocated 15 of your credits.

If another voter found that they liked eight proposals, they could allocate two votes to their top two proposals (costing eight credits) and one vote to the other six proposals (costing six credits).

Note that because QV does not consider the cost of the proposals, you could exceed the budget. However, you could implement QV to require that the sum cost of the proposals stays within the budget.

The results of QV are simple: proposals are rank-ordered by the number of votes.

Like Ranked Choice Voting, Quadratic Voting that allows voters to express the intensity of preferences. While QV is not in the FirstRoot development roadmap, I’m discussing it here for completeness. Of course, if enough schools want to use QV, we will support it.

Collaborative knapsack voting

In my last company, we implemented a sophisticated form of collaborative Knapsack voting for Lean Portfolio Management (LPM) that was based on the Innovation Game® Buy a Feature. This software is now offered by @ScaledAgile as #SAFe Collaborate. I’ll share an important simplification that makes it a compelling option for #ParticipatoryBudgeting (PB) in schools. But get ready. We’re going to move from the small budgets used in PB for schools to the enterprise budgets common in LPM.

In #SAFe, a Collaborate platform is a PB forum that consists of five to eight participants, each of whom receives an equal share of the budget (e.g., if the budget is $40M and there are eight participants, each participant is given $5M). The participants then collaboratively fund proposals. If a proposal costs less than $5M, it can be solo-funded. If the proposal costs more than $5M, it must be collaboratively funded. Proposals must be fully funded to be considered, unless the group agrees to significant changes in scope that lower forecasted costs (see for a full description).

This form of voting is powerful, as it promotes deep and rich conversations that result in materially better decisions. Simply put, the opinions of other voters really do matter, and discussing options enables the group to create a much better result.

In many ways, this approach is too powerful for school-based PB programs. First, students do not have the same ability to negotiate the price of the proposals as the adults in charge do. It’s best that these are fixed. Second, SAFe PB is designed to handle in-flight and multi-year investments, neither of which are optimal for the shorter durations associated with school-based PB. Finally, SAFe Collaborate PB forums are typically last one to three hours. When enterprises are investing tens to hundreds of millions of dollars, this is appropriate. But it’s too long for the smaller amounts associated with school PB programs.

To promote the powerful benefits of collaboration while ensuring the process is streamlined, we can simplify things. Instead of allocating money, each participant merely indicates their preferences for a proposal. Then, only after the group agrees to support it unanimously, would the proposal be funded. Although this may seem like an insurmountable challenge, this approach motivates rich conversations among the voters, and thus collaboration.

Because we think it provides a compelling way to promote civic engagement within small groups, we’ve added simplified collaborative knapsack voting on the @firstRoot development roadmap.

Funding algorithms

Once the preferences of the students are known, we need to determine which proposals to fund. One way to think about it is to consider the funding algorithms available to us following the voting. Here are three examples: a maximum budget consumption algorithm, a maximum proposal algorithm, and a greedy algorithm (our preferred choice).

To illustrate, suppose we have a PBCycle in a school of 1200 students with a budget of $10,000. The ballot contains 12 proposals, ranging in cost from $500 to $7500. Using one of the algorithms previously discussed, we find that the students preferences are as follows:

  • 1st place: Proposal G with cost $500
  • 2nd place: Proposal D with cost $2600
  • 3rd place: Proposal B with cost $7500
  • 4th place: Proposal A with cost $4500
  • 5th place: Proposal E with cost $2000
  • All other proposals cost at least $500

Which proposals should be funded? Mathematically, we know the winner should always be fundable, and thus receive funding. The choice of which remaining proposals to finance, however, is based on the funding algorithm.

A maximum budget consumption algorithm consumes as much of the budget as possible based on the preferences of the voters. It requires creating multiple sets of proposals based on preferences, choosing the set that consumes the maximum budget. For example, one set given through the greedy algorithm was {G, D, A, E} with a cost of $9600. Another is {G, B, E} with a cost of $10,000. The challenge is that the while the second set spends all of the funds, it skips the second most important proposal! Since this is likely hard to explain to students, we do not recommend this approach.

A maximum proposal algorithm funds as many proposals as possible based on voter preferences. Unfortunately, this algorithm is overly biased for the least costly proposals and is not suitable for Participatory Budgeting.

A greedy algorithm starts with the most preferred proposal and then funds the next proposal based on available funds, skipping proposals that would ‘break the budget’. The process continues until no additional proposals can be funded. Applying this algorithm, we would fund proposals G, D, A, and E, for $9600, skipping B because it would exceed the budget. This, however, would leave $400 unspent. We use this algorithm because it is easily explained.

Making votes count beyond simple addition

Voting algorithms power Participatory Budgeting. When applied properly, they turn ballot results into something bigger a simple winner. Instead, they empower people with the ability to add meaning to their voting. And that, in turn, gives everyone insights they would not have with conventional voting systems. The right voting systems can add levels of participation and insight, reinforcing the positive feedback loop engagement. Everyone participates, learns, and, yes, even if their proposals are not selected, everyone wins.