Voting Probability Simulator and Impacts of Voter Turnout

The saying that “whichever side that manages to bring more supporters to the polling stations wins” is undeniably true. High turnout is seen as a key to an electoral success. In that sense, I want to share some of my simulation results suggesting how impactful general voter turnout is.

I recently started making an election day simulator which predicts possible results with a given approval distribution. Here’s what it assumes & how it works.

Core Assumptions:

  • Voting Probability = Innate Probability (0 ~ 0.4, random) + Strength of Feeling (0 ~ 0.4, influenced by approval) + Party Motivation (0 ~ 0.2, influenced by the nb of party activists)
  • Political Apathy affects Innate Probability
  • The number of party members is negligibly small and thus has no effect on voting sim (no voting probability override)
  • The same for the number of party activists (ignore Party Motivation)
  • All unknown random variables are considered to be normal random ones

How it works:

  1. Input approval of individual voters (in-game value of 2,000 is recommended)
  2. Input a base turnout variable (you can heuristically expect voter turnout to be base+0.3)
  3. Input Lower/Higher Thresholds for party supports
  4. Decide who is going to vote for which party based on LT/HT
  5. Generate Voting Probability of individual voters based on base turnout input, approval input, and random variables
  6. Run voting probability checks for all voters & collect the result
  7. Now iterate* 1,000 times and summarize the results

*every iteration is preceded by voting probability generation so results are more volatile than actual iteration with ongoing savegame

I did some test runs with my recent ‘do nothing’ challenge data and it seems to be working decently.

(image) A Reference Sample from Gameplay: Election Result & Approval Dist.

And this is what I managed to reproduce in my simulator.


(image) Generated Approval Distribution

Some attentive people might be already thinking that it was a very close election that I might have lost if unlucky. But even that is a bit of underestimation.


This is the total number of supporters of each party. If voting was mandatory, I would have faced an opposition majority. Distributions of results from 1000 iterations are also available but these are not as impressive as the bar chart above.

Gov Majority Op1 Majority Gov Coalition Op1 Coalition
2 156 134 708

Despite the fact that their supporters held a majority in the country, their chance of taking electoral majority was kind of slim. It is also rather surprising that the 38% had a chance of winning of 13~14% against the 56%. Though the actual iteration results (by loading the same autosave like 10 times) seemed to suggest that my odds were bit higher than just 14%, 10 iterations are kinda small and there might have been other reasons such as

  • My assumption on Strength of Feeling to Voting Probability Relation was weaker than actually is
  • I got very favorable RNG rolls on innate voting probability generation at actual gameplay
  • Turnout of 58% was actually lower than average and thus shouldn’t have set target turnout of the sim to it

The last one is quite an interesting point and I’ll explain why the global turnout affects election results.

What you see below is the result summaries from simulation with -5%p lower turnout rate.

(image) Example Result w/ lower turnout


Now the possible results are really close just as shown right above. I can expect near coin-toss likelihood of winning as shown in the table below. Even though voting probability drop hit all three parties, it was especially devastating for the oppositions. This is because damages of -5%p can’t be the same when one had 50% while the others having 35%. The last question would be why they are different in the first place.

Gov Majority Op1 Majority Gov Coalition Op1 Coalition
22 57 402 519

This clearly explains why the government supporters had much higher turnout. Since Strength of Feeling has a considerable say (0.4 by my assumption) on voting probability, radical voters are much more valuable compared to moderate ones. In this case, hard-line supporters with >80% approval were twice more valuable than moderate voters with 40~60% approval, most of whom were opposition supporters (since HT was 58%).

However, this might not hold for usual un-modified gameplay. With 54-58 thresholds, I can expect that the moderate opposition won’t have any members remaining at the point of election. However, with 40-60, they will have a massive membership and will be able to boost their turnout significantly. It can be amplified even more by existence of party activists.

This was mentioned in the last dev blog (link) and it seems that the next patch will make it easier for the other two parties to have more party members by making their membership thresholds less radical. So, strategies involving more radical platform might become more viable in the upcoming update. I’d personally say that the moderate opposition needs to have less members than now though.

This may turn out to be the case, once I have run a lot of tests with the changes you mention. It could be that the propensity to join a party simply needs to be reduced. Its worth noting that the values for this are openly shown in the simconfig.txt file:


The actual code that is behind the join-a-party decision is pretty complex. Each party has an approval mid point (which is what was changed in the recent code change), and every turn, each voters proximity to that mid point is calculated, and their sympathy for that party will rise or fall depending on the numbers. When a threshold is reached, the join/leave the party.

This happens at different rates depending on the voter data. There are measurements for loyalty and activism, with older voters tending to be loyal, younger tending to be activists.
More active (young) voters will be tempted to join a party when they are quite a wide distance from the party approval mid point.
More loyal (old) voters have a slower party sympathy change rate each turn

  • To put it in simpler terms:
  • Older people stick with one party for longer
  • Younger people are just generally more likely to join a party

Because party members always vote, its worth knowing some of that complex stuff to understand why the turnout is the way it is. Younger people will turnout more if you can nudge them just enough to join a party, as they are quite likely to join anyway.

In real world political terms, this leads to an interesting strategy, that I’m sure some politicians might work out:

You can pivot hard to win over the young vote. They are likely to join your cause quite quickly, and will do so before the older voters you now ignore realize whats happened and quit.

Obviously that only works once… eventually you lose the older voters and they will be slow to regain.

1 Like

Interestingly, this is quite close to what I do. I generally choose a speech line that appeases the young at a cost of the retired if there isn’t any other decent choice to fill 4 slots. The retired are already kinda happy with state/private pensions and they don’t quit that fast.

1 Like