Internal use · preparation for 2026 · 2022 runoff
The official 2022 count matches what the machines printed.
Words used on this page
- 13. The presidential candidate numbered 13.
- 22. The presidential candidate numbered 22.
- Section. One voting machine.
- Zone. A group of sections administered together.
- Valid vote. A vote for a candidate. A blank ballot and a null ballot are not valid votes.
- Share. A candidate’s votes divided by the valid votes.
- Gap. The 2020 model minus the older machine, in percentage points. 52% minus 50% is 2 points. Below zero means the 2020 model recorded a smaller share for 13, which is 22’s direction.
- UE2020. The official name of the 2020 model.
- TSE. The national elections court.
- Colors. Red is more for 13, and it is also the color of the older machines, which returned more of the vote for 13. Blue is more for 22, and it is also the color of the 2020 model, which returned less for 13. Green is not a candidate: a round, a place, a distance, a share of machines, or a clock. Each figure has its own legend.
- Source. The TSE polling-station returns in this folder, the official list of machine serial ranges, and the section file kept with them.
How to read this
Two generations of machine, one count, and a comparison that only exists where a zone used both.
This page reads the official presidential returns of 2022, as preparation for watching 2026. It is not a finding that a manipulation produced the national result. The first page is the recount of the printed returns. The pages after this one say where each generation of machine was sent, what the vote looked like in each kind of place, and what remains when the two generations sat in the same electoral zone.
A section is one voting machine. A zone is the office that administers a group of sections. The country used two generations. The 2020 model, official name UE2020, is the newer one. The older generation is every model from before 2020. In the figures, red is the older machine and also a larger share for 13. Blue is the 2020 model and also a larger share for 22. Green is a place, a distance, a year, or a clock.
The machines were not placed by a draw. Most state courts gave an entire zone one generation. São Paulo and Tocantins put both generations in every zone. A few other states mixed a small number of zones. In the rest of the country the two generations were in different places, so a national comparison of one generation against the other mixes the machine with the place. The comparison that removes the politics of the zone is the one inside a zone that used both. That set of zones is the zones the courts actually mixed. It is not a sample drawn from the whole country. A neighborhood inside a mixed zone can still differ, and the voters at a single machine are not all alike. Two machines in one zone can sit in different parts of town.
A valid vote is a vote for a candidate. A blank ballot and a null ballot were cast, and they are counted apart. Abstention is a registered voter who did not appear. A share is a candidate’s votes divided by the valid votes. A gap, where the later pages use the word, is the 2020 model’s share for 13 minus the older machine’s share for 13, in percentage points. Below zero, the 2020 model recorded less for 13. A machine pattern counts only when it has the same sign on 2 October and on 30 October. There was no time to reprogram the fleet between those two dates.
On a vertical chart, the vertical axis is named on the chart itself. A tall bar is the quantity named there, usually valid votes or a count of zones, and the horizontal axis is the share for 13 or the gap. A curve of the whole country is not expected to be a single bell. Some regions vote heavily for 13 and others do not, and adding them produces two peaks. Leading-digit rules are not used. Sections do not all have the same number of voters, and that is enough to put those rules aside for an election count.
Check
What was re-counted, and against what
The current TSE download server refused a fresh copy of these files (HTTP 403). Each file was checked against the fingerprint saved beside it in November 2022. That fingerprint is a sha512 digest: a long code that changes if a single byte of the file changes. The serial-number ranges are the 7 November 2022 copy of the same official list. The votes, added again from the printed returns, repeat the 6 December 2022 proclamation to the vote.
Protocol
Three calculations. Each one answers one question.
State courts · how the machines were assigned
Each state court assigned a generation to the whole zone. Two states mixed every zone.
Allocation by state
The 2020 model went to the big city. Most zones received one generation.
Below zero, the 2020 model returned less for 13 than the older machine in the same zone. Every runoff size band is negative. It is about 0.9 points in cities of a million or more and about 2.1 in towns under 50,000. It does not rise in every smaller band.
Every electoral zone
The zone’s voters, the municipalities it covers, and the straight-line distance to the capital.
Municipality
The same country, one municipality at a time.
Each dot is a municipality, placed at the geographic center published by IBGE, the national statistics office. The size of the dot follows valid votes. The gap inside the municipality exists only where both generations were used. Everywhere else those dots drop out of the gap view. This map uses the municipality’s published center. The polling-place register is in the folder and is described on the open page. This map still cannot separate one neighborhood from another inside the city. Closer zoom draws the municipality’s outline around the dot.
The result drive · the junta · satellite
The flash drive goes to the zone’s junta, unless a named point transmits it from somewhere else.
The shape of the vote · two kinds of zone
Zones that used only the older machine voted more for 13. Zones that used only the 2020 model voted less. These are different places.
Each slice is 2.5 points of the share for 13. The area is valid votes, so a tall curve is many votes, not many zones. Red is zones that used only older machines. Blue is zones that used only the 2020 model. The red curve sits to the right: those zones voted more for 13. This chart is the two kinds of zone. The paragraph above separates that picture from the comparison inside one zone.
Six ways of grouping the machines
The same votes, cut six ways. Turn a group on to lay its curve on the chart.
Vertical axis: valid votes in that slice of the share for 13. Horizontal axis: the share itself. A tall stretch is many votes, not many sections. The two curves drawn at the start are the zones with only older machines and the zones with only the 2020 model.
The question is whether the mixed zones are enough to compare the two machines, and what the vote looks like where a comparison is impossible. The mixed zones are every zone the state courts mixed. They are not a draw from the whole country. São Paulo and Tocantins are most of them. A zone that received only one generation is a different place, so that comparison does not identify the machine. Inside a mixed zone, the voters at one machine can still differ from the voters at the other.
An arithmetic comparison of places
How many votes for 13 sit in the older-only zones, above the share recorded where a 2020 model was in use.
The same curves, for the states switched on
The second peak is not in every state. Switch several states on at once. The curve is those states added together.
A section is one machine. A zone is the whole office. The section view can show two peaks because different towns are added together. The zone view asks whether the office itself, as one number, sits in that high band. The height is still valid votes, so a large zone is taller than a small one. Switch a state off and its votes leave the curve. The line under the chart names which of the states still on put their older-machine votes at 65% or more for 13. That is how the second peak is put together. A row in the table switches that state too.
Where the high share for 13 sits
Older-only zones at 65% or more for 13, and the nearest zone in the same state that had a 2020 model.
Inside the zone
Inside the zone, about 1.5 points less for 13 on the 2020 model. Most of these zones are in São Paulo. Outside São Paulo the gap is larger.
Each mixed zone counts once. A zone with almost no votes on one of the two machines cannot pull the average: the weight uses both sides, so the thinner side holds it down. The interval comes from drawing those zones again 2,000 times. The draw is fixed, so anyone can repeat it. The negative sign, less for 13 on the 2020 model, repeats. The size that matters is the 1.5 points and the interval around it. A state with no bar did not put both machines in the same zone.
First round
A zone whose two machines disagreed in the runoff already disagreed on 2 October.
Each dot is one electoral zone that used both machine generations. Horizontal axis: the gap on 2 October. Vertical axis: the gap on 30 October. The dashed line is where the two rounds are equal. Dark green is São Paulo. Pale green is every other state. Green marks a place, not a candidate and not a machine. A dot to the left and below the line had a gap toward 22 in both rounds. The first-round file matches the fingerprint saved with it, and its columns add up. It has not yet been checked line by line against the printed returns of 2 October.
Shape · both rounds
A section’s vote for 13 was not going to be a bell curve. The end bars collect every zone outside 15 points in that round. The next page names the zones that stay that far in both rounds.
The zones at the end of the gap chart
The zones where the two machines inside the same zone disagree by the most. The name appears on the mark.
The whole distribution · both rounds
The 2020 model sits below the older machine from the low end of the sections to the high end, in both rounds.
Each pair is one slice of the sections inside the zone. The upper bar is 2 October. The lower bar is 30 October. A bar to the left of zero is less for 13 on the 2020 model.
Abstention · 2018 and 2022
Abstention rose slightly from 2018 to 2022, and the rate varied less. The sections that jump in both rounds are slightly more common on the older machine.
Abstention is a registered voter who did not appear. A blank ballot and a null ballot were cast, and they are counted apart from abstention. The first chart is how widely the abstention rate spreads, in percentage points. The second chart is the share of sections whose change from 2018 exceeds three times the usual spread, in both rounds of 2022. A jump can be up or down. The average, stated under the chart, went up.
The table under the charts is four bands of the share for 13: under 20%, from 40% to 60%, from 80% to 90%, and 90% or more. The bands in between are left out so the high end can be set beside the middle. Blank is a cast ballot. Null ballots are not in this section file. Their national total is on the check page.
Governor in both rounds. The senate race is first-round only and does not count.
President against the governor of 13’s party, on the zones where that candidate ran, in both rounds.
In votes
Inside the zone, the gap is a few hundred thousand votes. The national margin is about ten times that.
The translation into votes uses the older machine’s share in the same zone as the reference. It is an accounting of the shift that was observed. It does not say the older machine is the true value, and it does not say the shift changed a ballot.
Every return · biometrics and opening
Of the people who turned up, this is the share who already had a fingerprint on file and were not released by it.
Machine log · sample of 648 sections
In the runoff, the two generations take almost the same few seconds. In this sample, no interval runs backward.
The log carries a poll worker’s registration number. That number was not kept. What was kept is the kind of event and the time. The sample was drawn before looking at the times: four sections in each of the 26 states and in the Federal District, by model and by third of the share for 13. The overseas file was not in that draw. All 648 downloaded. Blue is the 2020 model. Red is the older machine. Here the colors name the generations. The chart is a clock, not a vote.
Log · runoff · the clock and the candidate
The log records that a presidential vote was confirmed. It does not record 13 or 22.
Log · bands of the share for 13
A section that voted heavily for one candidate does not take longer to confirm the vote.
Logs · national · download finished
In the runoff, where 13 won the section, the median is one second slower. That comparison is not in the file for 2 October, so it does not count. Inside a mixed zone the 2020 model is faster, in both rounds.
The clock · the whole distribution, not the average
Most sections take a few seconds. The sections that are extreme in both rounds are the ones that count.
The chart is the distribution of the section’s median time, not the average alone. A time like this was not expected to be a bell curve: it is a duration, and it cannot be negative. A section counts as unusual only when the same mark appears on 2 October and on 30 October. The file does not keep the clock time of each vote, so a pile of votes in the last hour of the day cannot be counted. What can be counted is a section that is extremely fast, extremely slow, or still open very late, in both rounds.
The same zone, in an earlier election
Zones that sat with the same peers before 2022, and the ones that came apart.
Still open
What a count on election day in 2026 still needs.
For each section, on election day: machine model, serial number, electoral zone, polling place, map coordinate, opening time, closing time, voters who had a fingerprint on file and were not checked in with it, and the times from check-in to vote confirmation. No voter identification number and no name.
The calculation registered before the results is the gap inside the electoral zone, with the first round of the same section as the baseline. A difference that exists only in the runoff does not count: there was no time to reprogram the fleet between 2 October and 30 October. Still missing, and not in the 2022 files held here: the courthouse address of each junta, and each state court’s own list of transmission points, marked as ordinary internet or satellite.
Hypothesis · section size inside the zone, both rounds. Small minus large has the same sign in both rounds, and those intervals include zero. This does not raise the confidence that a manipulation produced the national result.
Inside 441 mixed zones the gap for 13, 2020 model minus the older machine, narrowed by 0.39 points from the first round to the runoff (interval 0.28 to 0.50), from −1.90 points on 2 October to −1.51 points on 30 October, so it was already present on 2 October, and this does not raise the confidence that a manipulation produced the national result.
The last digit of the count for 13 does not separate the machines: inside 465 mixed zones the distances are 0.0052 in the first round and 0.0076 in the runoff, and the shares of within-zone swaps at least that far are 0.862 and 0.377, neither below 0.01, and this does not raise the confidence that a manipulation produced the national result.
Hypothesis · 29 September 2026 · revised · not a finding
Summary of the current hypothesis — Grok-generated
This is a hypothesis, not a finding. Matching the printed bulletins to the national proclamation was the easy check, and it passed. It cannot see the question that matters. In 2022 the voter confirmed a choice on a screen. The machine stored a digital record. The voter took home no paper record of that choice that could be counted apart from the machine. The amendment that would have printed the vote failed in the Chamber of Deputies in August 2021: 229 in favor, 218 against, and 308 were required. The machine log does not store whether the vote was for 13 or for 22. The digital vote file is shuffled, and it is not tied to the voter or to the time of the vote. A program that showed one candidate and stored another would still print a coherent bulletin, and that bulletin would still match the national total. The check that looks at the screen is the integrity test. The report transcribed in this folder counts 580 sections in that paper-ballot test, in all 27 units of the federation, in both rounds: 191 chosen and 389 drawn on 2 October, and 184 chosen and 396 drawn in the runoff. It reports no inconsistencies. The 58 sections are a different test, a biometric pilot in 20 units of the federation, in both rounds, with adherence of about 13%, and that report calls the pilot inconclusive. A clean result on the filmed machines does not close the question for a rare or conditional divergence on the machines that were not filmed. The same report says the test does not reproduce ordinary use.
Confidence. High means I would be surprised if the next public file reversed it. Moderate means the number is stable and the cause is not. Low means I do not hold the claim.
High. The printed bulletin cannot reveal a split between the screen and the stored vote. That split was possible in the 2022 design. Older machines were concentrated outside the state capitals and in smaller municipalities. The gap inside the zone is real in both rounds, with the same sign: about 1.9 points less for 13 on 2 October and about 1.5 points less in the runoff. Less means the 2020 model minus the older machine. The pooled figure is not established in every mix of the two machines. It is established where the 2020 model is a minority of the zone’s valid votes. Where the split is nearer even, the interval includes zero. It is a shift of the whole distribution, with the 2020 model’s results packed a little tighter, in both rounds. The heavy tail is the same zones in both rounds, and the average does not depend on them. In the runoff log, where 13 won the section the median is one second slower than where 22 won. That comparison is not in the file for 2 October, so it does not count. Inside a mixed zone the 2020 model is faster in both rounds, and the log’s count of computed votes does not run ahead of the bulletin.
Moderate. Logistics, rather than a list of political targets, is the main reason the machines were placed where they were. State courts had ordinary reasons to put the new fleet where the queues were. The neighborhood that received one generation remains a possible account of the gap left inside the zone. The 2022 polling-place coordinates are now in this folder. In the mixed zones that can be compared, the two generations sit apart at the scale of a neighborhood, which fits a logistics account. That does not identify the neighborhood as the cause. A difference that belongs to the older generation of hardware or software remains possible, and it is not identified.
Low. That a manipulation of the stored vote, on older machines in smaller places, produced the national result. The margin is 2.14 million votes. The small town’s vote for 13 is the town. Where a small town used both machines, the runoff gap inside the zone is about 2.1 points less for 13 on the 2020 model. Towns that used only the older machine have no second model, so that comparison cannot see them. Low, separately, that the filmed sections are enough to rule out a rare divergence on the machines that were not filmed. The transcribed report counts 580 sections in that test, in both rounds. They do not rule it out on the machines that were not filmed.
What would move this. A census-sector income map of the polling places inside a zone. The 2022 polling-place coordinates are now in this folder, and they leave the neighborhood account open. The list of machines drawn for the integrity test, by model and by size of municipality. A gap that appears only in the runoff after the neighborhood is held fixed. A one-sided tail that remains after the shift and the tighter spread are taken out. The finished log reading already closed two older questions: the extra lines that record the application starting are in both rounds, and no log’s count of computed votes runs ahead of the printed bulletin.
The next paragraph is who ran the elections court in 2022. It is context for a reader who asks who was in charge. It is not evidence that the voting software was changed.
The 224,999 machines of the 2020 model were bought, and the source code was opened for inspection, under the court president who took office in May 2020. On election day the president of the court had held that office since 16 August 2022. He was in a public institutional conflict with 22. That conflict is not evidence that the voting software was changed.