Appunti

Forecasting

Free lunch

A companion to VARmageddon, which runs on a book that freezes weeks before kickoff while the market keeps moving; that gap was worth about 16% on the value pick’s result. How much survives if the book isn’t frozen, merely slow?

Model the book as a lagged mirror of the market: its quote at time t is the market at tL. Bet the live blend — the Polymarket + Kalshi price my pipeline collected all tournament — and get paid at the stale quote. With po an outcome’s live probability and qo its lagged one, backing the best ratio earns

edge(L) = E[ maxo po / qo ] − 1,

averaged over matches: the value ratio the main piece puts at 16% for the frozen book, now as a function of the lag.

One assumption does all the work: the market must lead the book. Run it the other way, book sharp and price stale, and the same trade loses. The statistic can’t check itself either, since maxo po / qo is ≥ 1 by construction whichever series you call fresh. You are not forecasting the match, you are forecasting the book — an edge only if the blend really is the later-informed price. Checked below.

realistic lag · 0–60 min 0% 4% 8% 12% 16% frozen book (VARmageddon) ≈ 16% 5m 30m 1h 6h 1d 3d 7d 14d quote lag (log scale) 4.8% 8.0% 14.6% 3.0% mean median n 104 → 36
Value edge vs quote lag, 104 matches (blended two-book history; expected-value terms, no bonus). Lines faded past three days, where fewer matches have enough history (n 104 → 36). Mean 4.8% and median 3.0% at an hour; 2.7% and 1.8% averaged over 0–60 minutes, the lag a book updated by hand plausibly lives in. By a fortnight, roughly the horizon the real book froze at, the mean reaches 14.6% — closing on the 16% frozen-book line.

Accumulated drift, so it rises and flattens. At five minutes the median match pays nothing, the market simply hasn’t moved; the mean is carried by the few matches with real news, a lineup, a late fitness call. By half an hour the edge lives in the typical match. And the far end of the curve settles how the frozen edge decomposes: staleness alone accounts for nearly all of it at the real freeze horizon. The remainder is the favourite-longshot bias, there whenever you read the book, fresh or stale.

Polymarket leads Kalshi

The lagged mirror is a fiction. The tournament ran a real version: Polymarket and Kalshi priced every match, side by side. If one consistently moves first, the fiction becomes a trade.

Put both books on a common time grid and regress each book’s move on the other’s previous move, controlling for its own momentum, strictly past-to-future. Polymarket’s last move forecasts Kalshi’s next at two to ten times the reverse, at every grid width. Each book carries some of the other — same world — but price is discovered on Polymarket and reaches Kalshi after. Leading means its moves come first, not that anyone samples it more often.

Polymarket's last move → Kalshi's next Kalshi's last → Polymarket's next 0.2 0.4 0.38 0.13 0.46 0.05 0.26 0.11 30-min grid 60-min grid 90-min grid slope of next move on the other book's previous (own momentum controlled)
Lead-lag slopes at three grid widths. Polymarket forecasts Kalshi at every width; at the 60-minute grid Kalshi barely anticipates Polymarket at all (0.05, t = 2.4, against 0.46, t = 29).

Long the leader, short the trailer

The obvious trade trusts the leader. Wherever Polymarket rates an outcome higher than Kalshi does, Kalshi is the stale quote, so back that outcome at Kalshi’s price — a bet in 98 of the 104 matches. Priced off the leader, that bet is worth +3.6% in expectation, and exactly nothing against Polymarket’s own price, where you have no edge on yourself: the whole +3.6% is Kalshi’s staleness. But an edge that small drowns in the variance of whether each bet lands. Settle the 98 picks on real results and the return swings to +14%, mostly luck, on a 90% interval from −25% to +59%. Real and unprovable at once.

So don’t bet the match. Long the outcome on the leading book, short it on the trailing one: the result cancels, and what’s left is the two prices converging. The trailing book converges toward the leading one, so the pair grinds into profit — rebalanced each half-hour over the final pre-match day, positive in all 104 matches (t ≈ 13). The hedge removes the match variance that made the naked bet indistinguishable from luck. (Marking a spread to market flatters mean-reversion; the level is optimistic, the direction is not — the regression above shares no observation between predictor and target.)

The spread eats it

That is profit at mid prices. Trading it means crossing the spread: buy at the ask, half a cent above mid, sell at the bid, half a cent below. Cents and probability points are the same scale here, every contract pays $1. I pulled both order books two days before the final:

spread depth within 5¢ of touch trading fee
Polymarket $1.4–4.4M per outcome none
Kalshi $1.9–3.4M per outcome 0.07·p(1−p) ≈ 1.4–1.7¢ per contract

Depth is not the problem — both books are millions deep near the touch. The costs are. A cent of spread across the two legs, another cent and a half of Kalshi fee: call the round trip 2½¢. Against it, the gap:

gap ≤ 1¢ — 87% of pre-match moments gap > 1¢ — 13%, tradeable in principle 1¢ spread measured two days before the final median 0.63¢ cross-book gap, best outcome, every pre-match half-hour (¢)
The gap between the two books at every pre-match half-hour, 104 matches (largest of the three outcomes). 87% of the mass sits inside the one-cent spread; the tallest bin, just under a cent, is what books quoting whole cents would produce.

Above 2¢ in fewer than one moment in a hundred, never past 4¢ — and the Kalshi fee alone outruns the 0.63¢ median. The half-hourly rebalancing the pair wants pays the toll again each time. The mispricing is real in the mids and gone at the touch.

A 2½¢ cost on a ⅔¢ gap is the whole verdict, measured. The trade needs a book priced as lazily as Kalshi and traded as cheaply as Polymarket, and those don’t share a venue here. I went looking for the trade; the costs got there first.

Method: all 104 matches of the 2026 World Cup. This piece first ran on the 102 played by 18 July; Spain lifted the trophy on the 19th, and everything above is recomputed on the complete tournament — third-place play-off and final included. Nothing in the argument turned on the last two matches: two more settlements walked the directional bet from +17% to +14%, and the hedged pair held every match it was handed. Polymarket and Kalshi win/draw/loss prices, normalised to sum to one. Lag curve: the blended probability at kickoff against its own forward-filled past. Lead-lag: both books forward-filled to a common grid; each book’s move regressed on the other’s and its own previous move; the cross-coefficient shares no price observation with its target, and the asymmetry holds as the grid widens. Pair trade: market-neutral, marked to market half-hourly over the final 24 pre-match hours. Spreads and depth: order books pulled from both venues on 17 July, two days before the final — the only place raw quotes enter; everything else is mids. The fee is Kalshi’s published quadratic schedule at the final’s prices.