2026-10-17 — Day 16: round-2 results and the final score
In short: All 22 runoffs are counted; results are from volby.gov.cz (as of 17:38). The main scoring, the forecasts locked on 9 Oct before round 1, was won by AI + betting (Brier 0.352). Pure AI came second (0.369) and beat the betting odds on their own (0.381). In round 2, by contrast, betting was the most accurate (0.169), just ahead of AI + betting (0.170). Pure AI was only sixth of eight in round 2 (0.227). In six of 22 districts the round-1 runner-up won. None of the 13 ANO finalists won. The full score is on the Score page.
Round-2 results
Reversed against round 1 (6): Kladno Paták 51.7 : 48.3 Sucharda Šípová, Česká Lípa Půta 55.8 : 44.2 Volfová, Hradec Králové Ceralová Petrofová 60.2 : 39.8 Dvořák, Žďár nad Sázavou Klement 54.1 : 45.9 Šmarda, Frýdek-Místek Korč 52.1 : 47.9 Pešatová, Karviná Kazík 52.9 : 47.1 Brzyszkowská.
Round-1 leader won (16): Cheb Plevný, Louny Trešl, Plzeň-město Řehka, Pelhřimov Med, Příbram Štěpánek, Praha 5 Láska (53.2 : 46.8), Praha 9 Smoljak, Praha 1 Padevět, Kolín Kašpar, Znojmo Třetina, Brno-město Papoušek, Přerov Navařík (56.9 : 43.1), Litovel Ošťádal, Ostrava-město Šimetka, Zlín Goláň, Uherské Hradiště Bazala.
Already elected in round 1: Fiala (Strakonice), Linhart (Děčín), Sobotka (Trutnov), Grulich (Rychnov nad Kněžnou) and Grolich (Vyškov).
Round-2 turnout was 13–27 %, lowest in Karviná.
Main scoring: forecasts of 9 Oct (27 districts)
Brier, lower is better: AI + betting 0.352 · AI 2 Oct 0.368 · AI 0.369 · AI + model 0.375 · Betting 0.381 · Statistical model 0.418. The favourite won in 21 of 27 districts for all our series, 20 for betting.
Against the pre-registration: on 5 Oct we expected AI + betting ≈ Betting > AI + model > Statistical model ≈ AI. The combination of AI and betting did win. Pure AI, however, did better than we expected: it beat betting alone and AI + model. The statistical model came last.
9 pre-registered disputed districts: AI 2 Oct 0.594 · AI 0.599 · AI + betting 0.604 · AI + model 0.638 · Betting 0.655 · Statistical model 0.665.
The first estimate was enough: AI of 2 Oct (0.368) is practically as good as AI after a week of updates on 9 Oct (0.369).
Round 2: forecasts of 16 Oct
On the 20 duels where every series has numbers (in Praha 1 and Kolín one side was locked at the bookmakers): Betting 0.169 · AI + betting 0.170 · STEM 0.188 · AI + model 0.188 · Statistical model 0.188 · AI 0.227 · Seznam Zprávy 0.236 · transfer model 0.268.
Towards us: in Karviná and Frýdek-Místek the market was wrong too, and more so than we were. We gave Kazík 35 %, the market 18 %. We gave Korč 46 %, the market 43 %.
Away from us: in Kladno and Hradec the market had the right favourite (Paták, Ceralová Petrofová) and AI + model did not. For clear favourites the market gave higher numbers than we did and was right, for example Česká Lípa (Půta: we 74 %, market 92 %), Žďár (Klement: 66 vs 77 %) and Zlín (Goláň: 74 vs 87 %).
Overall: in round 2 betting was more accurate than all our series. AI + betting is second, 0.002 behind.
External comparison
STEM (CNN Prima): 0.188 on the 20 shared duels, favourite won in 18 of 20. Wrong in Praha 5 and Karviná.
Seznam Zprávy: 0.236, favourite won in 16 of 20.
Deník N (13 Oct, verbal verdicts only, so no Brier): picked the winner in 19 of the 21 districts where it made a call. Wrong in Karviná ("clear favourite" Brzyszkowská) and Hradec (even, leaning Dvořák). No call in Frýdek-Místek. It got Kladno, Česká Lípa and Žďár right, where the round-1 runner-up won.
Wikipedia (pre-registered 8 Oct, "the most-read candidate wins"): 10 of 27.
Transfer model (internal test)
The pre-registered precinct-level vote-transfer model (4ff7354) did worst of all (Brier 0.268). It estimated the round-1 leader's share with a mean error of 6.8 percentage points, against 5.9 in validation on past elections. It estimated round-2 turnout well: mean error −1.1 points, mean absolute error 2.7 points. We will not add it to the model.
Bets of 9 Oct on winning the seat: AI + betting +1,011 CZK (6 of 10 bets won), AI + model +272 CZK, AI +1 CZK, Statistical model −25 CZK. The "always the market favourite" benchmark −36 CZK.
Round-2 bets of 16 Oct: AI −960 CZK (1 of 14 won), AI + model −560 CZK (1 of 10), Statistical model −205 CZK (2 of 8). AI + betting placed none. "Always the market favourite" −82 CZK.
Settlement: data/senat-paper-bets/*-settled.txt in the vault.
Method check
We converted the odds into probabilities with other overround-removal methods too (proportional, Shin). Betting's Brier changes by at most 0.011 and the ranking of the series stays the same. The pre-registered method (power) does not disadvantage the market.
Errors and fixes
Results source outage. After 14:00 volbyhned.cz, which we used for round-1 results, was unavailable. Cause: overload during the count. Fix: the script now downloads from the official volby.gov.cz, retries on errors and can fall back to the other source. Both sources have the same data format. It has no effect on the results.
New sources of the day
volby.gov.cz: official round-2 results, read 14:17–17:38. Stored in data/senat-results/r2-2026-10-17-*.json.
Tipsport and Fortuna odds on 17 Oct at 8:35, during voting: for the record only, not scored (raw-*-2026-10-17m-r2.txt). Compared with Friday only Karviná moved noticeably (Brzyszkowská 81.7 → 73.8 %).
Next
We will cover the error analysis and the lessons for future experiments (calibration, links between districts, odds and betting volume) separately and in an article.
2026-10-16 — Day 15: scored round-2 odds, paper bets and a STEM correction
In short: We read the odds for the last time before the 14:00 close. This is the reading that gets scored. The market has barely moved since Thursday, most in Žďár (Klement 74 → 77 %). In Hradec it now leans slightly to Ceralová Petrofová (50.8 %), so the market now differs from us on the favourite in two districts, Kladno and Hradec. The news contained nothing that changes a forecast. The round-2 paper-bet list is locked. We corrected the STEM external benchmark to its final chart version.
News (no odds)
Friday's search (Google News for the last day, general queries plus all eight contested duels) found mostly practical voting guides, radio duels and regional "final round" pieces (Kladno, Přerov, Karviná, Litovel, Hradec). No new endorsements from eliminated candidates. Per iDNES, Ošťádal (Litovel) is not campaigning, but he is a clear favourite after round 1. AI and AI + model unchanged.
Gap: we did not open two articles because we could not resolve their Google News links: Olomoucký Report "Who stands behind whom? The Senate runoff splits the losers and familiar faces" and Radiožurnál "A billboard row, dancing with Babiš and the opposition's cannibalism". By their headlines they are round-ups; the Plzeň billboard is already counted.
Order of steps and the scored reading
Odds: Tipsport at 13:50:36, Fortuna at 13:50:53–59, commit 5642951 at 13:51:08. A 6:25 morning reading was for the record only and is not scored.
Deviation from the plan: the morning news search and the lock were supposed to come before reading the odds. This time they came after it (13:52–13:56). Cause: we underestimated Friday's schedule and only made the scored reading at the last minute. Why it does not matter: the search found nothing, and the 16 Oct snapshots are an exact copy of the 15 Oct lock (ead144b). Lock f13557a is from 13:56:58, so the odds could not have influenced it. Fix: on a closing day we start with the morning news search and plan the scored odds reading for 13:00 at the latest.
Betting: what changed since Thursday
Towards us: Frýdek-Místek (Pešatová 58.5 → 57.0 %, we 54 %), Karviná (Brzyszkowská 82.5 → 81.7 %, we 65 %).
Away from us: Žďár (Klement 73.7 → 77.1 %, we 66 %), Kladno (Paták 56.3 → 57.7 %, we Šípová 52 %), Hradec (from 50 : 50 to Ceralová Petrofová 50.8 %, we Dvořák 51 %), Zlín (Goláň 85.7 → 86.9 %), Česká Lípa (Půta 90.6 → 91.6 %), and by under a point Přerov and Litovel.
Overall: two districts moved towards us and seven away, all except Žďár by less than 1.5 points. The market differs from AI + model on the favourite in Kladno (Paták) and now in Hradec (Ceralová Petrofová, by a hair). AI + betting: Kladno Paták 54.7 %, Hradec Ceralová Petrofová 50.2 %, Žďár Klement 74 %.
Round-2 paper bets
Following the pre-registered rule, the list was built from the scored odds and the 16 Oct snapshots (list, commit 9aef889 at 13:58:00, before polls opened). AI would bet 14 times, the Statistical model 8, AI + model 10, AI + betting none. The "always the market favourite" benchmark has 20 bets. Almost all of our series' bets are on underdogs, because we are less sure about favourites than the market. So round 2 mainly tests whether that lower confidence is justified. A first version of the list at 13:51 (3fc8e6a) still used Thursday's AI + betting and had one extra bet (Žďár, Šmarda). The 13:58 version is the valid one; otherwise the two are identical.
Internal test: transfer model
On Thursday at 22:27 we pre-registered an internal precinct-level vote-transfer model in commit 4ff7354. It changes no series; we will score it on Saturday alongside the others.
Errors and fixes
STEM from an old chart version. We downloaded STEM's chart on 11 Oct at 8:33, in its 7:48 version. That version was made while votes were still being counted (about 80 %) and still listed all five candidates in Praha 5. At 12:51 STEM recalculated the chart after the round-1 count finished. We noticed it while checking the chart. Changes: Praha 5 Sáblík 52 → 70 % (Láska 40 → 30 %, eliminated candidates dropped), Hradec Králové Ceralová Petrofová 86 → 71 % (Dvořák 14 → 29 %). One-point moves: Kladno (Paták 88 → 87), Česká Lípa (Půta 99 → 98), Žďár (Klement 56 → 55), Frýdek-Místek (Korč 78 → 77), Karviná (Brzyszkowská 91 → 90) and Zlín (Goláň 95 → 96, Mitáček 4). STEM figures in the 11, 12 and 15 Oct entries are from the old version; this correction applies. Cause: we saved the external benchmark right after publication and did not check whether its author updated it after the count. Fix: before scoring, we re-download every external benchmark and store the final version published before the vote. The old file stays on record (data/stem/2026-10-11.json); scoring uses the new one (data/stem/2026-10-11-1251.json). Both versions came after our round-2 lock.
iROZHLAS: "Who will control the Senate? Mayors are runoff champions" (16 Oct), Kladenský deník: "Šípová or Paták?" (16 Oct), Přerovský deník: "Vrána or Navařík?" (16 Oct), Karvinský a havířovský deník: "Kazík vs. Brzyszkowská" (16 Oct), iDNES: "only Ošťádal is not campaigning" (16 Oct). Round-ups with no new endorsement; no change.
Not opened: Olomoucký Report "Who stands behind whom?" (15 Oct), Radiožurnál "A billboard row, dancing with Babiš…" (16 Oct).
Odds: raw-*-2026-10-16m-r2.txt (morning, not scored) and raw-*-2026-10-16-r2.txt (13:50, scored).
Next
Round 2 runs 16–17 Oct. On Saturday evening we will score all five series, the external benchmarks (STEM, Seznam Zprávy, Deník N), the transfer model and the paper bets.
2026-10-15 — Day 14: no change, Hradec 50 : 50 in the market, Seznam Zprávy as a second external benchmark
In short: On Thursday we found no fact that would change a forecast, so AI and AI + model stay at Wednesday's state. In Hradec the market reached exactly 50 : 50 (Wednesday morning Dvořák 54 %, we 51 %). Next to STEM we added the Seznam Zprávy model to the table; it gives numbers, so after the election we will score it with Brier too. The blend is now called "AI + betting" and there is a new Trends page.
News (no odds)
Plzeň (no change): Aschenbrenner told iDNES the billboard with Kantorová will be pasted over. ODS paid for the space and let ANO use it. He says he does not support ANO. On Tuesday we counted the billboard at about −2 points for Řehka; now it goes away and no call to vote for Kantorová came. Actor Ondřej Vetchý also came to support Řehka. Net effect at most +1 to +2 for Řehka, below the update threshold (AI 82 %, AI + model 94 %).
Brno (no change): per ČTK, Holcnerová (Kruh, 4.1 %) backs Zitterbart. Štěrba (ANO, 20.1 %) has leaned to Zitterbart since Saturday; already counted. Turánek (SPD) and Samková (Stačilo!) back nobody. Governor Grolich backs Papoušek. Papoušek led round 1 42 : 24; a small endorsement does not change that.
Žďár: nothing new on a recount or on Černý endorsing. In Žďárský deník Klement mentioned Černý's pre-election video aimed at his private life. So a Černý → Klement endorsement still has not happened and does not look likely.
Pelhřimov: still no primary source for Chalupský backing Med. Kladno: the report "Kladeňáci will file a court complaint" concerns the city's municipal election, not the Senate.
The 15 Oct AI and AI + model snapshots were locked in commit ead144b (15 Oct 14:09:49); only then did we read odds (Tipsport and Fortuna 14:10–14:12).
External benchmark #2: Seznam Zprávy
Seznam Zprávy (Konstantin Sulimenko, 12 Oct 18:00) published a round-2 model with probabilities for all 22 duels. On the site it now sits in the "External" group next to STEM, and after the election we will score it like our own series (Brier, log score, hits). Our agents did not see it.
It differs from AI + model on the favourite in two districts: Kladno (Paták 57 %, like the market) and Žďár (Šmarda 53 %, the only source to pick him).
Biggest gap: Hradec. Seznam gives Dvořák 77 %, we 51 %, the market 50 %, STEM 14 %.
Odds: what changed since Wednesday morning
We read the odds once more on Wednesday evening (not scored, for the record only). Below is Wednesday morning vs this afternoon, with AI + model as of today's lock.
Towards us: Hradec (Dvořák 54 → 50 %, we 51 %; both bookmakers price both at 1.84–1.85), Frýdek-Místek (Pešatová 59.5 → 58.5 %, we 54 %), Praha 5 (Láska 78.3 → 77.6 %, we 62 %), Kladno (Paták 56.7 → 56.3 %, we Šípová 52 %).
Away from us: Zlín (Goláň 82.4 → 85.7 %, we 74 %), Žďár (Klement 71.3 → 73.7 %, we 66 %), Karviná (Brzyszkowská 80.3 → 82.5 %, we 65 %), and slightly Pelhřimov, Litovel and Cheb (under 1 point).
Unchanged: Přerov (Navařík 63 %) and the other clear favourites.
Overall: the biggest move (Hradec, −4) is towards us, but more districts moved away. The market is still more confident than us on favourites, most in Karviná, Zlín and Žďár. The market still differs from AI + model on the favourite only in Kladno; Hradec is now a tie. AI + betting: Kladno Paták 54 %, Hradec Dvořák 50.3 %, Žďár Klement 71 %.
Errors and fixes
Correction to 14 Oct: on Wednesday we wrote that Keblúšek's (Naše Česko, 10.6 %) endorsement of Plevný in Cheb was unverified. He did endorse him (ČTK 14 Oct 12:47, published after our morning search). Ondřej Nezdara pointed this out, thank you. Cheb unchanged: Plevný is a clear favourite (round 1 40.1 : 27.1).
Table and ties: on an exact tie (Hradec market 50 : 50) the table showed "Petrofová 50 %" only because of data order. Fixed: a tie now shows "50 : 50".
Quarantine: a headline about bookmakers before round 2 appeared under an iDNES article. We did not open it.
Other
Michal Sirový recommended our site and picked the most interesting duels: Praha 5, Kladno, Hradec and Zlín, Žďár, Přerov and Karviná. That matches the districts where we are least sure. Only Karviná we have as an ANO favourite (Brzyszkowská 65–80 %).
Paper betting was pre-registered on Wednesday (rules, commit e6e7a2b). The round-2 bet list will be generated on Friday from the scored odds reading and published before polls open.
New on the site: the blend is now called "AI + betting" (label only, data unchanged; in log-odds 31 % AI + model, 69 % betting), and the Trends page shows pure AI vs betting per district since 2 Oct.
Odds: raw-*-2026-10-14e-r2.txt (Wednesday evening, not scored) and raw-*-2026-10-15-r2.txt.
Next
Friday morning: last news sweep, then lock and the scored odds reading before 14:00 (planned 12:00–13:30; Fortuna and Tipsport take bets until 14:00). Right after that, the round-2 paper-bet list. Round 2 on 16–17 Oct; scoring of all series and external benchmarks on Saturday evening.
2026-10-14 — Day 13: Hradec 54 → 51 after new endorsements, Deník N as a benchmark
In short: On Tuesday evening we re-ran Hradec Králové. More eliminated candidates (Holásek, Nebeská, Picek) endorsed Ceralová Petrofová. AI and AI + model now give Dvořák 51 % instead of 54 %, so he is still a narrow favourite. We also re-ran Plzeň after the row over Aschenbrenner's billboard, but the change came out below 2 points, so it stays (Řehka 82 / 94 %). Other districts unchanged. Kladno unchanged: market Paták 57 %, we Šípová 52–53 %.
News (no odds)
Hradec Králové (update): four eliminated candidates endorsed Ceralová Petrofová: Hůlková (ANO, 18.4 %, already counted), Nebeská (independent, 15.0 %), Holásek (outgoing senator, 12.2 %) and Picek (SPD, 5.3 %, as the "lesser evil"). Mayor Springerová backs Dvořák (she did before round 1 too). New for us are Holásek (we expected him to lean to Dvořák), Nebeská and Picek. Endorsements do not move all votes, though: eliminated candidates' voters turn out little in round 2. The agent therefore moved Dvořák by only 3 points (54 → 51 in both series, band 34–67 %). The model alone gives 58.5 %. The −7.5 point deviation reflects what the model cannot see: where eliminated voters lean (it codes both finalists as the "democratic bloc"). Red-team in both steps: minor (step A would accept 50:50).
Plzeň (no change): outgoing senator Aschenbrenner (ODS, 20.1 %) appeared on a billboard for Kantorová (ANO). Ex-PM Fiala and ODS chair Kupka called it "unacceptable". Aschenbrenner told Deník N he urged no one to vote for anyone and "doesn't care how voters read it". We knew since 11 Oct that he would not back Řehka. Only the billboard is new, worth about −2 points, roughly offset by the final round-1 count (Řehka's lead 5.6 instead of 4.7 points). The result is below the 2-point threshold, so no update (AI 82 %, AI + model 94 %). We will re-run if Aschenbrenner explicitly urges a vote for Kantorová.
Cheb: the VOK movement (Černá, 12.3 %) backs Plevný. Kolín: Schulz (17.3 %) backs Kašpar. Praha 1: governor Grolich roots for Čižinský. No effect on clear favourites.
Žďár and Pelhřimov: we found no primary source for Černý backing Klement or Chalupský backing Med. The latest verifiable report on Černý (iDNES 13 Oct) says he backed nobody. No change.
Hradec v3 was committed on Tuesday at 17:38. The 14 Oct AI and AI + model snapshots were locked in commit 783af35 (14 Oct 07:58:18) before reading odds (Tipsport 07:58:33, Fortuna 07:58:49).
External benchmark: Deník N
Deník N (Jan Wirnitzer, 13 Oct) published a verbal round-2 prediction ("ANO faces a crushing defeat…"). No numbers, just "clear favourite / favourite / slight favourite / even". We stored it as an external benchmark (like STEM). Our agents did not see it.
It differs from AI + model on the favourite only in Kladno: Paták as a "slight favourite" (like the market and STEM). Pure AI also differs in Přerov (Deník N: even, leaning Navařík).
It calls Praha 5, Hradec, Přerov and Frýdek-Místek even. That matches our 51–62 % band.
In the evaluation we can only compare favourite hits, not Brier scores.
Odds: what changed since Tuesday noon
We read the odds once more on Tuesday at 17:17 (not scored, for the record only). Below is Tuesday noon vs Wednesday morning, with AI + model as of today's lock.
Towards us: Hradec (Dvořák 60 → 54 %, we 51 %; the market moved the same way as we did), Pelhřimov (Med 94 → 91 %, we 82 %), Přerov (Navařík 65 → 63 %, we 62 %), Karviná (Brzyszkowská 81 → 80 %, we 65 %).
Away from us: Žďár (Klement 63 → 71 %, we 66 %; the market is now more confident than us), Zlín (Goláň 80 → 82 %, we 74 %), Frýdek-Místek (Pešatová 58.5 → 59.5 %, we 54 %), Praha 5 (Láska 77.6 → 78.3 %, we 62 %).
Unchanged: Kladno (Paták 57 %) and the clear favourites.
Overall: four districts towards us, four away. The biggest moves are Hradec (−6, towards us) and Žďár (+8, away). The market still agrees with us on the favourite in 19 of 20 districts. Blend: Kladno Paták 54 %, Hradec Dvořák 53 %, Žďár Klement 70 %.
Errors and fixes
Missed endorsement: Nebeská endorsed Ceralová Petrofová over the weekend, while on 12 Oct we wrote "no endorsement from Nebeská or Holásek found". We were alerted only by the Deník N article. We verified the facts in another source (Salonky HK), and the agents never saw Deník N's verdict. Of six endorsement claims in the article we verified three (Hradec, Kolín, Cheb – VOK). Three we found nowhere else (Žďár, Pelhřimov, Keblúšek in Cheb) and did not use. Holásek and Picek spoke only on Tuesday, so we could not have found them earlier. Fix: in contested districts, search for endorsements by the name of each eliminated candidate, not just a generic "round-2 endorsement" query.
Order of odds → update: we read the evening odds (17:17) on Tuesday before launching the Hradec update. The agents doing the update did not see them. The trigger was the article, not a market move. But the update went the same way as the market, so we say so openly.
Quarantine: while searching, agents saw headlines "General Řehka confirmed the bookmakers' tips" and "The bet on the general paid off" (Plzeň, apparently about round 1). They did not open them and saw no numbers.
Deník N: "ANO faces a crushing defeat… Round-2 Senate prediction" (13 Oct), external benchmark, not given to agents.
Median: Chamber voting model, September 2026 (published 14 Oct): ANO 29.5 % (−4.5), STAN 17.0 % (+5.0), ODS 12.5 % (+1.5). National context: ANO weakening, STAN rising (consistent with the Prague municipal result). Fieldwork was in September, before round 1, whose results we already have. So no update.
Odds: raw-*-2026-10-13e-r2.txt (17:17, not scored) and raw-*-2026-10-14-r2.txt.
Next
Thursday: one more round of news and odds. Friday: the scored odds reading before 14:00 (planned 12:00–13:30). We will re-run Plzeň if Aschenbrenner explicitly urges a vote for Kantorová. Round 2 on 16–17 Oct.
2026-10-13 — Day 12: no update, odds move both towards and away from us
In short: The news contained nothing that could decide a race, so the AI and AI + model forecasts stay unchanged (lock e22cfd9, 12:26). Since Monday morning the odds moved in nine districts, but no favourite flipped. Kladno is unchanged: market Paták 57 %, we Šípová 52–53 %.
News (no odds)
Nationally: SPD said its eliminated candidates will back ANO's candidates in round 2. ODS will back opposition candidates where it has no finalist. Both match how the blocs (government vs opposition) behave and what the forecasts already assume. No change.
Uherské Hradiště: three eliminated candidates (about 14 % together) back Vašica (ANO), Zelienková (9.4 %) backs Bazala. Bazala led round 1 by 47.8 to 28.3 %, so even a full transfer does not change the order. No change.
Zlín: eliminated candidates back nobody. Žďár: Černý will decide on a recount "next week". Česká Lípa: the leader of the winning local party Živá Lípa (not a Senate candidate) is rooting for Půta and thinks Volfová's parallel Senate run cost ANO the town hall. A weak signal only.
Nothing new in the other contested districts (Kladno, Praha 5, Hradec, Frýdek-Místek, Přerov, Karviná, Pelhřimov).
The 13 Oct AI and AI + model snapshots are copies of 12 Oct, locked in commit e22cfd9 (12:26:57) before reading odds (Tipsport 12:27:09, Fortuna 12:27:18).
Odds: what changed since Monday morning
We also read the odds on Monday at 15:10 (not scored, recorded only to track the trend). Fortuna lists betting as closing on Friday 16 Oct at 14:00. The last reading before then will be scored.
Towards us (market moved closer to AI + model): Hradec (Dvořák 66 → 60 %, we 54 %), Žďár (Klement 57 → 63 %, we 66 %), Karviná (Brzyszkowská 87 → 81 %, we 65 %), Přerov (Navařík 68 → 65 %, we 62 %), Frýdek-Místek (Pešatová 61 → 59 %, we 54 %), Praha 5 (Láska 79 → 78 %, we 62 %).
Away from us: Česká Lípa (Půta 84 → 90 %, we 74 %), Zlín (Goláň 75 → 80 %, we 74 %), Pelhřimov (Med 91 → 94 %, we 82 %).
Unchanged: Kladno (Paták 57 %) and the clear favourites (97–99 %).
Overall: six districts towards us, three away. The largest moves are about equally large in both directions (Hradec −7, Žďár +6, Karviná −6 vs Česká Lípa +6, Zlín +5). On the favourite the market still agrees with us in 19 of 20 districts. Blend: Kladno Paták 54 %, Hradec Dvořák 58 %, Žďár Klement 64 %.
Mistakes and fixes
None new today. The lock → odds order was kept (times above).
Odds: raw-*-2026-10-12pm-r2.txt (Mon 15:10, not scored) and raw-*-2026-10-13-r2.txt.
Next
Odds daily; the scored reading is on Friday before 14:00. An update only for a fact that could decide a race (e.g. a recount in Žďár), always with a lock before odds. Runoff on 16–17 Oct.
2026-10-12 — Day 11: runoff endorsements, Litovel update, first round-2 Betting and Blend
In short: An endorsement check across all 22 districts found two new facts. In Litovel we raised the forecast slightly; in Znojmo we left it unchanged. For the first time we have round-2 Betting (Tipsport and Fortuna) and Blend. The market has the same favourite as AI + model in 19 of the 20 districts with odds. The exception is Kladno, where the market flipped overnight to Paták (57 %) while we have Šípová at 52–53 %. On clear favourites the market is, as in round 1, more confident than we are.
Runoff endorsements (news only, no odds)
On Saturday evening the agents ran out of web search, so this morning a fresh run checked endorsements in all 22 districts. We used Google News for the last three days and articles opened in the browser. No odds were opened while we did this.
Litovel: new fact, updated. Michael Kohajda (KDU-ČSL, 3rd, 28.4 %, 146 votes short of the runoff) said he will back Ošťádal in round 2. AI: Ošťádal 80 → 83 %, AI + model 86 → 88 %. The red-team agreed in both steps. Why so small: the previous forecast already assumed Kohajda's voters would go mostly to Ošťádal. The endorsement also appeared only as a mention in one article, with no appeal to voters and no party position. The main uncertainty is still how many of his voters turn out at all.
Znojmo: new facts, no change. Stačilo! (11.8 %) backs Kyněra (ANO), Hlas regionů (6.7 %) backs Třetina, independent Růžička (18.7 %) backs nobody, and Přísaha is undecided. The effects roughly cancel (net +1 pp for AI, +0.2 pp for AI + model). That is under the 2 pp threshold, so the update was skipped and the 10 Oct forecasts stand (Třetina 84 / 91 %).
Hradec Králové: Hůlková (ANO) backed Ceralová Petrofová on Saturday evening, and both forecasts already include it. We found no endorsement from Nebeská or Holásek.
Plzeň: outgoing senator Aschenbrenner (ODS) "will probably not back Řehka", per an iDNES headline. This only confirms what the forecasts already assume.
Žďár: Černý, who lost by one vote, endorsed nobody and has not yet decided on a recount.
We found no endorsements in the other districts. Neither ANO nor Babiš recommended a vote where ANO has no runoff candidate.
We locked the new AI and AI + model snapshots in commit 8e6e795 (9:49). Only Litovel changes in them; the other districts are copies of 11 Oct.
Runoff odds: first Betting and Blend
Tipsport and Fortuna both offer a "who gets more votes" duel in all 22 districts. Method: power de-vig for each bookmaker separately, then the mean of the two. Odds of 1.01 are treated as the floor. A bookmaker with the favourite's price locked is left out. In Praha 1 (Padevět) and Kolín (Kašpar) both are locked, so Betting and Blend have no number there. In Příbram and Uherské Hradiště we use Tipsport only. Only the last reading before betting closes is scored, as pre-registered on 11 Oct. Today's numbers are interim.
Towards us: the market has the same favourite as AI + model in 19 of 20 districts with odds. In Hradec (Dvořák 66 %), Frýdek-Místek (Pešatová 61 %) and Praha 5 (Láska 79 %) the market sides with us against STEM (CNN Prima). In Přerov the market (Navařík 68 %) agrees with AI + model (62 %); pure AI narrowly has Vrána (51 %).
Away from us: in Kladno the market flipped between Sunday evening and Monday morning: Tipsport went from Šípová 1.65 / Paták 2.08 to Šípová 2.08 / Paták 1.65, and Fortuna (newly posted) has Paták at 1.65. The market now gives Paták 57 %, we have Šípová at 52–53 %, and STEM has Paták at 88 %. Blend narrowly favours Paták in Kladno (54 %). We found no news story that would explain the flip. We did not go looking for one because of the odds, so as not to change anything on the market's account.
The market is more confident than us (same favourite): Karviná (Brzyszkowská 87 % vs 65–72 %), Brno (Papoušek 97 % vs 84–86 %), Pelhřimov (Med 91 % vs 78–82 %), Česká Lípa (Půta 84 % vs 72–74 %), Praha 5 (79 % vs 62–64 %), Hradec (66 % vs 54 %). Close to us: Zlín (Goláň 75 % vs 73–74 %), Žďár (Klement 57 % vs 56–66 %).
Overall: for round 2 our forecasts look as they did in round 1. We agree with the market on the favourite but are more cautious. In round 1 that worked out better for the market on clear favourites. Kladno is now the only district where we stand against both the market and STEM.
Sensitivity to method: in close races the de-vig method barely matters (Kladno 56–57 % proportional / Shin / power, Hradec 63–64 %). At odds of 1.01 it matters a lot (Plzeň 95 / 97 / 99 %, Brno 91 / 94 / 97 %). The main score uses the power method, as pre-registered; the other methods will be shown at scoring as a sensitivity analysis.
Mistakes and fixes
The Znojmo watch item was too coarse. The 10 Oct forecast said that an endorsement of Kyněra by Růžička or Stačilo! would cut Třetina's chances by 8–12 pp. Only the smaller part happened: Stačilo! endorsed Kyněra, Růžička did not. The forecast also already assumed Stačilo! voters would move to Kyněra. Both red-teams noted that reinterpreting such an item after the fact is partly self-serving. Fix: watch items now list each event separately, each with its own size of shift.
Order of lock and odds. We started reading the runoff odds (9:47) before the lock commit (9:49), because the Litovel update was still running. The Litovel line was hidden during the reading and opened only after the lock (9:49:28 and 9:49:40). No other district changed today, and the Litovel and Znojmo agents never saw odds. The order is documented by commit times and the headers of the odds files.
The 11 Oct addendum said "11 of 22 districts, nothing at Fortuna". By 20:20 Tipsport had posted all 22 districts. We added this to the 11 Oct entry; the pre-registered rule was not changed.
Odds: Tipsport (event 8537281) and Fortuna (politics, "Kdo získá více hlasů – 2. kolo"), files raw-*-2026-10-12-r2.txt.
Next
Odds daily until betting closes (the last reading is scored). Another endorsement check only on new news; an update only for a fact that could decide a race, and always a lock before odds. Runoff on 16–17 Oct.
2026-10-11 — Days 9–10: round-1 results, interim scores and runoff forecasts
In short: We predicted who would reach the runoff as well as the bookmakers: the favourite advanced in 26 of 27 districts in all five series. The bookmakers did better on clear favourites because they were more confident, while AI was needlessly cautious. Where we disagreed with the market, our favourite leads after round 1 in five districts and the market's in two, so the runoff will decide. Blend, the combination of AI and the market, is doing best so far. Our statistical model predicted ANO's advancement better than the Seznam Zprávy data model.
Round 1 is counted. Five seats were decided outright: Strakonice (Fiala), Děčín (Linhart), Trutnov (Sobotka), Rychnov nad Kněžnou (Grulich) and Vyškov (Grolich). The other 22 go to a runoff on 16–17 Oct. All five series forecast who wins the seat, so full scores come after round 2. For now we can only score part of it: how much probability each series put on eliminated candidates, and whether its favourite advanced. Tables are on the Scores page.
Interim scores
Who is still in the race: the favourite advanced in 26 of 27 districts in all five series. AI missed Plzeň (Aschenbrenner finished third); the market missed Litovel (Kohajda finished third, 146 votes short).
Clear favourites, market ahead: in the five outright wins the market gave the winners 88–98 %, AI 71–87 %. Brier: Betting 0.04, Blend 0.07, AI 0.36, AI + model 0.41, statistical model 0.91. AI is too cautious on clear favourites, and the statistical model even more so.
Disputed districts, us ahead so far: in the 7 districts where the market's favourite at the freeze differed from AI + model's, our favourite leads after round 1 in five (Cheb, Pelhřimov, Kladno, Přerov, Litovel) and the market's in two (Plzeň, Praha 5). If the round-1 leaders win the runoffs, AI + model scores a Brier of 2.7 in these districts and Betting 5.3. If the runners-up win, it flips: Betting 4.9, AI + model 7.6.
Overall: Blend leads on the part of the score that is already settled (Brier on eliminated candidates 0.74; Betting 0.81; AI + model 0.96; AI 1.18). The pre-registered order "Blend ≈ Betting > AI + model > statistical model ≈ AI" holds so far.
AI on 2 Oct and AI on 9 Oct score almost the same. A week of news barely changed the AI forecasts, because we changed them only for new facts.
Pre-registered benchmarks
ANO candidates advancing (Seznam Zprávy): 13 of the 23 tracked ANO candidates advanced. Seznam Zprávy expected 13.4 / 17.3 / 21.2 (unfavourable / middle / favourable scenario); our statistical model expected 14.5. Ours was closer, but it too overrated ANO. Brier on advancing: our model 0.156, Seznam Zprávy 0.188. Mean error in round-1 vote share is 3.7 pp for both.
Home-base hypothesis: confirmed, on a thin sample. Mayors with a big home base beat the model by 5.6 pp on average, other candidates by 1.3 pp. The 4.2 pp gap is above the pre-registered threshold of 3, but most of it comes from Kašpar in Kolín (+15); Brzyszkowská in Karviná did worse than the model (−3.3). Six candidates are not many. We take it into model v2 as a strong suspicion, not a certainty.
Wikipedia (most-read wins): the most-read candidate advanced or won in 14 of 27 districts. They can only go on to win where they advanced.
Statistical model on round-1 shares: mean error 5.3 pp per candidate.
Surprises
Hradec Králové: independent candidate Monika Nebeská led for hours. She took over 20 % in the rural count and 12 % in the city. Dvořák (25.1 %) only went ahead once the city was counted; Ceralová Petrofová (ODS) is second. Neither we nor the market saw Nebeská coming; everyone treated her as a fringe candidate.
Žďár nad Sázavou: Klement beat Černý to the runoff by one vote (11,373 : 11,372).
Praha 1: Padevět ended on 49.64 %, just short of winning outright.
Round-2 forecasts
Same procedure as on 5 Oct. First AI: the agent got its previous forecast, the round-1 results and the news, with no model and no odds. We saved that forecast. Only then AI + model: the same agent also got the round-2 statistical model (the runoff layer, now with the actual round-1 shares). A separate red-team checked each step. We locked 17 districts in a commit on Saturday at 22:01 (3dd3820), and Praha 1, 5, 9, Brno and Žďár on Sunday morning on the final count (commit f4179ec, 8:23). We did not open STEM's forecasts for CNN Prima before locking, as pre-registered on 8 Oct. We will record them as a round-2 benchmark. Runoff odds have not been posted yet by Fortuna or Tipsport (checked Sunday 8:25), so round-2 Betting and Blend will follow once they are.
Where AI and AI + model disagree: Přerov (AI: Vrána 51 %, AI + model: Navařík 62 %). The model penalises ANO in runoffs, but it underrated Vrána here by 13 points in 2020. In Praha 5, AI + model flipped from Sáblík to Láska (62 %). In Praha 1, AI flipped from Čižinský to Padevět (93 %), because Padevět led round 1 by 22 points. In Žďár, Klement is the favourite in both series, but narrowly in AI (56 %; AI + model 66 %). The model credits Černý's whole vote to Klement because it codes Šmarda's list (Volt) outside the blocs.
STEM for CNN Prima (opened only after locking): of the 22 runoff districts it shares the favourite with AI + model in 18 and with AI in 17. It is far more confident, though: 99 : 1 in 14 districts where we have 72–97 %. It picks a different favourite in five districts: Kladno (Paták 88 %), Hradec Králové (Ceralová Petrofová 86 %), Frýdek-Místek (Korč 78 %), Praha 5 (Sáblík 52 %), and Přerov, where it agrees only with AI + model (Navařík 53 %). In Karviná it gives Brzyszkowská 91 %, while the article text says 15 %; we use the chart figures. After round 2 we score STEM as a benchmark, the same way as our series.
Closest races: Kladno (Šípová 52–53 %), Frýdek-Místek (Pešatová 52–54 %), Hradec Králové (Dvořák 54 %; Hůlková of ANO publicly backed Ceralová Petrofová).
Clear favourites (90 % or more in both series): Cheb, Louny, Příbram, Kolín, Ostrava, Uherské Hradiště, Znojmo (AI 84 %). From the morning batch: Praha 1 (Padevět 93–94 %), Praha 9 (Smoljak 95–96 %) and Brno (Papoušek 84–86 %).
Mistakes and fixes
Odds notes in the news file. On Friday and Saturday morning we wrote reference notes on odds moves into the news file the agents read from: which way the odds moved, and in Kladno an actual price. During Saturday's updates the coordinators of five districts saw them. By their own check, none of it reached any step that computed a forecast. In Pelhřimov, though, the coordinator saw that the market had moved towards Med before the forecast was finished. So Pelhřimov is marked "moderate" contamination risk and the others "low". Cause: one file for news and market notes. Fix: market notes now live in a separate file the agents never get, and we check the news file before every run. Each district page shows its risk.
Names in the scoring script. Double surnames (Sucharda Šípová, Baránková Vilamová) and namesakes (two Čižinskýs in Praha 1) broke name matching. For a while on Saturday afternoon the interim numbers showed the opposite of the truth in Kladno. Fix: the surname is now searched for anywhere in the full name, and the given name must match too.
Web search ran out. On Saturday evening the agents used up their web-search budget, so most districts lack a check of who endorsed whom after round 1 (research_limitation). The budget covers the whole run, so Sunday's research for Praha, Brno and Žďár was limited too, to Google News headlines and directly fetched pages. Fix: before round 2 we run a separate endorsement check in a fresh run.
The round-2 model has a ceiling. For clear favourites it always returns 96.8 %, which is its calibration cap, not a real estimate. It also codes party blocs from the ballot only, so SLK, Naše Česko or Osobnosti pro kraj get no "own" voters from eliminated candidates. Agents corrected for this as recorded deviations from the model. To be fixed in model v2.
Election-night news (candidate statements, runoff endorsements): links are in each district's run log in the repository.
Addendum (Sun 11 Oct, evening): first runoff odds
For round 2 Tipsport posted a "who gets more votes" market (a two-candidate duel), so far for only 11 of 22 districts: Cheb, Louny, Plzeň, Pelhřimov, Příbram, Praha 5, Praha 9, Praha 1, Kladno, Česká Lípa and Kolín. The Moravian districts and Hradec Králové are missing. Fortuna offers no Senate market at all (checked 19:55). We read the odds only after all our runoff forecasts were locked.
Favourite: in all 11 districts the market has the same favourite as AI and AI + model.
Kladno: Tipsport opened at 1.85 : 1.85 (50 : 50) and shortly moved to 1.70 : 2.01 (Šípová about 55 %). We have Šípová at 52–53 %.
Where the market is more confident than us (same favourite): Praha 5 (Láska 80 % vs 62 %), Česká Lípa (Půta 84 % vs 74 %), Pelhřimov (Med 94 % vs 82 %).
Pre-registered: the scored Betting series (and Blend built from it) for round 2 = the last odds reading before betting closes. Opening and today's odds are reference only. The prices are still settling, as Kladno shows. Districts nobody posts by the close will have no Betting or Blend number and are scored separately. Odds of 1.01 are Tipsport's floor, so they only say "clear favourite", not a precise probability.
Clarification (12 Oct): by 20:20 Tipsport had posted all 22 districts (Kladno already 1.65 : 2.08, Šípová about 55 %). The pre-registered rule above stands unchanged. The new odds reading is in the 12 Oct journal entry.
Next
Runoff odds, and from them Betting and Blend. STEM's forecasts recorded as a benchmark. Runoff on 16–17 Oct. Then full scoring of all five series, the 9 Oct freeze and the round-2 forecasts scored separately.
2026-10-09 — Day 8: freeze. These are the forecasts we will score
The forecasts are frozen. A final news check (10:25–10:35) found nothing that changes the race in any district. We therefore locked AI and AI + model unchanged at 10:35, before reading the odds (commit ced8415). The 9 Oct snapshots are the ones we will score: AI, Statistical model (as of 3 Oct), AI + model, Betting (odds read 10:36–10:42) and Blend. Polls open today at 14:00. Note: this page went live only in the afternoon, after the polls had opened. The forecasts are unchanged; the commit times in the repository show they were made before 14:00 (lock 10:35, build 10:42).
What changed
News: Babiš's doctor banned him from the rest of the campaign because of a fever. This continues Wednesday's illness, which mildly weakens ANO's final days. Otherwise there were only election previews and interviews.
Betting: the last day was quiet. The market favourite changed in no district and no candidate moved by more than 3 pp. The biggest moves were Plzeň (Řehka +2 to 63 %, away from us) and Hradec Králové (Dvořák +3 to 51 %, towards us). The overall gap between the market and AI + model is the same as yesterday.
Disputed districts at the freeze: the market has a different favourite from AI + model in 7 districts: Cheb, Plzeň, Pelhřimov, Praha 5, Kladno, Přerov and Litovel. Praha 1 and Frýdek-Místek have dropped out since Wednesday and Thursday because the market moved to our favourite there. For scoring we will use the 9-district list pre-registered on 5 Oct, and this one as well.
Recorded in advance: odds during voting
Fortuna closes its markets today at 14:00, but Tipsport takes bets until Saturday 12:00, i.e. during voting. Later odds already reflect events during the election, such as turnout reports. Comparing them with our Friday forecasts would be unfair. Therefore:
The scored Betting series = today's snapshot (odds read 10:36–10:42). All five series are thus based on the same information.
For reference only we will also record Fortuna just before 14:00 and Tipsport on Saturday around 11:30, the last price before it closes. They will show where the market moved during voting, towards us or away from us. They do not enter the score.
Excluded: iDNES (8 Oct) wrong ballots in Poruba. Judging by the headline it looked like a Senate-district story; once opened, it is about the municipal election.
Not opened: iROZHLAS “district-by-district analysis”, Echo24 “10 most exciting races” and CNN Prima analysts' predictions. These are someone else's forecasts, not inputs. We will read them after the election.
Mistakes and fixes
A headline is not the content. In the first log entry we assigned the Poruba story to the Ostrava Senate district based on the headline alone. It was about the municipal election. It had no effect on the forecasts (step A/B was skipped anyway). Fix: always open any source that could change a forecast; the headline is not enough.
Tipsport does not allow its pages in a frame, so we opened the detail pages of the ten districts whose “Yes” price changed one by one (8 s apart). In the other 17 districts the “Yes” price did not change and the “No” price is carried from 8 Oct, as on previous days.
Evening addendum (21:15)
The forecasts are frozen and none of this changes them. We only record what happened on the first day of voting.
Kladno (30): Miloš Zeman, who votes in Lány in this district, said publicly at the ballot box that he voted for Aleš Gerloch (iDNES, 16:03). It can only affect those who vote on Saturday.
Nationally: after criticism, President Pavel flew back from his holiday in Morocco, voted and left again. Babiš says defending ANO's result would be a success.
Turnout: there are no official numbers; ČSÚ publishes them only after 14:00 on Saturday. Only fragments: per ČTK 10–15 % in the first hours, Havířov about 10 % at 17:00, Přerovský deník reports “promising turnout”. Unverified.
Fortuna closing odds (13:46, reference only, not scored): compared with the scored 10:38 read, only two districts moved. In Praha 1 Jan Čižinský strengthened (2.00 → 1.90), a move away from us. In Pelhřimov Med strengthened (2.70 → 2.50), a move towards us. The other 25 districts are unchanged.
Tipsport in the evening (21:10–21:20, during voting, reference only): the favourite changed in no district and the biggest moves are up to 3 pp. The market moved towards us in Cheb (Plevný +3), Louny, Pelhřimov (Med +3), Znojmo and Frýdek-Místek, and away from us in Plzeň (Řehka +2). The overall gap between the market and AI + model narrowed slightly. For five districts the “No” price was imputed keeping the margin, because Tipsport had an outage.
Next: on Saturday after 14:00, round 1 results from volby.gov.cz. We will score runoff qualification for all five series, compare with Seznam Zprávy and Wikipedia, and test the home-base hypothesis. Then we re-run the model with the actual results and update for round 2. Those updates will be locked before we see the STEM predictions.
2026-10-08 — Day 7: last day of the campaign, AI unchanged, a Wikipedia benchmark pre-registered
AI and AI + model are unchanged. The news from the last day of the campaign and the reactions to Wednesday's leaders' debate contained nothing that changes the race in any district. The snapshots were locked at 16:47, before reading the odds. These versions of AI and AI + model will very likely be the ones scored. By 12:00 tomorrow we will change them only if a major fact appears.
What changed
News: Přerovský deník profiled all four Přerov candidates. Both front-runners, mayor Vrána (ANO) and councillor Navařík (ODS), sit in the same city leadership. In Cheb, negative coverage of Sandra Tsoukernik continues. The leaders' debate brought nothing district-specific.
Betting: in Praha 1 the market favourite flipped from Jan Čižinský to Padevět (45 %), who is also the AI + model favourite. In Pelhřimov, Med rises (+6 pp to 28 %) while Kozár stays the favourite (45 %). Láska strengthens in Praha 5 (64 %) and Klement in Žďár (73 %). In two disputed districts (Pelhřimov, Praha 1) the market moved towards our forecast, in two (Praha 5, Litovel) away from it. The overall gap between the market and AI + model is roughly unchanged.
Blend moves only with the market.
Recorded in advance: a Wikipedia benchmark
We collected daily Czech Wikipedia pageviews of the candidates' articles (1 Aug–7 Oct; 93 of 154 candidates have an article). We do not use them as an input, because attention is driven mostly by scandals and famous names. After the election we will score them as a simple benchmark: the most-viewed candidate in a district wins (average 24 Sep–7 Oct). This rule predicts:
The most-viewed candidate is the market favourite in 13 of 25 districts and the AI + model favourite in 9. We also tried Google Trends, but for Senate districts it returns mostly zeros and confuses namesakes, so we do not use it. The data are in the repository.
Recorded in advance: the home-base hypothesis
We suspect our statistical model underrates candidates with a large home base (see Mistakes and fixes). So that we cannot choose the group after seeing the results, we defined it mechanically from ČSÚ data: a sitting mayor of a municipality that is home to at least 15 % of the district's voters.
15 Kozár (Jindřichův Hradec, 16 % of voters), model round 1 22.2 %
27 J. Čižinský (Praha 7, 37 %), model 22.9 %
36 Volfová (Česká Lípa, 25 %), model 28.8 %
42 Kašpar (Kolín, 21 %), model 30.3 %
63 Vrána (Přerov, 33 %), model 31.9 %
75 Brzyszkowská (Orlová, 28 %), model 36.9 %
Metric: actual round-1 share minus the statistical model's mean. Comparison group: all other candidates the model gives at least 15 %. Hypothesis: home-base candidates beat the model by at least 3 pp more on average than the comparison group. Refuted if the difference is zero or negative. Limitations: six candidates is a small sample. Poruba mayor Baránková Vilamová drops out because ČSÚ data do not split Ostrava into city districts.
Recorded in advance: a rule for Saturday's STEM predictions
CNN Prima announced that on Saturday, once about 80 % of the votes are counted, it will publish runoff win probabilities from STEM analysts. It published no forecast before round 1. To keep our post-round-1 updates from echoing them, we will make and lock our updates with a commit before looking at the STEM numbers. We will then record those as an external benchmark for round 2, just as the Seznam Zprávy model serves for round 1.
New sources today
Today's sources were only logged; none of them changed the forecasts.
INFO.CZ and forum24 (8 Oct): more pieces on Sandra Tsoukernik and Rozvadov. Cheb (3), nothing new for the outcome.
Odkryto and Praha na dlani (8 Oct): Láska's anti-corruption team and his campaign spending. Praha 5 (21), minor.
forum24 (8 Oct): twenty groupings missed the deadline to disclose sponsors. We did not check which ones.
Not opened: iDNES “Zeman as the election mascot” (requires consent to targeted ads; per its URL mainly about municipal elections) and CNN Prima “analysts' predictions” (someone else's forecast, not an input).
Mistakes and fixes
A second research gap: geography within a district. ČSÚ municipality-level data show that in 2020 Vrána won the city of Přerov 55:45 in the runoff and lost only in the countryside. Our model knows the “mayor” role but not the size of a candidate's home base or the opponents' bases. Similarly, Šípová (Kladno) lives in Doksy, outside the district, while Paták is from Kladno, home to 45 % of the district's voters. Historically, however, a home base does not win automatically: mayors of a district's largest town reached the runoff only 27 % of the time in 2020–2024. Why we did not change the forecasts: every finding points towards the market, and we ran the analysis because of a disagreement with the market. A change the day before the freeze would be a hidden move towards Betting. Fix: model v2 gets a “home-town share of voters × role × party” variable and municipality-level history. After round 1 we will measure whether candidates with a home base systematically beat the model.
Yesterday's Tipsport imputation held up. In Brno (5.62) and Frýdek-Místek (1.67) the imputed “No” price matched the actual one exactly. Today we opened pages more slowly and Tipsport did not block us.
Next: on Friday morning a last quick news check and the closing odds. Forecasts freeze by 12:00; round 1 results come on Saturday.
2026-10-07 — Day 6: AI unchanged, a gap in candidate profiles, the market warms to Volfová
AI and AI + model are unchanged today. We went through the last two days of news on all 154 candidates and found nothing that changes the race in any district. The blind snapshots were locked with a commit at 21:42, before reading the odds. They are identical to 6 Oct.
What changed
News: in Česká Lípa, Babiš was ill and missed the final rallies. Ministers campaigned for Volfová in his place and he joined by phone video from bed. In Cheb, negative press around Sandra Tsoukernik continues. In Vyškov, minister Schillerová and Grolich traded sharp attacks. These are minor; we did not change our forecasts.
Betting: the biggest moves are in Česká Lípa (Volfová +6 pp to 28 %, Půta 56 %), Kolín (Kašpar +6 to 71 %), Praha 5 (Láska +6 to 59 %) and Příbram (Štěpánek +5). In Frýdek-Místek the market favourite flipped: Pešatová 43 %, Korč 41 %. The gap is within noise. In Kladno the market barely moved (Paták 44, Šípová 28).
Blend moves only with the market.
Odds were read around 21:45–22:10, during or just after the evening leaders' debate. The moves since yesterday therefore cover the whole day, and we cannot separate the effect of the debate.
New sources today
Today's sources were only logged; none of them changed the forecasts.
CNN Prima NEWS: viewer poll after the 23 Sep debate. Kladno: Gerloch got the most votes. A poll for logged-in viewers with no numbers, so negligible weight.
Checked and discarded: Novinky, “ODS leaders asked Praha 1 list leader Dvořák to step down”. This concerns a municipal list, not the Senate.
Mistakes and fixes
Missing profiles of “minor” candidates. The 2 Oct research ran without web search (the limit was used up), so candidates outside the main pair lack a CV. Today we found two cases. Jan Klas (Kladno, Naše Česko) ran Czech air traffic control (ŘLP) for 19 years; we treated him as a generic minor candidate. Petr Korč (Frýdek-Místek) was removed as mayor by the city council in June; our research only knew the post was vacant. Why we did not change the forecasts: we looked into Klas because the odds moved yesterday. A market-triggered update would turn the AI series into a copy of Betting and spoil the comparison. The estimated effect on who wins is also small (1–3 pp), and for Korč even the direction is unclear. Fix: future briefs get a mandatory “CV of every candidate on the ballot” step. After round 1 we will score this gap as a known limitation of the AI series.
Odds seen before the lock. While searching the news, Google showed a snippet from a betting site with odds for Praha 5, 9 and 1, about an hour before the snapshots were locked. It had no effect today because AI and AI + model were not changed. Fix: news queries now exclude betting sites.
Tipsport outage. After 12 detail pages Tipsport blocked access (“betting unavailable”). For the three districts where the Yes price changed (Žďár, Brno, Frýdek-Místek) we computed the No price by keeping yesterday's bookmaker margin. In the ten districts where we had both prices, the margin moved by at most 0.15 % since yesterday. Spot-checks of No prices in unchanged districts (Kladno, Hradec Králové) confirmed they had not moved.
Next: news and Betting for the last time on Thursday. Forecasts freeze Fri 9 Oct by 12:00.
2026-10-06 — Day 5: poll blackout, AI unchanged, market move in Kladno
The poll blackout started today. The last day's news contained nothing that changes the race in any district, so under our rules AI and AI + model were not changed. We still locked the blind snapshots with a commit before reading the odds. They are identical to 5 Oct.
What changed
News: Seznam Zprávy published an analysis of eight “uncertain” districts for ANO (Trutnov, Příbram, Hradec Králové, Zlín, Kolín, Vyškov, Plzeň, Kladno). In Cheb, singer Michal David publicly backs Sandra Tsoukernik's campaign. A STEM sociologist warns that Grolich may win Vyškov outright in round 1. This is commentary more than new facts; we did not change our forecasts.
Betting: the biggest move is in Kladno. Fortuna cut Klas from 20 to 6 and lengthened Šípová from 2.0 to 2.8. Šípová fell 5 pp to 29 % in the consensus; Paták remains the favourite (42 %). Smaller moves: Žďár (Klement +6), Litovel (Kohajda +4), Česká Lípa (Volfová +3). The market favourite did not change anywhere.
Blend moves only with the market.
External benchmark: the Seznam Zprávy data model
On 5 Oct Seznam Zprávy published a data model. It estimates only ANO candidates' chances of reaching the runoff and their round-1 shares, in two scenarios. We saw it on 6 Oct. We do not use it as an input: its numbers are stored separately and are kept out of the agents' materials. After round 1 we will compare its middle scenario with our statistical model and AI + model on the 23 ANO candidates (Brier on advancing and error in vote share).
Recorded in advance: Seznam Zprávy expects 13.4 ANO candidates to advance in the unfavourable scenario, 17.3 in the middle and 21.2 in the favourable one. Our statistical model expects 14.5. On the Seznam Zprávy scale (16 or fewer = failure) we therefore forecast a weak round 1 for ANO. The biggest differences from the Seznam Zprávy middle scenario are Hradec Králové, Zlín, Znojmo and Praha 5 (ANO weaker in our model) and Vyškov (stronger in ours).
New sources today
Today's sources were only logged; none of them changed the forecasts.
Missing list of Tipsport markets. Yesterday we had recorded market IDs for only half of the districts. Fix: we found the category page with all 27 districts and recorded the IDs in our procedure.
Simplified Tipsport reading. The overview page shows only the “Yes” price. We opened the detail only for the five districts where the Yes price changed and carried the “No” price over from 5 Oct for the rest. Risk: small, if only the No price moved. From tomorrow we will spot-check No prices.
A bug in the site generator. The “What's new today” box crashed when comparing Betting with the previous day, because the market snapshot stores its distribution in a different shape. Today was the first day a previous market snapshot existed. Fix: we fixed the loader. No snapshot changed.
Next: news and Betting again on Wednesday and Thursday. Forecasts freeze Fri 9 Oct by 12:00.
2026-10-05 — Day 4: five series — AI, Statistical model, AI + model, Betting, Blend
Today all series appear for the first time. The order was fixed: first the AI update without the model (step A), then the AI with the model as input (step B). Both blind snapshots were locked with a git commit at 15:24. Only after that did we start reading odds (Fortuna from 15:35, then Tipsport).
What changed
AI (no model): only 2 districts changed since 2 Oct. In Litovel we moved 2 pp from Ošťádal to Kohajda after Ošťádal said he would not campaign. In Brno we fixed a 2 pp internal inconsistency in the previous version. The other 25 districts had no new facts and kept their forecast (rule: under 2 pp and no material event means no change).
AI + model: the favourite changed in two districts: 21 (Sáblík instead of Láska) and 27 (Padevět instead of Čižinský). Favourites with a strong coalition base in the model got much stronger (Kladno, Praha 9, Pelhřimov, Hradec). Those whose personal brand the model cannot see got weaker (Strakonice, Karviná, Česká Lípa, Uherské Hradiště).
Betting: the market favourite differs from “AI + model” in 9 of 27 districts. The market is much more confident in:
ANO candidates in Cheb (Tsoukernik), Pelhřimov (Kozár) and Přerov (Vrána, 82 % vs our 24 %);
personal brands and local leaders: Láska, Čižinský, Řehka, Korč, Kohajda and Paták.
Our series lean more on the breadth of coalition support. This is the experiment's main bet, and the election will show who was right.
Blend combines “AI + model” with the market mechanically (ρ = 0.55, AI weight about 31 %).
Mistakes and fixes
Bugs in the statistical model's inputs. While auditing the inputs in step B, the agents found about a dozen bugs:
the “mayor” flag also fired on “former mayor”;
former senators were matched by name only, so namesakes got mixed up (two Martin Dvořáks);
a municipal coalition list was credited in full to every member party;
the 2018 Prague list “Praha 7 SOBĚ” was not mapped;
SLK was missing from the opposition bloc;
KSČM had a zero base;
calibration gives every minor candidate a floor of about 2 %.
Fix: we deliberately leave model v1 unchanged today, so that the Statistical model series changes only when its inputs do. The agents logged the bugs as deviations with reasons, and the fixes go into model v2 after round 1, published as a new version.
Double-counting informal backing. In Vyškov and Litovel the agent re-ran the model with informal support “coded in” from parties not on the ballot. The training data is not coded that way, so the effect would have been counted twice. Fix: we added a rule (no model re-runs, only a moderate deviation above the typical level), and an independent review corrected both districts before the lock. Vyškov stayed around 76 %; Litovel is Ošťádal 36.5 % and Kohajda 31 %.
Channels through which odds could leak. We found two:
the news file given to the agents contained our note about the model's favourite;
the agent's auto-loaded memory contained numbers from an earlier market step for Plzeň, Brno and Kladno.
Fix: both were cleaned during the run, and the affected districts log it as a contamination risk. We cannot fully guarantee they are clean.
A bug in the update tool. It copied the final (market-aware) number as the default “previous probability” instead of the blind one. The agent caught it in Plzeň. Fix: the updates started from the blind number; the tool fix comes before the next update.
An unclear market definition. It was not clear whether Fortuna's market means the round-1 winner or the elected senator. Resolution: Tipsport explicitly says “overall”, and its numbers match Fortuna's, so we treat both as the seat winner. Fortuna's margin is high (11–78 %).
Tipsport rate limiting. The site temporarily blocked betting during fast browsing. Fix: slower reading with pauses. We have odds for all 27 districts from both bookmakers.
Expectations recorded in advance (5 Oct, before any results)
Nobody knows the results yet. So we write down now what we expect from each series, so that after the election we can also check our own read of where our weaknesses are.
Expected ranking by Brier: Blend ≈ Betting > AI + model > Statistical model ≈ AI. Combining two different sources usually scores best. In our earlier questions, the market beat our final in 5 of 6 cases.
AI: its research was thin (search budget exhausted), it repeatedly made a construction error (runoff pairings inconsistent with round-1 shares), and it has barely changed since 2 Oct.
Statistical model: only 3 election cycles of data, blind to personal brands, and known input bugs. On its own it is a rough estimate.
AI + model: the risk is sticking too closely to the model, and overconfidence for favourites with a strong coalition (Kladno 80 %, Praha 9 79 %, Znojmo 84 %).
Betting: a thin market with high margins; the two bookmakers likely watch each other.
Main hypothesis. In 9 districts the market has a different favourite from AI + model: 3 Cheb, 9 Plzeň, 15 Pelhřimov, 21 Praha 5, 27 Praha 1, 30 Kladno, 63 Přerov, 66 Litovel and 69 Frýdek-Místek. Two theories clash here. Ours says what matters is the breadth of coalition support and ANO's weakness in runoffs. The market trusts personal brands, local leaders and ANO candidates. Whoever calls more winners in these 9 districts will decide the series ranking more than the other 18 districts combined.
How we will score it. The 27 districts are strongly correlated, so differences in mean Brier will not be statistically significant. Besides the overall score we will therefore publish a paired district-by-district comparison and a separate analysis of the 9 disputed districts.
Next: the poll blackout starts Tue 6 Oct. AI changes only on new facts; Betting is read daily. Forecasts freeze Fri 9 Oct by 12:00, and the last version before 14:00 is the one scored.
2026-10-04 — Day 3: getting ready for Monday, media sweep, numbers unchanged
We did not change any forecasts today, on purpose: the AI blind is still from 2 Oct and the model from 3 Oct. We are collecting new information and will fold it into one joint update on Monday. That update goes through the full pipeline, including an independent red-team, once the last polls before the blackout are out.
What we did
Pipeline fix. The blind–market blend is now computed by a deterministic tool. Its ρ is the correlation between the blind forecast and the market, not the blind weight, and the pooling is in log-odds. This fixes the first-run bug (Plzeň) where the market got less weight than it should.
Rules for Monday's update. The AI agent starts from the statistical model. It may deviate only for a fact the model cannot see (personal brand, scandal, endorsement, district poll) and logs every deviation with its reason. It must not re-count what the model already contains.
Media sweep. Sunday's TV debates were about national politics (Havlíček on Poledne s Moravcem, Nedělní debata on pensions).
Praha 5: a September NMS poll (Prague-wide, municipal) shows Láska is the best-known Prague politician (34 % unaided recall), but only about 10 % of voters consider his movement. This is indirect evidence against the large personal-brand premium the AI forecast assumed.
Přerov: PM Babiš campaigned there on Saturday for the ANO candidate.
Campaign money: Tsoukernik (Cheb) put in 1 million CZK, Dvořák (Hradec) 400k. Motoristé field no Senate candidates.
We found no poll for any individual Senate district.
Mistakes and fixes
We stated the poll-blackout time without checking it (“Monday 22:00”). Fix: the ban on publishing polls starts 3 days before election day, i.e. Tue 6 Oct. We could not verify the exact wording of the new law, so we state it as an assumption. We will keep searching for polls until Monday evening.
The agent's search tool is exhausted.Fix: we search via the browser (Google with a last-week filter). Sites that block content behind a cookie consent are opened only with the operator's approval.
A wrong assumption about the TV schedule. We looked for Otázky Václava Moravce, but the Sunday show is now called Poledne s Moravcem. The outcome was unaffected, but it is a reminder to verify small things too.
Risk of odds contamination. A search result showed an article on bookmakers' favourites. Fix: we did not open it and logged it. The blind forecast must stay free of odds until it is locked.
Monday 5 Oct: a final poll search, then an AI update of all 27 districts with the statistical model as input, locking the blind forecast, and only then the market and final numbers.
2026-10-03 — Day 2: a statistical model as a second series
What we did: we built a statistical model following the design note “Model predikce senátních voleb 2026” and publish it as a separate series. The description is on the Model page. The model sees no odds. In validation on 81 districts from 2020–2024 it beats simple rules: Brier 0.673 vs. 0.770 for the best heuristic.
Where the model and the AI agent disagree: Praha 5 (model Sáblík 68 %, AI Láska 46 %), Praha 1 (Padevět 70 % vs. Čižinský 54 %), Pelhřimov (Med 75 % vs. 45 %) and Karviná (Brzyszkowská 40 % vs. 65 %). These are districts with strong local or independent candidates. After the election they will show whether the agent adds information or noise.
Mistakes and their fixes
The first version picked the right favourite in only 41 % of districts.Cause: incumbents were detected from the word “senator” in the occupation field, which is often missing. Fix: incumbency now comes from the full ČSÚ election history, including name changes (Šípová → Sucharda Šípová).
In 2020 the model overrated ANO candidates by 10–15 points.Cause: a governing party gets a lower share in Senate elections than in Chamber elections, and validating without 2020 left no other cycle with ANO in government. Fix: an interaction between base and government party. There is only one such cycle in the data, so we list it as a limitation.
The model underrated STAN and KDU-ČSL candidates.Cause: they are mayors' parties and do better in the Senate than their Chamber base suggests. Fix: party effects for STAN and KDU-ČSL.
The model was overconfident. In the 70–90 % bucket only 32 % won. Fix: calibration on validation data. It is fitted on the same data, so it is slightly optimistic.
The model couldn't see local movements (Praha sobě, SLK, SEN 21, Rozvíjíme Hradec…). Fix: a local base from municipal elections. Brier improved from 0.693 to 0.673.
Artefact: the SOCDEM candidate in Karviná jumped to 43 % because of ČSSD's strength in the 2022 municipal elections, even though the party has collapsed nationally. Fix: established national parties don't count toward the local base.
The Wikipedia poll table couldn't be found through search (the English site has no 2029 polling page). Fix: we took the data from Czech Wikipedia via its API. The result is an average of four pollsters instead of snippets from research.
Next (Mon 5 Oct): district polls before the blackout, an AI update with the model as input, locking the blind forecast, then the market.
2026-10-02 — Day 1: blind forecasts for all 27 districts
We ran the full pipeline for all 27 districts. Brno 60 and Kladno 30 had older forecasts from 21 Sep, so they got a fresh blind update. No stage saw betting odds.
Big picture: in 26 of 27 districts the favourite is an opposition candidate. The only exception is Karviná (75), where ANO defends an open seat. ANO often reaches the runoff but has a long record of losing it, especially when it is in government. The closest races are Pelhřimov (15), Litovel (66), Hradec Králové (45), Praha 5 (21) and Plzeň (9).
What went wrong and how we caught it:
In Plzeň, Česká Lípa, Zlín and Rychnov the red-team found a construction error. The runoff-pairing table did not match the round-1 share model; in Plzeň, for example, it put the incumbent's chance of reaching the runoff at 68 % instead of about 90 %.
The shared brief failed to mark 2022 as a year when ANO was in opposition. Fixed mid-run.
The Kladno update first came out at 55 % with no new evidence; an independent red-team pulled it to 51 %.
The web-search budget ran out, so most research relied on directly fetched pages.
Pre-publication check: we checked all districts against the official ČSÚ candidate register (volby.gov.cz). Every candidate the model uses is on the ballot, and the model leaves out no one significant. We did fix some labels: the Cheb incumbent is Miroslav Plevný, not Jaroslav. In Kladno, Adéla Sucharda Šípová was nominated by the Pirates on behalf of a Greens/STAN/Pirates/TOP 09/SEN 21 coalition. The site now takes names and lists straight from ČSÚ data.
Reflection: why it happened and what we do about it
Construction errors in the runoff table (4 districts plus Plzeň). Cause: the model estimated runoff-pair probabilities by hand, separately from round-1 shares, and the two contradicted each other. Fix: pairings are now derived by simulation directly from round-1 shares, so consistency holds by construction. Some districts already did this. Next time it will be a mandatory deterministic script, not model judgement.
An error in the shared brief (2022 not marked as an ANO-in-opposition year). Cause: one brief was sent to 24 parallel runs without a fact check, so the mistake was copied everywhere. Fix: shared base rates get an independent check before fan-out. Districts started before the fix will be checked at their next update.
Unreachable web. The search budget ran out and many sources are unreachable: volby.gov.cz is a JavaScript app, iROZHLAS returned 403, regional Deník is paywalled. Research often relied on Wikipedia alone. Cause: the tool that fetches pages as text can't handle JS-rendered pages, and search has a hard per-session cap. Fix: (a) fetch ČSÚ data once, centrally, via its JSON interface into a shared cache, instead of in every district; (b) use a real browser for unreachable pages; (c) raise the search cap and plan searches up front instead of exhausting them on the first districts.
Insufficient independence between stages. Because of a concurrency limit, in some districts one model did research, forecast and red-team. Fix: smaller waves instead of launching everything at once, with the red-team always a separate agent. We re-ran independent red-teams in the 4 affected districts; only one changed (Praha 5, by 3 points).
“Recalibration” without new evidence (Kladno 45 → 55). Cause: the update re-ran the model on unsupported assumptions and presented it as a refinement. Fix: a new rule that any move of more than 3 points without new evidence must pass an independent red-team. Here it pulled the number back to 51.
Stale forecasts. Earlier questions taught us that the biggest misses came not from a bad model but from forecasts nobody updated for weeks. Fix: a daily check of every district, even when the answer is “no change”, and a mandatory update after round 1.
Next: the market step (de-vigged odds) and final numbers, then daily news checks until the freeze on 9 Oct 14:00.