Where we disagree with the markets
The full champion table lives on the forecast home page, with the market prices folded in. This page is the analysis: where the model parts ways with two independent markets — Polymarket and Kalshi — how those prices have drifted, and how each side scores once results land. There is no single market reference, so we never blend the venues into a consensus.
The model favours Spain; Polymarket favours Spain, Kalshi favours France. Mean absolute gap across the 48 compared teams is 0.96 pp (averaged over venues — a navigational figure, not a pooled price). The pairs below isolate the biggest gaps in each direction.
Model · market · agent
AI agent has read 72/72 group games · rest use the modelA third champion-odds column: model says X, market says Y, our AI agent says Z. The agent only forecasts individual matches, so we run the tournament Monte Carlo with the agent's scoreline distribution substituted for the model's in the 72 group games it has read — knockouts and unread games stay model-based. Agent Δ is versus the model.
| Team | Model | Polymarket | Kalshi | Agent | Agent Δ |
|---|---|---|---|---|---|
| Spain | 14.2% | 16.5% | 15.7% | 12.9% | -1.2pp |
| Brazil | 12.9% | 8.2% | 7.8% | 12.8% | -0.1pp |
| Argentina | 11.8% | 7.7% | 8.2% | 11.6% | -0.1pp |
| England | 9.3% | 9.4% | 9.9% | 9.4% | +0.1pp |
| France | 6.5% | 15.7% | 15.9% | 7.6% | +1.1pp |
| Portugal | 6.5% | 10.3% | 10.0% | 7.2% | +0.7pp |
| Germany | 5.0% | 5.0% | 4.7% | 5.2% | +0.2pp |
| Colombia | 4.6% | 1.6% | 1.5% | 4.3% | -0.3pp |
| Belgium | 4.1% | 2.0% | 1.9% | 5.3% | +1.3pp |
| Netherlands | 3.7% | 4.8% | 5.3% | 3.6% | -0.1pp |
| Uruguay | 3.1% | 0.9% | 0.9% | 2.9% | -0.3pp |
| Morocco | 2.5% | 1.4% | 1.4% | 2.9% | +0.3pp |
| Croatia | 2.2% | 0.8% | 0.7% | 2.0% | -0.3pp |
| Ecuador | 2.0% | 0.8% | 0.7% | 1.6% | -0.3pp |
| Switzerland | 1.7% | 1.3% | 0.9% | 1.4% | -0.2pp |
| Mexico | 1.1% | 1.4% | 1.8% | 1.4% | +0.3pp |
We rate higher than the markets
Markets rate higher than us
| Team | Model | Mean Δ |
|---|---|---|
| France | 6.5% | -9.3pp |
| Portugal | 6.5% | -3.7pp |
| Spain | 14.2% | -1.9pp |
| United States | 0.6% | -1.8pp |
| Norway | 1.0% | -1.4pp |
Biggest market moves
30 captures since 2026-06-02 · ▲▼ = drift in de-vigged implied| Team | Model | Polymarket drift | Kalshi drift |
|---|---|---|---|
| United States | 0.6% | ▲ +0.6pp | ▲ +1.8pp |
| Netherlands | 3.7% | ▲ +1.1pp | ▲ +1.4pp |
| England | 9.3% | ▼ -1.4pp | ▼ -0.7pp |
| Portugal | 6.5% | ▲ +1.1pp | ▲ +1.0pp |
| Argentina | 11.8% | ▼ -1.0pp | ▼ -0.3pp |
| Germany | 5.0% | ▼ -0.3pp | ▼ -0.9pp |
Drift is each venue's de-vigged implied champion probability now versus its first captured value — ▲ red means the market has grown more bullish, ▼ blue less. We de-vig each venue separately by proportional normalization (pi = yesi / Σ yesj).
Tournament scoreboard starts 2026-06-11
Once matches start, every fixture gets a pre-match probability from us and from each market venue's closing line. Outcomes are then scored under a proper rule (RPS), per venue, and the cumulative margins published here. Champion futures are scored separately, and only resolve once the tournament ends.
The point is not bragging rights — it's to make the comparison falsifiable on a public timeline. If the model loses to a venue, the page says so. The calibration scorecard tracks the related "when we say 60%, does it happen 60% of the time?" question.