Buying Lula during Brazil's 2026 runoff count looked profitable only if you trusted the right projection. Coelho finds that Kalshi and Polymarket trailed a publicly readable forecast by more than an hour. The value of that delay depends almost entirely on the probability model used to price the trades. The author acknowledges the dependence himself.

A count you can follow section by section

After polls close, an election contract has a fixed outcome. Votes arrive in an order correlated with the result, and a fast market should converge as quickly as the public count permits. Brazil lets Coelho measure that process in unusual detail. For each of 499,205 polling sections, the electoral court (TSE) reports the vote, the minute the tally sheet printed and the second it reached the court.

A national result file containing n sections consists of the first n sections received. Publication follows the n-th receipt by a median of 22 seconds. Coelho matches this sequence to every Kalshi trade (92,182, with taker side known) and every Polymarket fill (379,943). Lula's winning margin was 3.57 points. The final polls had put Flávio ahead by 1.6.

Arvor supplies the main benchmark. The Portuguese-language site describes itself as favourable to Flávio and committed its code at 16:04. Beginning at 19:15, it released a national vote-share projection and a 90% band every five minutes. It estimates the runoff by comparing each municipality's vote with its first-round vote at the same stage of counting.

All 53 snapshots had bands containing the final result. With 1.6% of sections counted at 19:15, Arvor projected 52.8% for Lula (band 51.2 to 54.3), implying a probability of 0.998. Market prices cleared 0.9 at 20:24. By then, 46% had been counted.

Coelho translates prices into implied uncertainty using sigma = M / Φ⁻¹(p), with M the projection's expected margin. Relative to Arvor's own sigma, the median implied sigma was 3.7 on Kalshi and 3.9 on Polymarket. Takers were buying Lula. Between 19:06 and 20:24, they bought 2.19 million Kalshi contracts at an average price of 0.78, alongside 10.8 million Lula-equivalent shares on Polymarket at 0.77.

Which forecast makes the trade pay?

Mark each purchase at a benchmark's probability in the minute of execution, and expected Kalshi profit spans 18.0 cents to minus 18.5. Using Arvor's probability and its own band from 19:15 gives 18.0 cents per contract after fees. Doubling the band reduces the figure to 12.5. Tripling it leaves 3.8 (Polymarket: 21.2, 15.5, 6.7 cents a share).

Coelho's section-level model, calibrated on the 2018 runoff, gives 7.9 cents on Kalshi and 10.0 on Polymarket from 19:06. Project each state's remaining votes at its current share, the state-level extrapolation, and Kalshi profit falls to 0.3 cents. The headline extrapolation produces minus 18.5.

The paper confronts this directly. Under the state-level extrapolation, it says, expected profit "was zero". That forecast also matched the markets' timing: it crossed 0.9 at 20:36, compared with 20:24 for the markets. Coelho suggests that ignoring geography within states makes this model slow when the early sections are unrepresentative, as they were that night. He says he cannot test that explanation.

The argument is fair.

Its evidence still comes from a single count. Coelho describes Arvor's band check as "a check on this night only."

He also concedes a separate problem with the uncertainty ratio: "A single price cannot separate a larger standard deviation from a different expected margin." Against his section-level projection calibrated on 2018, the runoff with the largest errors, market-implied SD was still 2.1 times the projection's. Using 2022 raises the ratio to 8.5 to 8.6.

The 2018 comparison needs its own qualification. Receipt times are unavailable for that year, so Coelho simulates the counting order in 20 draws. When applied to 2022 and 2026, the simulation understates errors under the actual order by 1.1 to 2.9 times. He therefore calls the 2018 ratio and profits "if anything overstated."

Stranger still is the response to news.

Across 198 national files published from 19:00 to 21:10, the coefficient relating price changes to file news is never positive at any horizon from 10 seconds to 10 minutes. Kalshi's one-minute coefficient is minus 0.34 per point of projected margin (SE 0.11). State and municipal files update earlier, Coelho notes, and prices may already have responded to them.

Two hours without an update

The TSE suspended publication from 17:07 to 19:00. The last available file held 1,225 sections (0.25%), largely votes cast abroad. Lula traded at 0.25 to 0.44 during the pause. Reconstructing those sections afterwards yields probabilities from 0.57 (2018 calibration) to 0.92 (k = 1). Here k scales the standard deviation of the section-level projection calibrated on 2022. The paper explicitly says none of these readings was available live.

The closest live signal had little practical reach. Volunteer photographs collected by Arvor covered 77 tally sheets in 26 municipalities. Their implied swing put Lula at 52.0%, against his final 51.8%. The clustered SE is 0.24 points, before accounting for the municipalities' self-selection. Arvor released only the raw 43%, on a stream with 228 views.

Prices rose in the meantime, despite takers selling a net total of about 230,000 Kalshi contracts. Resting quotes drove the move; aggressive flow did not.

Filling the Lula trade

Realized profit on Kalshi was 20.7 cents per contract after fees. That is a single outcome. The evidence on executable size comes from 15 Polymarket order-book snapshots during the window. At a one-cent spread, the median available within two cents of the best ask was $9,300 (minimum $1,100). Takers bought 10.8 million shares through that book, which therefore refilled. Kalshi depth is unobserved, and the calculations assume zero Polymarket fees.

An implementer still has to settle two choices left open in the text. We did not find an explanation in the paper of how the 90% band is converted into a standard deviation, or how uncertainty is assigned to the state-level extrapolation. The code is in the arXiv ancillary files. Reported profits mark fills that actually occurred. The price an additional buyer would have paid is a separate issue, addressed only by the Polymarket depth figures.

We could not test any of this. We lack Kalshi and Polymarket trades or books, the TSE section archive, and a timestamped record of which municipal files were live in each minute. A tradable backtest needs that last archive. Section records released later can reconstruct information without establishing that anyone could have traded on it. The paper's archive contains every version of the national, state and municipal files from both 2026 nights. The missing data are on our side.

The first round points the other way. Its first headline file, released at 17:23, already showed the eventual leader, Flávio, ahead. Markets crossed 0.9 for Flávio at 18:28 with 28% counted; the section model then assigned 0.62. A regional extrapolation reached 0.9 at 18:40. Markets also beat the section model on log score, minus 0.11 versus minus 0.23, although Coelho considers that calibration pair poorly matched.

For models calibrated on each night's own errors, these same venues had implied ratios near one in Romania (0.8 to 1.8) and Peru (0.94). This runoff's ratio was 7.2 on that same own-errors basis. The evidence supports a real runoff gap. The trade's expected value remains one model choice away from zero.