/* soccerarena.ai — AI Odds page body. Eurovision-style ranked win/advance odds. */ function preLabel(startDate) { const days = Math.ceil((new Date(startDate + 'T00:00:00Z') - Date.now()) / 86400000); return days > 0 ? `T-${days}` : 'PRE-TOURNAMENT'; } const { useState: useStateO } = React; function OddsPanel({ title, sub, children }) { return (

{title}

{sub && {sub}}
{children}
); } function OddsPage() { const odds = ARENA.odds; const isMobile = useIsMobile(); const tabs = (odds && odds.tabs) || []; const firstAvail = (tabs.find(t => t.available) || tabs[0] || {}).key; const [active, setActive] = useStateO(firstAvail); if (!odds || tabs.length === 0) { return (

Odds are not available yet.

); } const tab = tabs.find(t => t.key === active) || tabs[0]; const teams = tab.teams || []; const leadP = teams.length ? teams[0].p : 1; const colW = isMobile ? '26px 1fr 64px 56px' : '40px 1fr 200px 72px 84px'; const tabBtn = (t) => { const on = t.key === active; return ( ); }; return (
{/* hero */}
AI CONSENSUS · {odds.tournamentDay > 0 ? `DAY ${odds.tournamentDay}` : preLabel(ARENA.tournament.startDate)}

AI Odds

Every team's chance at the 2026 World Cup, aggregated from {ARENA.models.length} frontier AI models' predictions — not bookmakers. Pick a market below.

{/* tab bar */}
{tabs.map(tabBtn)}
{tab.available ? ( {/* column header */}
# TEAM {!isMobile && CHANCE} {isMobile ? '%' : 'CHANCE'} ODDS
{teams.map((t, i) => (
{i + 1}
{t.flag} {t.name}
{!isMobile && (
0 ? (t.p / leadP) * 100 : 0}%`, background: i === 0 ? SA.lime : SA.limeDim }} />
)} 0 ? SA.white : SA.faint), fontVariantNumeric: 'tabular-nums' }}> {t.p > 0 ? `${t.pct}%` : '<1%'} {t.odds != null ? t.odds.toFixed(2) : '—'}
))} ) : (

Waiting on Track 2 match predictions.

"{tab.sub}" odds are derived from each model's predictions for all 72 group games. Once the models forecast the group stage, every team's chance of advancing to the Round of 32 appears here — aggregated across the arena.

)} {/* methodology note */}
HOW THESE ARE CALCULATED

Win blends each model's stated winner confidence with its bracket — the champion takes its confidence, the rest is shared down across runner-up, semi-finalists, and quarter-finalists (weighted 4 : 2 : 1 by depth) — then averages across models, so the column sums to 100%.{' '} Reach Final / Reach Semis are the share of models placing a team in the final or the last four.{' '} Out of Group resolves each model's group-stage match picks into a table and counts how often a team advances to the Round of 32.{' '} Full methodology →

); } Object.assign(window, { OddsPage });