Open
Polymarket
Next Mayor of Johannesburg?
Top outcomes
Other
50%
Person C
50%
Person D
50%
Person E
50%
Municipal elections are currently scheduled to be held in South Africa on November 4, 2026.
This market will resolve to the first individual who officially assumes the role of Mayor of Johannesburg following the 2026 South African municipal elections.
A qualifying individual must be elected mayor by the Johannesburg City Council. Temporary, interim, or placeholder mayors appointed before the election will not be considered.
If the result of this election isn't known by June 30, 2027, 11:59 PM ET, the market will resolve to "Other".
The primary resolution source for this market will be official information from the government of South Africa, including the Electoral Commission of South Africa (https://elections.org.za); however, a consensus of credible reporting may also be used.
Read more
Show less
$73K Vol.
Closes Nov 5, 2026
Live Polymarket Chart
Top outcomes by win probability — price history from Polymarket, updates when you refresh.
Open on Polymarket ↗
The chart is view-only. Use Open on Polymarket above to visit the market — no trading on this platform.
$73.3k Vol.
All outcomes
Pick Yes or No on any outcome, then explain your pick below. Reputation-only — no money or trading.
$73K Vol.
Other
50% market probability
50%
$refs['reasoning-0']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-0']?.focus())"
>
No 50%
+50 / −50
Person C
50% market probability
50%
$refs['reasoning-1']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-1']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person C
Explain your No on Person C
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person D
50% market probability
50%
$refs['reasoning-2']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-2']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person D
Explain your No on Person D
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person E
50% market probability
50%
$refs['reasoning-3']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-3']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person E
Explain your No on Person E
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person F
50% market probability
50%
$refs['reasoning-4']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-4']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person F
Explain your No on Person F
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person G
50% market probability
50%
$refs['reasoning-5']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-5']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person G
Explain your No on Person G
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person H
50% market probability
50%
$refs['reasoning-6']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-6']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person H
Explain your No on Person H
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person I
50% market probability
50%
$refs['reasoning-7']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-7']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person I
Explain your No on Person I
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person J
50% market probability
50%
$refs['reasoning-8']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-8']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person J
Explain your No on Person J
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person K
50% market probability
50%
$refs['reasoning-9']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-9']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person K
Explain your No on Person K
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person L
50% market probability
50%
$refs['reasoning-10']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-10']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person L
Explain your No on Person L
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person M
50% market probability
50%
$refs['reasoning-11']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-11']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person M
Explain your No on Person M
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person N
50% market probability
50%
$refs['reasoning-12']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-12']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person N
Explain your No on Person N
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person O
50% market probability
50%
$refs['reasoning-13']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-13']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person O
Explain your No on Person O
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person P
50% market probability
50%
$refs['reasoning-14']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-14']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person P
Explain your No on Person P
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person Q
50% market probability
50%
$refs['reasoning-15']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-15']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person Q
Explain your No on Person Q
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person R
50% market probability
50%
$refs['reasoning-16']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-16']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person R
Explain your No on Person R
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person S
50% market probability
50%
$refs['reasoning-17']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-17']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person S
Explain your No on Person S
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person T
50% market probability
50%
$refs['reasoning-18']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-18']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person T
Explain your No on Person T
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person U
50% market probability
50%
$refs['reasoning-19']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-19']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person U
Explain your No on Person U
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person V
50% market probability
50%
$refs['reasoning-20']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-20']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person V
Explain your No on Person V
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person W
50% market probability
50%
$refs['reasoning-21']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-21']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person W
Explain your No on Person W
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person X
50% market probability
50%
$refs['reasoning-22']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-22']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person X
Explain your No on Person X
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person Y
50% market probability
50%
$refs['reasoning-23']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-23']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person Y
Explain your No on Person Y
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person Z
50% market probability
50%
$refs['reasoning-24']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-24']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person Z
Explain your No on Person Z
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person AA
50% market probability
50%
$refs['reasoning-25']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-25']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person AA
Explain your No on Person AA
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person AB
50% market probability
50%
$refs['reasoning-26']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-26']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person AB
Explain your No on Person AB
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person AC
50% market probability
50%
$refs['reasoning-27']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-27']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person AC
Explain your No on Person AC
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person AD
50% market probability
50%
$refs['reasoning-28']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-28']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person AD
Explain your No on Person AD
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person AE
50% market probability
50%
$refs['reasoning-29']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-29']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person AE
Explain your No on Person AE
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person AF
50% market probability
50%
$refs['reasoning-30']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-30']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person AF
Explain your No on Person AF
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person AG
50% market probability
50%
$refs['reasoning-31']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-31']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person AG
Explain your No on Person AG
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person AH
50% market probability
50%
$refs['reasoning-32']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-32']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person AH
Explain your No on Person AH
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person AI
50% market probability
50%
$refs['reasoning-33']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-33']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person AI
Explain your No on Person AI
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person AJ
50% market probability
50%
$refs['reasoning-34']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-34']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person AJ
Explain your No on Person AJ
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Person AK
50% market probability
50%
$refs['reasoning-35']?.focus())"
>
Yes 50%
+50 / −50
$refs['reasoning-35']?.focus())"
>
No 50%
+50 / −50
Explain your Yes on Person AK
Explain your No on Person AK
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Helen Zille
44% market probability
44%
$refs['reasoning-36']?.focus())"
>
Yes 44%
+56 / −44
$refs['reasoning-36']?.focus())"
>
No 56%
+44 / −56
Explain your Yes on Helen Zille
Explain your No on Helen Zille
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Frank Chikane
39% market probability
39%
$refs['reasoning-37']?.focus())"
>
Yes 39%
+61 / −39
$refs['reasoning-37']?.focus())"
>
No 61%
+39 / −61
Explain your Yes on Frank Chikane
Explain your No on Frank Chikane
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Herman Mashaba
6% market probability
6%
$refs['reasoning-38']?.focus())"
>
Yes 6%
+94 / −6
$refs['reasoning-38']?.focus())"
>
No 94%
+6 / −94
Explain your Yes on Herman Mashaba
Explain your No on Herman Mashaba
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Loyiso Masuku
1% market probability
1%
$refs['reasoning-39']?.focus())"
>
Yes 1%
+99 / −1
$refs['reasoning-39']?.focus())"
>
No 99%
+1 / −99
Explain your Yes on Loyiso Masuku
Explain your No on Loyiso Masuku
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
David Makhura
1% market probability
1%
$refs['reasoning-40']?.focus())"
>
Yes 1%
+99 / −1
$refs['reasoning-40']?.focus())"
>
No 99%
+1 / −99
Explain your Yes on David Makhura
Explain your No on David Makhura
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Kenny Kunene
0% market probability
0%
$refs['reasoning-41']?.focus())"
>
Yes 0%
+100 / −0
$refs['reasoning-41']?.focus())"
>
No 100%
+0 / −100
Explain your Yes on Kenny Kunene
Explain your No on Kenny Kunene
(optional)
0 / 2,000
Share the argument behind your pick — visible in the public forecast feed.
Post forecast
Cancel
Public forecast history
All forecasts on this market — scored on Reputation when resolved. Earn Popularity when others like your forecast or comments.
No forecasts yet. Be the first to place one.