Suggestion: change how voters vote (decoupling approval from voting chance)

Voting chance should be directly proportional to approval rate.
If all voters have 51% approval, then your popularity would be displayed as 51%, not 100% as it is currently.

Voting chance then would be adjusted by complacency and cynicism.
This could be fraction of actual complacency/cynicism value.
Voter with 50% approval and 50% complacency would have 25% chance of voting for you.
Or it could be some percentage scaling, so chance of voting for you is up to 25% lower/higher than actual approval, chance being capped between 0% and 100%

Complacency could be positive if voter group has very low happiness.

Surely any measure of popularity is more helpful if it shows you how likely you are to win an election though? In your first example, the election result would be 100%, so is that not worth knowing?
I think the scatter graphs for the voter details screen, compass and the electioneering screen are the best possible way to see how strong or ‘soft’ your voting support is.

There are a LOT of factors that go into whether or not a voter actually turns out on election day, including how happy they are, any party memberships, the number of activists, the amount of party funding etc. Plus some voters have a higher innate vote chance than others, partly related to age (older people vote, younger people dont, etc).

Well popularity being simple average of all voter approvals would be more realistic.
Now it simply shows how many voters have >50% approval (and >33% with three parties?).

Also it wouldn’t swing so hard and would be closer to 50%.

That is simplest version would simply change how popularity is displayed:
Instead of percentage of voters above threshold it would be average approval rate.

This is very visible example, that actual popularity is much lower.