Reconstruction of the tally from the 499,205 voting machine reports published by the TSE (Brazil’s Superior Electoral Court). Each report enters the count at the minute it was received by the Electoral Justice.
This analysis is not from the TSE and has no ties to candidates or parties. It describes numbers and shows how to check each one. Dashboard · Ask the database · TSE datasets · privacy.
| Closing | Sections | Voters | Lula | Flávio |
|---|---|---|---|---|
| Regular hours (until 17:15) | 490,018 | 125,610,305 | 51.70% | 48.30% |
| ↳ até 17h00min59s | 125.652 | 31.608.254 | 49,01% | 50,99% |
| ↳ 17h01 a 17h14 | 364.355 | 93.999.248 | 52,61% | 47,39% |
| 17:15 to 18:59 | 2,819 | 766,482 | 57.28% | 42.72% |
| Extension (19:00 or later) | 6,352 | 1,861,259 | 55.18% | 44.82% |
In the machines that closed at 19:00 or later, Lula built a lead of about 186,000 votes, against a final difference of 4.43 million. Almost half of these sections were in Rio de Janeiro (2,805), where Flávio won in them with 54.2%.
Sections that closed at 17:00 gave Flávio the lead, and those that closed a few minutes later gave Lula the lead. Three tests show that the difference comes from which sections close in each minute, not from the time itself.
| Closing in the 2nd round | Sections | Eligible per section | Lula 2nd round | Lula 1st round* |
|---|---|---|---|---|
| 17:00 | 125,652 | 310 | 49.0% | 46.3% |
| 17:01 | 154,601 | 313 | 51.2% | 48.4% |
| 17:02 | 83,295 | 319 | 52.2% | 49.4% |
| 17:03 | 48,064 | 323 | 53.1% | 50.3% |
| 17:05 | 18,955 | 331 | 55.3% | 52.5% |
| 17:10 | 1,781 | 350 | 59.2% | 56.6% |
* Lula ÷ (Lula + Flávio) in the same sections on October 4, when they closed at a different time. The gain between rounds is about 2.8 points in every minute.
The South closes on time: 47% of sections in SC, 43% in RS and 38% in PR closed at 17:00, against 15% in RJ and PE and 3% in DF. Larger sections have longer lines at the end of the day: 310 eligible voters on average at 17:00, against 350 at 17:10. In São Paulo, only 7% of sections in the state capital closed at 17:00, against 23% in the rest of the state. Lula had about 55% in the capital and 41% to 43% in the rest.
| Comparison | Lula: later − 17:00 (2nd round) | Same sections in the 1st round |
|---|---|---|
| All of Brazil | +3.60 pts | +3.53 pts |
| Within the same state | +1.25 pts | +1.21 pts |
| Within the same municipality | +0.23 pt | +0.18 pt |
Average weighted by valid votes across municipalities with at least 500 valid votes in each group (5,157 municipalities). "Later" = 17:01 to 17:14.
Voting machine reports received by the TSE per minute, all states. The band marks the official pause in the national release of results (19:14 to 20:04).
| Time | What happened | Received | Flávio | Lula |
|---|
What the reports show. The national screen froze at 64.81%, a level that the received reports had reached at 19:03. In other words, the release was already about 11 minutes behind reception. At 19:22 reception itself slowed down, and between 19:32 and 19:59 no report from any state was recorded as received.
Why it seemed to last almost 2 hours. The release resumed at 20:04, but the queue was processed at a reduced pace: about 500 reports per minute until 20:43, against an average of 4,500 between 18:10 and 19:20. The pace only returned to normal around 20:47. From the slowdown (19:22) to the return to normal, about 1 h 25 min passed. For those watching the screen, the national count was stopped or slow from 19:14 until close to 20:50.
Caveat. The DT_BU_RECEBIDO field records when the report was accepted by the tally. A report transmitted during the failure and processed later appears with the processing time. That is why the 27-minute gap shows a stoppage in processing, without proving that the machines stopped transmitting. This is consistent with the TSE’s explanation of a "containment in data processing". The lead did not change sides: Flávio led from the first to the last report, and the final totals match the official tally (Flávio 47.03%, Lula 45.16%).
Reports received by the TSE per minute (5-minute moving average). Most voting machines do not transmit directly: the storage media with the result is taken to a transmission point. That is why the interval between the issuing of the report and its receipt includes transport, sending and processing.
| 1st round | 2nd round | |
|---|---|---|
| Reports issued by 17:10 | 65% | 96% |
| Receipt began | 17:00 (continuous) | 17:05, held from 17:08 to 19:03 |
| Issue → receipt (median) | 88 min | 200 min (86 min counting from 19:00) |
| Peak receipt | ~5,000/min (18:10–19:20) | ~5,800/min (20:20–21:00) |
| Interruptions | 19:32–19:59 nothing received; ~500/min from 20:03 to 20:43 | None after 19:03 |
| 90% received at | ~20:10 | ~21:00 |
1st round. The flow rose to a plateau of about 5,000 reports per minute and dropped twice: a brief dip at 18:02–18:08, and the stoppage from 19:22 to 20:47, linked to the failure that the TSE acknowledged. In that interval the queue stalled at about 71,000 reports and was only cleared close to 21:00.
2nd round. With voting extended, 1,868 reports (776 from abroad) were received between 17:05 and 17:07, and the rest were held until 19:03. From then on the pace grew gradually until 20:10 and remained steady at 5,300 to 5,800 per minute until the queue ran out, around 21:05. This shape, a rise followed by a plateau, is that of a queue being emptied at the system’s capacity limit. There was no interruption.
Order of arrival. States with faster transmission networks arrived first, in both rounds: DF, TO, PB and AM at the start, and BA, SP, SE and RJ at the end. The correlation between the states’ order of arrival in the two rounds is 0.72. Section by section, those that arrived early in the 1st round also arrived early in the 2nd (correlation of 0.56, reaching 0.7 in PR and RO). This order explains the changes in the lead. At 19:40, when Flávio moved ahead, the South made up 25% of the reports arriving and the Southeast 16%. At 21:00, the Southeast made up 72%, driven by SP and RJ, and the South 2%. The lowest correlation between rounds appears in SE, PE, BA and PB, states with more sections open after regular hours.
The log of each voting machine records the time at which each voter’s vote was counted, without the chosen candidate. The logs of all 2nd-round sections were read: 499,177 of 499,205. The other 28, 27 of them abroad, have no published log. Times are Brasília time.
| Sections (closing) | Sections read | Voters that day | Voted after 17:00 | Voted after 19:00 |
|---|---|---|---|---|
| Up to 17:00 | 125,652 | 31,608,558 | 328 | 0 |
| 17:01 to 17:14 | 364,354 | 93,998,926 | 28,677 | 0 |
| 17:15 to 18:59 | 2,819 | 766,482 | 1,267 | 0 |
| 19:00 or later | 6,352 | 1,861,259 | 4,569 | 13 |
| Brazil | 499,177 | 128,235,225 | 34,841 | 13 |
Reading. 34,841 voters voted after 17:00 nationwide (0.03% of turnout), and 13 voted after 19:00. The 328 in sections that closed by 17:00 voted within the 17:00 minute itself. In the 6,352 sections that stayed open until 19:00 or later, 99.75% of voters voted before 17:00; the last vote was at 16:59 in the typical section and at 18:29 at the 90th percentile. After 17:00, 16.9% of voters were authorized without biometrics; before 17:00, 12.7%. In the sections open until 19:00 or later, the proportions are 12.8% after 17:00 and 12.9% for the whole day. The previous sample-based estimate (about 39,000, 95% interval 34,000 to 44,000) was replaced by this complete count.
Log × report. In 499,170 of the 499,177 sections, the number of votes counted in the log equals the turnout in the voting machine report. In the remaining 7, the difference comes from the content of the published log file. In 2 sections with a contingency (backup) machine, the file contains only the replacement machine’s log, without the original’s. In 1, it also contains the log of another machine, which is neither the expected one nor the one that generated the report; the machine that generated the report records the same number as the report. In 3, one vote appears as confirmed for President without the event "O voto do eleitor foi computado" (the voter’s vote was counted). In 1, the sum of the logs is 2 votes below the report. The details of each, machine by machine, are in the observacao column of the logs_urna table.
Each voting machine receives a load code at the public loading and sealing ceremony, about a month before the election. The TSE publishes the expected machine (which machine was prepared for each section) and the actual machine (which machine generated the counted report). The printed report carries the same codes, so anyone can check the link between paper, machine and database.
| Field | Printed report | TSE database | Expected machine |
|---|---|---|---|
| Voting machine | 01669088 | 1669088 | 1669088 |
| Load code | 055.578.706.355.497.755.384.336 | identical | identical |
| Load date | – | Sep 25, 2026 09:47 | Sep 25, 2026 09:47 |
| Opening / closing | 08:00:01 / 17:01:34 | 08:00:01 / 17:01:34 | – |
| Eligible / turnout | 339 / 285 | 339 / 285 | – |
| Biometric / biographic authorization / no biometrics | 268 / 13 / 4 | – / 13 / – | – |
| Lula / Flávio Bolsonaro | 91 / 180 | 91 / 180 | – |
| Votes counted in the voting machine log | – | 285, the last one at 16:51 | – |
The load code history has a single line, that is, the same machine operated all day, which the log confirms. Blank (7) and null (7) votes complete the 285 votes. In the 1st round, the same section gave Lula 31.8% against Flávio, and in the 2nd round 33.6%.
| Actual machine compared with the expected one | Sections | % |
|---|---|---|
| Same machine and same load | 496,486 | 99.45% |
| Contingency (backup) machine, with official record (divergence type "C") | 2,671 | 0.54% |
| Different machine, no contingency record | 44 | 0.009% |
The 44 cases without an explanation in the open data. The machine used was not the one expected for the section, there was no swap between sections at the same polling place, and the Oct 25 machine correspondence was not updated. Twenty-one of these machines are on the zone’s list of contingency machines, but with a different load code, which suggests reloading. The other 23 do not appear on any public list. The explanation, if there is one, is in the polling station minutes or in the records of the electoral registry office. The result in these sections follows the national pattern: Lula’s median change between rounds was +2.9 points (between −2.9 and +7.8). Combined, they gave Lula a net margin of 1,654 votes. It is a point that party inspectors can take to the TRE (Regional Electoral Court).
| 1st round: Lula | 1st round: Flávio | 2nd round: Lula | 2nd round: Flávio | |
|---|---|---|---|---|
| More than 90% of valid votes | 3,639 | 184 | 6,816 | 378 |
| More than 90% of all votes | 1,700 | 86 | 4,198 | 238 |
| 100% of valid votes | 38 | 2 | 106 | 4 |
| 100% of the total (no blank or null votes) | 17 | 0 | 29 | 1 |
| Sections in which the candidate had | Lula | Flávio | Ratio |
|---|---|---|---|
| more than 60% of valid votes | 158,443 | 132,457 | 1.2 |
| more than 70% | 87,567 | 44,989 | 1.9 |
| more than 80% | 35,712 | 7,175 | 5.0 |
| more than 90% | 6,816 | 378 | 18 |
| more than 95% | 1,728 | 41 | 42 |
Reading. Sections above 90% are 1.4% of the total, and those at 100% are 0.02%. The vote for Lula is more geographically concentrated: interior of MA (1,549 sections above 90%), BA (1,345), PI (870), PE (667) and CE (662). The vote for Flávio is strong across a wide territory, but less homogeneous: even in RS and SC, the sections above 90% number 116 and 61. When one side has a longer tail, the ratio between the candidates grows continuously up to the extreme. This is an effect of the shape of the distribution, not an isolated jump.
Sections with 100% are small: Lula’s had an average of 140 valid votes, and 18 of them fewer than 50. The pattern already existed in the 1st round, with 38 sections at 100% for Lula even with ten other candidates in the race. Of the 6,816 sections above 90% for Lula in the 2nd round, 5,343 already gave him more than 90%, against Flávio, in the 1st round.
| Candidate | State | Municipality | Zone | Section | Valid votes | Blank + null | Same candidate in the 1st round* |
|---|---|---|---|---|---|---|---|
| Flávio | PA | Chaves | 17 | 41 | 48 | 1 | 100.0% |
| Flávio | PA | Jacareacanga | 102 | 44 | 50 | 0 | 100.0% |
| Flávio | RS | Arroio Do Padre | 34 | 433 | 116 | 2 | 100.0% |
| Flávio | RS | Cândido Godói | 166 | 81 | 82 | 3 | 100.0% |
| Lula | AC | Cruzeiro Do Sul | 4 | 457 | 137 | 14 | 100.0% |
| Lula | AC | Jordão | 5 | 65 | 126 | 7 | 99.2% |
| Lula | AC | Jordão | 5 | 125 | 123 | 5 | 97.2% |
| Lula | AM | Atalaia Do Norte | 42 | 26 | 302 | 7 | 99.6% |
| Lula | AM | Atalaia Do Norte | 42 | 28 | 136 | 1 | 99.2% |
| Lula | AM | Atalaia Do Norte | 42 | 29 | 325 | 10 | 98.6% |
| Lula | AM | Atalaia Do Norte | 42 | 30 | 142 | 2 | 97.8% |
| Lula | AM | Atalaia Do Norte | 42 | 37 | 122 | 6 | 100.0% |
| Lula | AM | Barreirinha | 26 | 62 | 261 | 11 | 100.0% |
| Lula | AM | Benjamin Constant | 20 | 89 | 238 | 8 | 100.0% |
| Lula | AM | Benjamin Constant | 20 | 117 | 231 | 12 | 99.6% |
| Lula | AM | Carauari | 21 | 96 | 113 | 0 | 99.1% |
| Lula | AM | Japurá | 48 | 12 | 224 | 8 | 100.0% |
| Lula | AM | Juruá | 50 | 19 | 149 | 19 | 97.7% |
| Lula | AM | Maués | 5 | 176 | 333 | 4 | 95.1% |
| Lula | AM | Maués | 5 | 179 | 123 | 1 | 99.2% |
| Lula | AM | Parintins | 4 | 130 | 220 | 5 | 98.8% |
| Lula | AM | Parintins | 4 | 280 | 88 | 1 | 100.0% |
| Lula | AM | Santa Isabel Do Rio Negro | 30 | 22 | 236 | 14 | 100.0% |
| Lula | AM | Santa Isabel Do Rio Negro | 30 | 26 | 229 | 16 | 100.0% |
| Lula | AM | Santa Isabel Do Rio Negro | 30 | 30 | 72 | 4 | 98.1% |
| Lula | AM | Santo Antônio Do Içá | 47 | 9 | 329 | 1 | 98.8% |
| Lula | AM | Santo Antônio Do Içá | 47 | 87 | 315 | 1 | 99.4% |
| Lula | AM | São Gabriel Da Cachoeira | 19 | 1 | 167 | 5 | 99.4% |
| Lula | AM | São Gabriel Da Cachoeira | 19 | 65 | 224 | 7 | 100.0% |
| Lula | AM | São Gabriel Da Cachoeira | 19 | 87 | 222 | 1 | 100.0% |
| Lula | AM | São Gabriel Da Cachoeira | 19 | 92 | 215 | 4 | 100.0% |
| Lula | AM | São Gabriel Da Cachoeira | 19 | 120 | 126 | 1 | 100.0% |
| Lula | AM | São Paulo De Olivença | 22 | 71 | 298 | 7 | 99.7% |
| Lula | AM | São Paulo De Olivença | 22 | 114 | 244 | 7 | 100.0% |
| Lula | AM | Tabatinga | 36 | 61 | 354 | 11 | 99.2% |
| Lula | AM | Tabatinga | 36 | 96 | 338 | 9 | 100.0% |
| Lula | AM | Urucurituba | 3 | 252 | 101 | 2 | 96.6% |
| Lula | BA | Barra Do Mendes | 176 | 151 | 69 | 2 | 100.0% |
| Lula | BA | Iaçu | 193 | 116 | 40 | 4 | 100.0% |
| Lula | BA | Sento Sé | 96 | 119 | 62 | 6 | 100.0% |
| Lula | BA | Érico Cardoso | 111 | 250 | 44 | 0 | 100.0% |
| Lula | CE | Aquiraz | 66 | 334 | 32 | 1 | 93.3% |
| Lula | CE | Poranga | 40 | 208 | 54 | 0 | 100.0% |
| Lula | ES | Aracruz | 20 | 232 | 41 | 0 | 100.0% |
| Lula | MA | Alcântara | 52 | 85 | 79 | 3 | 100.0% |
| Lula | MA | Alcântara | 52 | 86 | 44 | 0 | 97.8% |
| Lula | MA | Barreirinhas | 56 | 254 | 95 | 4 | 100.0% |
| Lula | MA | Cururupu | 14 | 195 | 54 | 0 | 100.0% |
| Lula | MA | Grajaú | 15 | 405 | 102 | 3 | 100.0% |
| Lula | MA | Maranhãozinho | 101 | 78 | 176 | 5 | 100.0% |
| Lula | MA | Montes Altos | 103 | 80 | 298 | 0 | 99.3% |
| Lula | MA | Primeira Cruz | 32 | 90 | 42 | 5 | 97.9% |
| Lula | MA | Primeira Cruz | 32 | 193 | 42 | 1 | 98.0% |
| Lula | MA | Santa Helena | 83 | 170 | 54 | 0 | 100.0% |
| Lula | MA | Santa Helena | 83 | 179 | 55 | 1 | 100.0% |
| Lula | MA | Serrano Do Maranhão | 107 | 87 | 83 | 1 | 96.5% |
| Lula | MA | Serrano Do Maranhão | 107 | 89 | 74 | 1 | 98.7% |
| Lula | MA | São Bento | 38 | 167 | 96 | 1 | 97.9% |
| Lula | MA | Turiaçu | 39 | 58 | 164 | 2 | 98.8% |
| Lula | MA | Turiaçu | 39 | 162 | 157 | 1 | 99.4% |
| Lula | MA | Turiaçu | 39 | 195 | 73 | 1 | 98.6% |
| Lula | MA | Turiaçu | 39 | 206 | 91 | 1 | 94.5% |
| Lula | MA | Viana | 20 | 258 | 100 | 1 | 99.0% |
| Lula | MA | Água Doce Do Maranhão | 12 | 145 | 189 | 4 | 97.7% |
| Lula | MG | Luislândia | 50 | 224 | 69 | 2 | 100.0% |
| Lula | MG | Salinas | 244 | 256 | 47 | 2 | 100.0% |
| Lula | MS | Aral Moreira | 19 | 313 | 56 | 0 | 100.0% |
| Lula | MT | Barra Do Garças | 9 | 531 | 119 | 4 | 97.3% |
| Lula | MT | Confresa | 28 | 200 | 309 | 0 | 100.0% |
| Lula | MT | Guarantã Do Norte | 44 | 284 | 145 | 0 | 98.0% |
| Lula | MT | Peixoto De Azevedo | 33 | 255 | 179 | 2 | 100.0% |
| Lula | MT | Porto Alegre Do Norte | 28 | 191 | 61 | 0 | 100.0% |
| Lula | PA | Alenquer | 21 | 234 | 60 | 0 | 97.0% |
| Lula | PA | Almeirim | 55 | 128 | 156 | 1 | 100.0% |
| Lula | PA | Altamira | 18 | 516 | 52 | 1 | 100.0% |
| Lula | PA | Altamira | 18 | 519 | 35 | 0 | 100.0% |
| Lula | PA | Aveiro | 34 | 660 | 106 | 0 | 100.0% |
| Lula | PA | Moju | 37 | 120 | 41 | 0 | 94.1% |
| Lula | PA | Novo Repartimento | 101 | 152 | 18 | 0 | 100.0% |
| Lula | PA | Oriximiná | 38 | 243 | 35 | 1 | 97.4% |
| Lula | PA | Oriximiná | 38 | 259 | 133 | 0 | 98.6% |
| Lula | PA | Oriximiná | 38 | 260 | 152 | 0 | 100.0% |
| Lula | PA | Paragominas | 42 | 214 | 54 | 1 | 97.9% |
| Lula | PA | Parauapebas | 106 | 330 | 212 | 0 | 98.4% |
| Lula | PA | Parauapebas | 106 | 365 | 197 | 1 | 100.0% |
| Lula | PA | São Félix Do Xingu | 53 | 217 | 145 | 0 | 99.2% |
| Lula | PA | São Félix Do Xingu | 53 | 218 | 273 | 0 | 99.5% |
| Lula | PA | Viseu | 14 | 236 | 64 | 4 | 100.0% |
| Lula | PB | Sapé | 4 | 290 | 10 | 0 | 91.7% |
| Lula | PE | Floresta | 72 | 119 | 227 | 3 | 99.5% |
| Lula | PI | Teresina | 97 | 168 | 16 | 0 | 100.0% |
| Lula | PR | Ortigueira | 167 | 96 | 314 | 3 | 99.7% |
| Lula | RO | Porto Velho | 6 | 516 | 104 | 2 | 100.0% |
| Lula | RR | Caroebe | 4 | 141 | 44 | 0 | 97.1% |
| Lula | RR | Uiramutã | 7 | 61 | 189 | 0 | 100.0% |
| Lula | RR | Uiramutã | 7 | 62 | 216 | 1 | 99.5% |
| Lula | RR | Uiramutã | 7 | 63 | 256 | 0 | 99.2% |
| Lula | RR | Uiramutã | 7 | 104 | 138 | 1 | 99.3% |
| Lula | RR | Uiramutã | 7 | 108 | 126 | 2 | 99.2% |
| Lula | RR | Uiramutã | 7 | 113 | 190 | 2 | 98.4% |
| Lula | RR | Uiramutã | 7 | 124 | 48 | 0 | 100.0% |
| Lula | RS | Viamão | 59 | 590 | 39 | 0 | 97.3% |
| Lula | RS | Viamão | 59 | 591 | 65 | 1 | 100.0% |
| Lula | TO | Goiatins | 32 | 60 | 108 | 14 | 100.0% |
| Lula | TO | Goiatins | 32 | 61 | 162 | 18 | 99.4% |
| Lula | TO | Goiatins | 32 | 84 | 174 | 8 | 99.4% |
| Lula | TO | Paranã | 18 | 87 | 33 | 2 | 100.0% |
| Lula | TO | Tocantinópolis | 9 | 184 | 59 | 3 | 100.0% |
| Lula | TO | Tocantinópolis | 9 | 192 | 155 | 19 | 100.0% |
| Lula | TO | Tocantínia | 5 | 55 | 196 | 5 | 99.5% |
* Candidate’s percentage in the race between Lula and Flávio, in the same section, on October 4.
Percentages of valid votes. "Lula’s change" compares the 2nd round with Lula’s share in the race between Lula and Flávio only in the 1st round, which isolates the effect of the votes that came from other candidates, blank and null votes, and abstention. Highlighted: the leader in each round. "Net margin" is Lula’s vote difference over Flávio in the 2nd round.
| State | Lula 1st | Flávio 1st | Others 1st | Lula 2nd | Flávio 2nd | Lula’s change (pts) | Votes gained: Lula | Votes gained: Flávio | Turnout | Net margin in the 2nd round |
|---|---|---|---|---|---|---|---|---|---|---|
| Piauí | 71.0% | 24.1% | 4.9% | 75.9% | 24.1% | +1.2 | +130,279 | +8,831 | 82.8% → 82.8% | +1,128,130 |
| Bahia | 66.2% | 28.5% | 5.3% | 71.3% | 28.7% | +1.4 | +820,487 | +166,176 | 80.0% → 83.3% | +3,876,497 |
| Maranhão | 64.0% | 30.9% | 5.1% | 69.5% | 30.5% | +2.1 | +241,930 | -9,069 | 80.3% → 79.6% | +1,578,260 |
| Sergipe | 62.7% | 30.6% | 6.6% | 69.5% | 30.5% | +2.3 | +133,022 | +15,515 | 82.7% → 84.3% | +555,687 |
| Pernambuco | 63.5% | 31.0% | 5.5% | 69.2% | 30.8% | +2.0 | +563,542 | +94,511 | 81.8% → 84.8% | +2,284,959 |
| Ceará | 63.3% | 31.3% | 5.4% | 68.9% | 31.1% | +2.0 | +480,861 | +62,628 | 84.5% → 86.1% | +2,216,646 |
| Paraíba | 61.3% | 33.1% | 5.6% | 67.5% | 32.5% | +2.5 | +252,932 | +33,833 | 82.6% → 84.5% | +928,849 |
| Rio Grande do Norte | 59.7% | 34.8% | 5.5% | 65.7% | 34.3% | +2.5 | +175,633 | +16,916 | 81.6% → 83.9% | +676,187 |
| Alagoas | 54.7% | 40.4% | 4.8% | 60.8% | 39.2% | +3.3 | +157,162 | +8,422 | 79.4% → 79.9% | +408,481 |
| Pará | 49.9% | 44.5% | 5.6% | 55.0% | 45.0% | +2.1 | +263,212 | +35,983 | 80.9% → 79.7% | +490,509 |
| Amazonas | 48.2% | 45.0% | 6.8% | 54.0% | 46.0% | +2.3 | +98,787 | -1,519 | 79.8% → 78.3% | +170,538 |
| Abroad | 47.5% | 43.5% | 9.0% | 53.9% | 46.1% | +1.6 | +42,767 | +27,597 | 37.3% → 41.6% | +28,657 |
| Amapá | 45.7% | 45.7% | 8.6% | 52.9% | 47.1% | +2.9 | +10,465 | -13,604 | 82.6% → 74.5% | +24,294 |
| Minas Gerais switched | 43.3% | 48.2% | 8.4% | 50.4% | 49.6% | +3.1 | +1,162,163 | +464,238 | 77.2% → 79.7% | +109,313 |
| Tocantins | 43.4% | 50.4% | 6.1% | 48.6% | 51.4% | +2.4 | +38,953 | -1,405 | 81.7% → 80.8% | -24,954 |
| Rio de Janeiro | 39.4% | 53.0% | 7.6% | 46.9% | 53.1% | +4.3 | +872,372 | +202,189 | 76.7% → 78.4% | -603,640 |
| São Paulo | 38.2% | 51.9% | 9.9% | 46.2% | 53.8% | +3.8 | +2,613,861 | +1,217,155 | 77.5% → 80.2% | -2,019,904 |
| Distrito Federal | 38.1% | 51.3% | 10.6% | 45.7% | 54.3% | +3.1 | +149,597 | +69,926 | 81.1% → 82.7% | -154,318 |
| Espírito Santo | 37.8% | 54.8% | 7.5% | 43.6% | 56.4% | +2.8 | +151,937 | +61,310 | 78.6% → 80.5% | -292,539 |
| Rio Grande do Sul | 35.7% | 55.6% | 8.6% | 42.2% | 57.8% | +3.1 | +529,793 | +300,595 | 78.6% → 80.8% | -1,049,826 |
| Mato Grosso do Sul | 34.7% | 58.6% | 6.7% | 40.4% | 59.6% | +3.2 | +112,118 | +54,541 | 76.1% → 78.8% | -298,919 |
| Goiás | 31.1% | 53.6% | 15.3% | 40.3% | 59.7% | +3.7 | +396,675 | +293,446 | 78.2% → 79.7% | -759,779 |
| Paraná | 31.2% | 59.9% | 8.9% | 37.4% | 62.6% | +3.2 | +511,907 | +346,099 | 79.4% → 82.0% | -1,724,940 |
| Mato Grosso | 29.2% | 65.1% | 5.7% | 33.9% | 66.1% | +3.0 | +112,486 | +52,518 | 77.8% → 79.1% | -656,932 |
| Acre | 28.7% | 64.6% | 6.7% | 33.4% | 66.6% | +2.6 | +9,743 | -15,092 | 79.6% → 73.9% | -143,202 |
| Santa Catarina | 25.0% | 66.7% | 8.3% | 30.6% | 69.4% | +3.3 | +291,146 | +220,051 | 81.1% → 83.0% | -1,801,757 |
| Rondônia | 25.9% | 67.4% | 6.7% | 30.4% | 69.6% | +2.7 | +43,779 | +21,394 | 78.3% → 78.1% | -379,936 |
| Roraima | 22.9% | 71.1% | 6.1% | 27.5% | 72.5% | +3.2 | +9,085 | -11,647 | 82.9% → 76.9% | -136,170 |
Only one state switched sides: Minas Gerais, from Flávio (48.2% against 43.3%) in the 1st round to Lula (50.4%) in the 2nd, with a net margin of 109,000 votes. Amapá had tied in the 1st round, with 225 votes in Lula’s favor, and gave him 52.9% in the 2nd.
Lula grew in every state, between +1.2 points (PI) and +4.3 points (RJ) in the race between the two. The gain was smaller where he was already very strong and there were few voters of other candidates (PI, BA). It was larger in the Southeast, the South and Goiás, where the other candidates had 8% to 15% in the 1st round. In Goiás, Ronaldo Caiado’s state, the others totaled 15.3%, and the two finalists split those votes: Lula gained 397,000 and Flávio 293,000.
Flávio also grew in almost every state. The largest gains were in SP (1.22 million), MG (464,000), PR (346,000) and RS (301,000). He lost votes in absolute terms in MA, AM, TO, AP, AC and RR, where turnout fell. Turnout rose in most states, especially in BA (+3.3 points) and PE (+3.0), and fell in the North, notably in AP (−8.1), RR (−6.0) and AC (−5.7).
| 1st round | 2nd round | Change | |
|---|---|---|---|
| Lula | 53,879,538 | 64,256,232 | +10,376,694 |
| Flávio Bolsonaro | 56,104,503 | 59,826,041 | +3,721,538 |
| Cury, Renan, Caiado and others | 9,322,993 | – | −9,322,993 |
| Null | 3,669,003 | 2,723,305 | −945,698 |
| Blank | 2,300,798 | 1,430,496 | −870,302 |
| Abstention | 33,469,172 | 30,508,903 | −2,960,269 |
| Origin | → Lula | → Flávio | → Blank or null | → Abstention |
|---|---|---|---|---|
| Flávio (56.1M) | 0.2% | 98.8% | 0.4% | 0.6% |
| Lula (53.9M) | 98.9% | 0.0% | 0.1% | 1.0% |
| Augusto Cury (3.45M) | 53% | 28% | 15% | 4% |
| Renan Santos (2.68M) | 40% | 35% | 17% | 9% |
| Ronaldo Caiado (2.61M) | 33% | 52% | 11% | 4% |
| Other candidates (0.59M) | 31% | 52% | 12% | 5% |
| Blank (2.30M) | 68% | 2% | 28% | 2% |
| Null (3.67M) | 59% | 2% | 38% | 1% |
| Abstention (33.5M) | 10% | 2% | 1% | 87% |
Reading. Voters of the other candidates split almost in half: about 3.95 million went to Lula and 3.55 million to Flávio. The final difference came from those who did not choose a candidate in the 1st round. About 3.7 million former blank and null voters and 3.2 million former abstainers voted for Lula, against 0.1 and 0.8 million for Flávio. The return to the polls to vote for Lula was higher in the Northeast (12.8% of those absent in the 1st round) and in the South (11.5%). For Flávio, it was higher in the Southeast (3.6%).
Degree of confidence. The model reproduces the actual 2nd-round totals with an error below 0.1%, and the large flows coincide in the state-level version and the national version. Small groups are less precise: blank → Lula varied from 68% to 78% between the two versions, and Renan → Flávio from 35% to 46%. The flows of blank, null and abstention to Lula are the most subject to the ecological bias described in the methodology.
The document uses the same voting machine report files as this page. Each data-based claim was redone here.
| Claim | What the data show |
|---|---|
| Flávio won with 52.39% in the machines closed by 17:00 | The number only comes out when the closing time is read in local time, without converting the time zone. That way, sections in Acre (15:00) and in AM, MT, MS, RO and RR (16:00) count as "on time", but they closed at the same instant as those closing at 17:00 in Brasília. Closing between 17:01 and 17:14 is the regular time, with a line. Within the same municipality, the difference between 17:00 and 17:14 is 0.2 point, and the same sections already voted this way in the 1st round. |
| Millions voted during the extension, with pro-Lula spikes | The 6,300 sections that closed after 19:00 had 1.86 million voters over the whole day. The voting machine logs show that only 4,569 of them voted after 17:00, and 13 after 19:00. Nationwide, there were about 39,000 votes after 17:00. Lula had a net margin of ~186,000 votes in these sections, counting the whole day, against a final difference of 4.43 million. The "Maranhão 83%" comes from 3 sections, with 623 votes. |
| 8.6 million voted without biometrics, almost double the margin | The number is correct (6.73%). It corresponds to the "biographic authorization" on the printed report, identification by the data on the voter’s document when the fingerprint is not recognized, but the rate was 6.66% in the 1st round. In the same section, the rates in the two rounds have a correlation of 0.82, which indicates a characteristic of the location. The correlation with the vote for Lula, within the municipality, is 0.01. The increase in this type of authorization between rounds is not associated with Lula’s gain (−0.02 point per +10 points). RS and SC, where Flávio won, are among the highest rates. Sections closed after 19:00 had a below-average rate (6.35%). |
| Nearly unanimous sections: 18 for Lula for every 1 for Flávio | The count matches (6,816 against 378 sections above 90%). But 5,343 of these sections already gave Lula more than 90% in the 1st round, and they are concentrated in the interior of MA, BA, PI, PE and CE. |
| Benford’s law test | Both candidates "fail" almost equally: about 61% of the counts start with 1, against 30% under Benford’s law. This happens because sections have between 233 and 389 voters (10th to 90th percentile). The first-digit test does not apply to this type of data. |
| Data withheld for 72 hours | The 2nd-round files were added to the open data portal on Oct 27, about two days after the election, as in the 1st round (Oct 6). During the count, each report could be looked up on the Portal Resultados. |
It proves: the sum of the 499,000 published reports is equal, vote for vote, to the official result in both rounds. In other words, the proclaimed total is exactly the sum of the reports. In 499,170 of the 499,177 2nd-round sections with a published log, the number of votes recorded in the log is also equal to the turnout in the report; in the other 7, the difference comes from the content of the log file (detailed in the logs section). In 99.99% of sections, the machine that generated the report is the one that was prepared and sealed for it, or an officially recorded contingency (backup) machine. One printed report, checked field by field, is identical to the published file. The patterns pointed out as anomalies are explained by the data themselves (time zone, geography, section size), and they repeat in the 1st round.
It does not prove: that each report faithfully records the votes entered on the machine. The log confirms how many people voted, not whom they voted for. That requires other checks, such as comparing printed reports posted at the sections with the published ones, verifying the digital signatures of the voting machine files, comparing the Digital Vote Record (Registro Digital do Voto) with the report, and consulting the integrity tests carried out on election day. Absence of a statistical anomaly is not proof of absence of fraud, just as a statistical anomaly, on its own, is not proof of fraud.
1. Data. Web voting machine report files (bweb_1t_* and bweb_2t_*) from the 27 states (UFs) and from abroad, downloaded from the TSE Open Data Portal on Oct 29, 2026, with integrity verified. Only the rows for the office of President were used (CD_CARGO_PERGUNTA = 1), aggregated by section (state, zone and section): 499,206 sections in the 1st round and 499,205 in the 2nd.
2. Cross-check. The sum of votes per candidate, blank, null and turnout was compared with the TSE’s official national result file (br-c0001-e006257-u.json and br-c0001-e006258-u.json). The totals match exactly in both rounds.
3. Times. DT_BU_RECEBIDO is in Brasília time: the first report arrives at 17:05 in all states. DT_ENCERRAMENTO is in the machine’s local time. To convert, each municipality’s time zone was inferred from the median local closing time (15:00, 16:00 or 17:00 local time correspond to 17:00 in Brasília), which identifies AC and part of AM in UTC−5 and AM, MT, MS, RO and RR in UTC−4. Twenty-seven sections without a closing time were left out of the breakdowns by time.
4. Count simulation. Each report enters the total at the minute of DT_BU_RECEBIDO. The cumulative series, national and by state, run from 17:00 to 23:30. The election was considered mathematically decided when the difference between the two candidates exceeded the turnout not yet received.
5. Closing and vote. 2nd-round sections were grouped by closing minute in Brasília time. To separate the effect of the time from the effect of composition, each section was paired with itself in the 1st round, and the difference between groups was recalculated within each state and within each municipality. The within-municipality comparison is the average of the differences weighted by valid votes, considering the 5,157 municipalities with at least 500 valid votes in each group.
6. 1st-round pause. Reports received per minute were counted, looking for sequences with nothing received, and the percentage received and the score were calculated at the times of the official pause reported by the TSE (19:14 to 20:04).
7. Biometrics. QT_ELEI_BIOM_SEM_HABILITACAO is, by the TSE’s definition, the number of voters with registered biometrics who were authorized in another way. On the printed report, this number appears as "Biographic authorization", that is, identification by the data on the voter’s document. This was checked on a report from section 496, zone 16, Bom Jesus dos Perdões (SP): 13 on the printed report and 13 in the database. It does not include voters without registered biometrics, whom the printed report shows on a separate line. The rate is this number divided by turnout. Correlations weighted by valid votes were calculated between the rate and the vote for Lula, nationally and within each municipality (subtracting the municipality’s mean), and between the change in the rate and the change in Lula’s vote between rounds, in the same section.
8. Vote migration. Constrained ecological regression (Goodman’s method). For each state, the composition of each section’s eligible electorate in the 2nd round (Lula, Flávio, blank, null and abstention) was modeled as a combination of the composition in the 1st round (Flávio, Lula, Cury, Renan, Caiado, others, blank, null and abstention). Transfer rates lie between 0 and 1, and those of each origin sum to 1. Estimation is by least squares weighted by the eligible electorate, with SLSQP (SciPy). The flows of each state were summed for Brazil, and a single national regression served as a comparison. The main limitation is the ecological fallacy: the model assumes equal transfer rates within each state, and the individual vote is secret and cannot be observed.
9. Voting machine logs. For each section, the machine’s file index (…-aux.json) and the log (…-log.jez) were downloaded from the Portal Resultados (resultados.tse.jus.br/oficial/ele2026/arquivo-urna/3221). Only the lines from Oct 25, 2026 were considered, and each event "O voto do eleitor foi computado" (the voter’s vote was counted) was counted, with the time converted to Brasília time using the municipality’s time zone. The authorization type is that of the event "Tipo de habilitação do eleitor" (voter authorization type) immediately preceding each vote, and the absence of that event was counted as authorization without biometrics. When the file contains another compressed log inside it (contingency machines and also some conforming sections), all were read and repeated lines were removed. Universe: all 499,205 sections of the 2nd round; 28 have no published log (27 abroad). In the 7 sections where the log total differs from the report, the log was reread machine by machine, also counting "Voto confirmado para [Presidente]" (vote confirmed for President) and "Eleitor foi habilitado" (voter authorized) (scripts/logs_detalhe.py). Download: scripts/logs_todos.py, at a limited rate, pausing when the portal answers 429.
10. Transmission. For each section, the delay is DT_BU_RECEBIDO (Brasília) minus DT_EMISSAO_BU (local time converted to Brasília time). The queue at each minute is the number of reports already issued and not yet received. The order of arrival was compared between rounds using Spearman’s rank correlation: between states (median receipt time) and between sections, overall and within each state, considering in the 2nd round only reports received from 19:00 on. Sections abroad were left out. The regional composition and Lula’s percentage were calculated for the reports that arrived in each 10-minute window.
11. Machine × section correspondence. The "Correspondência efetivada" (actual machine; CEFT_2t_*, of Oct 26) and "Correspondência esperada" (expected machine; CESP_2t_*, of Oct 24 and 25) files for the 27 states and abroad were used. For each section, the expected and actual machine number and load code were compared, and the TP_DIVERGENCIA field was read (D: divergence; C: contingency; O: machine voided or not counted). In cases with a different machine and no recorded divergence, the actual machine was looked up as the expected machine of another section (to identify swaps) and in the list of contingency machines (ccont_2t_*). The printed report of section 496, zone 16, Bom Jesus dos Perdões (SP) was compared with the report file, with the correspondence files and with the machine log.
12. Benford. Distribution of the first digit of each candidate’s vote counts per section, compared with Benford’s law using the chi-square test.
How times were handled. In the TSE file, the machine closing time (DT_ENCERRAMENTO) is in the section’s local time. That is why Acre appears closing at 15:00 and MS, MT, RO and RR at 16:00. Here it was converted to Brasília time using each municipality’s time zone. The report receipt time (DT_BU_RECEBIDO) already comes in Brasília time.
Difference from the Resultados app. The simulation adds each report at the minute it arrived. The TSE published in processing cycles, so the percentages during the night may have appeared a few minutes later. The final totals match the official tally: 64,256,232 votes for Lula, 59,826,041 for Flávio and 128,236,074 voters.
Source: TSE, Open Data Portal, dataset “Resultados 2026 – Boletim de urna”, files bweb_2t_* generated on Oct 26, 2026.
A moment of prayer, every day.