Strategic Voters & Parties

About FPTP, 10 min

Many countries like Canada, India, and the US use the first past the post (FPTP) voting system to elect their government. The system is simple, voters get a list of options from which they can only choose one, the winner is the option that receives the most votes.

A downside to this system is that voters who vote for losing parties aren’t represented. This can incentivize voters to vote for parties that are likely to win rather than parties that closely match their view. Not voting for your preferred party will be referred to as strategic voting.

For this post I’ve made a visual that simulates basic FPTP elections, with it we can inspect the impacts of strategic voting without the complexity of a real world election.

In the visual each colour represents a political party with a unique ideology, there’s 50 separate electoral areas where these parties will compete for votes. In the top half of the visual, each vertical strip represents an electoral area, the portion of each colour in the vertical strip represents the results of the last election. The bottom half shows a timeline of each party’s election averages over the 50 areas.

The top and bottom can be seen from three different perspectives. The “Winners” perspective shows what party received the most votes in each area, “Vote Results” shows what percentage of votes each party received, “Preference” shows what percentage of voters ideally want each party to win (this is identical to vote results if no one votes strategically).

Now onto the simulation. You can press play to continuously simulate elections, +1 and +10 to step through simulations at a slower pace, and -1 to compare with previous elections, pressing reset clears all historical elections. Here we have 5 parties as indicated to the left of the visual, try familiarizing yourself with the three perspective buttons, the currently chosen one is highlighted in yellow.

Once familiar, scroll down to the next visual to begin understanding what’s causing the change between each election.

Winners

Vote Results

Preference

Election 0

Reset

Play

-1

+1

+10

0 %

0 %

0 %

0 %

0 %

Area

%

Election

%

In this simulation there’s only two variables that cause all the change from one election to the next, one of them is randomness. Randomness dictates how much voter preference (not results) changes with each election. This is meant to be analogous to natural shifts that happen in real world elections due to factors like parties changing their campaign promises.

To simplify things, let’s only simulate 3 parties. There’s now a slider below the visual which lets you control the election’s randomness. The simulation will update in real time to changes you make, try seeing what happens with both high and low randomness, then scroll down to the next simulation.

Winners

Vote Results

Preference

Election 0

Reset

Play

-1

+1

+10

0 %

0 %

0 %

Area

%

Election

%

Randomness 50%

Randomness leads to changes in the election results but there’s no patterns or tendencies to these changes. The second variable, “strategic factor” adds predictable behaviour, it indicates what portion of voters will vote strategically.

There’s now a slider below labeled “Party Ideologies” with coloured rectangles representing each party, the position of each rectangle represents the party’s ideology, those that are close together have similar ideologies. When voting, voters look at their area’s last election results to gauge what chance their preferred party has of winning. When a party has a low chance of winning, a portion of their voters will strategically vote for parties with similar ideologies that have a better chance at winning. You can press each colour in the slider to see how the portion of strategic votes is spread.

The strategic factor slider determines what portion of voters will vote strategically. A higher factor means more strategic voters. Try moving the strategic slider to see its impacts, then move on.

How randomness is calculated (optional)

Winners

Vote Results

Preference

Election 0

Reset

Play

-1

+1

+10

0 %

0 %

0 %

Area

%

Election

%

Party Ideologies

Preferences

79.8%

20.2%

Strategic Factor 50%

Randomness 10%

The influence of strategic voting usually comes in two forms:

The first is in results that exaggerate preferences. Popular parties get more votes than the amount of people that prefer them, parties that are unpopular get less votes than that amount. This means a difference between preference and vote results, however the winners don’t change.

The second is in results that don’t align with preferences. Voters strategize based on the results of the previous election, so a party can suffer a loss of preferred voters but still gain votes based on a good performance in the previous election. This can result in an area’s favourite party losing to a party that’s less prefered.

Try simulating some elections and searching the areas for these influences.

Tip: If you set the strategic factor and randomness to 0% and simulate one election, voters will vote only for their preferred party in that latest election. Switch between that election and the previous by pressing +1/-1.

How strategy is calculated (optional)

Winners

Vote Results

Preference

Election 0

Reset

Play

-1

+1

+10

0 %

0 %

0 %

Area

%

Election

%

Party Ideologies

Preferences

74.7%

25.3%

Strategic Factor 50%

Randomness 10%

Now let’s shift our focus from how voters strategize to how parties strategize. You can move around the parties on the ideology slider, whenever you finish dragging a slider, the simulation will use the party’s updated ideology and recalculate voter’s strategic choices for the next elections (use the arrows beside the selected colour if you’re on mobile).

Try this exercise: Take charge of whatever party has the lowest results and act as their strategist that tries to increase their results. Slowly shift the party’s ideology until it gains enough votes to no longer be the worst performing. Continue doing this with the worst performing parties as they change, and you should notice a pattern. Keep randomness low (~5-15%) and strategic factor high to better view the pattern.

Winners

Vote Results

Preference

Election 0

Reset

Play

-1

+1

+10

0 %

0 %

0 %

0 %

0 %

0 %

Area

%

Election

%

Party Ideologies

Preferences

72.4%

18.7%

3.9%

3.6%

1.5%

Strategic Factor 100%

Randomness 15%

If you weren’t able to see the pattern above, in that scenario, parties generally bunch together over time, because being close to each other means attracting each other's strategic voters.

Now you have the ability to add or remove parties to the left of the visual. You can also edit party preference percentages (after making changes and pressing apply, they won’t be visible until next election). This is the end of the guide so it’s your turn to explore the system, try out different settings and see if you can discover any new behaviours of this system, but remember that this is a simplified representation of FPTP.

If you need a starting point, let’s say there’s a population that’s split 50%/50% between left and right ideologies on the slider. There’s three parties total, one with all the left voters, and two splitting the right voters. Edit the visual to reflect this and see how the winners differ from preference.

Winners

Vote Results

Preference

Election 0

Reset

Play

-1

+1

+10

0 %

0 %

0 %

0 %

Area

%

Election

%

Party Ideologies

Preferences

71.1%

15.9%

12.9%

Strategic Factor 50%

Randomness 15%

If you don’t know much about voting systems but want to learn more, a good place to start is by learning about instant runoff and approval voting.

If you want to see more posts like this, consider subscribing to the 2Q2I email list and check out the other posts on this website.