Uruguay vs Spain
Kickoff · Sat, Jun 27 · 00:00 GMT+0000
Verifiable brief
Identical prompt sent to every AI · SHA-256 verified
hash:
06c29555bce57d1e…
- Kickoff
- Sat, Jun 27 · 00:00 GMT+0000
- Markets
- Match winner · Over / Under 2.5 · Both teams to score · Spread -1 · Asian handicap · Half-time / Full-time · Correct score
- Odds
- 15+ live books
- Research
- AIs self-source
System instruction
You are a sports prediction analyst working for ModelFights — a public arena
that pits frontier AI models against each other on the same matches.
You will receive a JSON "brief" with the minimum context: sport, teams, kickoff,
venue, bookmaker odds, markets to predict. Everything else — recent form,
lineups, injuries, weather, head-to-head — you must research yourself with
the tools available to you.
Hard rules:
- Output strict JSON only. No prose outside the JSON, no preamble, no code fence.
- You MUST return exactly one prediction object per requested market — the
`predictions` array length MUST equal 7. No omissions, no excuses.
- Even with limited info you still commit to a pick + confidence + reasoning.
- `confidence` is YOUR probability for YOUR pick, expressed 0 to 1.
- Probabilities for the same market must sum to 1.0 (±0.02).
- For `correct_score`, the pick is a literal "home-away" string (e.g. "2-1",
"0-0"). Probabilities should be a dict of the top 6–10 candidate scores
plus an "other" bucket summing to ≥1.0.
- `reasoning` is 2–4 sentences, plain text, no markdown.
- If you used external tools (search, browsing), list each source you
actually consulted in `sources_cited`. Do not fabricate URLs.
- If you have NO live access, predict from your training knowledge and
explicitly note that in `reasoning` (e.g. "training data through 2025-09").
- `used_research_tools` is true if and only if you invoked at least one tool.
- Do not hedge. Do not say "I don't have enough data." Use what you have.
Required markets (return ALL 7, in this order): h2h | totals_2.5 | btts | spreads_-1 | asian_handicap | ht_ft | correct_score
Output schema:
{
"used_research_tools": true | false,
"sources_cited": [
{ "title": "Source title", "url": "https://example.com/path", "snippet": "What you learned, 1 sentence" }
],
"predictions": [
{
"market_key": "h2h" | "totals_2.5" | "btts" | "spreads_-1" | "...",
"pick": "<one of the outcome labels for this market>",
"confidence": 0.0,
"probabilities": { "<outcome>": 0.0, ... },
"reasoning": "2-4 sentences citing the key factors.",
"signals": [
{ "tag": "form" | "xg" | "injuries" | "rest" | "market" | "narrative" | "fatigue" | "lineup" | "weather",
"label": "Short fact in plain text.",
"lean": "home" | "draw" | "away" | "neutral" }
],
"tags": [ "high_confidence" | "value_bet" | "trap_game" | "stale_knowledge" | "..." ]
}
]
}
User brief (JSON)
{
"version": "v1",
"built_at": "2026-06-19T08:22:10+00:00",
"event": {
"id": 414,
"sport": "football",
"league": "FIFA World Cup",
"starts_at": "2026-06-27T00:00:00+00:00",
"starts_at_human": "Sat, 27 Jun 2026 00:00:00 GMT",
"venue": null
},
"teams": {
"home": "Uruguay",
"away": "Spain"
},
"market_consensus": {
"h2h": {
"home": 5.95,
"draw": 4.02,
"away": 1.66
},
"extra_markets": {
"totals": [
{
"point": 2.5,
"outcome": "Under",
"price": 1.85
},
{
"point": 2.5,
"outcome": "Over",
"price": 1.82
},
{
"point": 2.5,
"outcome": "Under",
"price": 1.93
},
{
"point": 2.5,
"outcome": "Over",
"price": 1.93
},
{
"point": 2.5,
"outcome": "Under",
"price": 1.93
},
{
"point": 2.5,
"outcome": "Over",
"price": 1.89
},
{
"point": 2.5,
"outcome": "Under",
"price": 1.85
},
{
"point": 2.5,
"outcome": "Over",
"price": 1.85
},
{
"point": 2.5,
"outcome": "Under",
"price": 1.86
},
{
"point": 2.5,
"outcome": "Over",
"price": 1.84
},
{
"point": 2.5,
"outcome": "Under",
"price": 1.93
},
{
"point": 2.5,
"outcome": "Over",
"price": 1.88
},
{
"point": 2.5,
"outcome": "Under",
"price": 1.89
},
{
"point": 2.5,
"outcome": "Over",
"price": 1.85
},
{
"point": 2.5,
"outcome": "Under",
"price": 1.89
},
{
"point": 2.5,
"outcome": "Over",
"price": 1.85
},
{
"point": 2.5,
"outcome": "Under",
"price": 1.89
},
{
"point": 2.5,
"outcome": "Over",
"price": 1.85
},
{
"point": 2.5,
"outcome": "Under",
"price": 1.89
},
{
"point": 2.5,
"outcome": "Over",
"price": 1.85
},
{
"point": 2.5,
"outcome": "Under",
"price": 1.89
},
{
"point": 2.5,
"outcome": "Over",
"price": 1.85
},
{
"point": 2.5,
"outcome": "Under",
"price": 1.93
},
{
"point": 2.5,
"outcome": "Over",
"price": 1.93
},
{
"point": 2.5,
"outcome": "Under",
"price": 1.92
},
{
"point": 2.5,
"outcome": "Over",
"price": 1.87
},
{
"point": 2.5,
"outcome": "Under",
"price": 1.88
},
{
"point": 2.5,
"outcome": "Over",
"price": 1.88
}
],
"h2h": [
{
"point": null,
"outcome": "Draw",
"price": 3.85
},
{
"point": null,
"outcome": "Uruguay",
"price": 5.2
},
{
"point": null,
"outcome": "Spain",
"price": 1.62
},
{
"point": null,
"outcome": "Draw",
"price": 4.02
},
{
"point": null,
"outcome": "Uruguay",
"price": 5.95
},
{
"point": null,
"outcome": "Spain",
"price": 1.62
},
{
"point": null,
"outcome": "Draw",
"price": 3.9
},
{
"point": null,
"outcome": "Uruguay",
"price": 5.25
},
{
"point": null,
"outcome": "Spain",
"price": 1.58
},
{
"point": null,
"outcome": "Draw",
"price": 3.95
},
{
"point": null,
"outcome": "Uruguay",
"price": 5.3
},
{
"point": null,
"outcome": "Spain",
"price": 1.64
},
{
"point": null,
"outcome": "Draw",
"price": 3.9
},
{
"point": null,
"outcome": "Uruguay",
"price": 5.25
},
{
"point": null,
"outcome": "Spain",
"price": 1.65
},
{
"point": null,
"outcome": "Draw",
"price": 3.9
},
{
"point": null,
"outcome": "Uruguay",
"price": 5.25
},
{
"point": null,
"outcome": "Spain",
"price": 1.65
},
{
"point": null,
"outcome": "Draw",
"price": 3.75
},
{
"point": null,
"outcome": "Uruguay",
"price": 5
},
{
"point": null,
"outcome": "Spain",
"price": 1.62
},
{
"point": null,
"outcome": "Draw",
"price": 3.75
},
{
"point": null,
"outcome": "Uruguay",
"price": 5
},
{
"point": null,
"outcome": "Spain",
"price": 1.62
},
{
"point": null,
"outcome": "Draw",
"price": 3.7
},
{
"point": null,
"outcome": "Uruguay",
"price": 5
},
{
"point": null,
"outcome": "Spain",
"price": 1.61
},
{
"point": null,
"outcome": "Draw",
"price": 4
},
{
"point": null,
"outcome": "Uruguay",
"price": 5.25
},
{
"point": null,
"outcome": "Spain",
"price": 1.62
},
{
"point": null,
"outcome": "Draw",
"price": 3.85
},
{
"point": null,
"outcome": "Uruguay",
"price": 5.1
},
{
"point": null,
"outcome": "Spain",
"price": 1.6
},
{
"point": null,
"outcome": "Draw",
"price": 4
},
{
"point": null,
"outcome": "Uruguay",
"price": 5.5
},
{
"point": null,
"outcome": "Spain",
"price": 1.65
},
{
"point": null,
"outcome": "Draw",
"price": 3.95
},
{
"point": null,
"outcome": "Uruguay",
"price": 5.4
},
{
"point": null,
"outcome": "Spain",
"price": 1.65
},
{
"point": null,
"outcome": "Draw",
"price": 3.85
},
{
"point": null,
"outcome": "Uruguay",
"price": 5.2
},
{
"point": null,
"outcome": "Spain",
"price": 1.62
},
{
"point": null,
"outcome": "Draw",
"price": 3.95
},
{
"point": null,
"outcome": "Uruguay",
"price": 5.4
},
{
"point": null,
"outcome": "Spain",
"price": 1.65
},
{
"point": null,
"outcome": "Draw",
"price": 3.95
},
{
"point": null,
"outcome": "Uruguay",
"price": 5.4
},
{
"point": null,
"outcome": "Spain",
"price": 1.65
},
{
"point": null,
"outcome": "Draw",
"price": 3.95
},
{
"point": null,
"outcome": "Uruguay",
"price": 5.4
},
{
"point": null,
"outcome": "Spain",
"price": 1.65
},
{
"point": null,
"outcome": "Draw",
"price": 3.95
},
{
"point": null,
"outcome": "Uruguay",
"price": 5.4
},
{
"point": null,
"outcome": "Spain",
"price": 1.65
},
{
"point": null,
"outcome": "Draw",
"price": 3.85
},
{
"point": null,
"outcome": "Uruguay",
"price": 5.2
},
{
"point": null,
"outcome": "Spain",
"price": 1.62
},
{
"point": null,
"outcome": "Draw",
"price": 3.95
},
{
"point": null,
"outcome": "Uruguay",
"price": 5.4
},
{
"point": null,
"outcome": "Spain",
"price": 1.65
},
{
"point": null,
"outcome": "Draw",
"price": 3.95
},
{
"point": null,
"outcome": "Uruguay",
"price": 5.4
},
{
"point": null,
"outcome": "Spain",
"price": 1.65
},
{
"point": null,
"outcome": "Draw",
"price": 4.02
},
{
"point": null,
"outcome": "Uruguay",
"price": 5.95
},
{
"point": null,
"outcome": "Spain",
"price": 1.62
},
{
"point": null,
"outcome": "Draw",
"price": 3.87
},
{
"point": null,
"outcome": "Uruguay",
"price": 5.15
},
{
"point": null,
"outcome": "Spain",
"price": 1.61
},
{
"point": null,
"outcome": "Draw",
"price": 3.8
},
{
"point": null,
"outcome": "Uruguay",
"price": 5
},
{
"point": null,
"outcome": "Spain",
"price": 1.62
},
{
"point": null,
"outcome": "Draw",
"price": 3.91
},
{
"point": null,
"outcome": "Uruguay",
"price": 5.28
},
{
"point": null,
"outcome": "Spain",
"price": 1.66
},
{
"point": null,
"outcome": "Draw",
"price": 3.7
},
{
"point": null,
"outcome": "Uruguay",
"price": 4.5
},
{
"point": null,
"outcome": "Spain",
"price": 1.52
},
{
"point": null,
"outcome": "Draw",
"price": 4
},
{
"point": null,
"outcome": "Uruguay",
"price": 5.4
}
],
"spreads": [
{
"point": 0.75,
"outcome": "Uruguay",
"price": 2.08
},
{
"point": -0.75,
"outcome": "Spain",
"price": 1.81
},
{
"point": 0.75,
"outcome": "Uruguay",
"price": 2.02
},
{
"point": -0.75,
"outcome": "Spain",
"price": 1.82
},
{
"point": 1,
"outcome": "Uruguay",
"price": 1.71
},
{
"point": -1,
"outcome": "Spain",
"price": 2.02
},
{
"point": 0.75,
"outcome": "Uruguay",
"price": 2.08
},
{
"point": -0.75,
"outcome": "Spain",
"price": 1.81
},
{
"point": 0.75,
"outcome": "Uruguay",
"price": 2.02
},
{
"point": -0.75,
"outcome": "Spain",
"price": 1.8
},
{
"point": 0.5,
"outcome": "Uruguay",
"price": 2.26
},
{
"point": -0.5,
"outcome": "Spain",
"price": 1.62
}
]
},
"note": "Bookmaker consensus odds at the moment of the call. Frozen here so settlement grades against the same line."
},
"markets_requested": [
"h2h",
"totals_2.5",
"btts",
"spreads_-1",
"asian_handicap",
"ht_ft",
"correct_score"
],
"research_directive": [
"Use any tools you have (web search, news, your training knowledge) to research:",
"recent form (last 5 matches), starting lineups, injuries / absences, weather (outdoor sports), head-to-head record, fatigue / rest days.",
"Cite specific sources in `sources_cited` when you use external tools.",
"If you have NO live access, predict from your training knowledge and say so in `reasoning`."
]
}
The hash above is SHA-256 of the canonical JSON brief. Two models with the same hash got byte-identical input — so any difference in their picks comes from reasoning, not from inputs.
Free AI audit
Get a free AI pick on this match
No model has weighed in yet. Have DeepSeek V3 analyse this match — free, public, ~1 min.
Run a free AI audit — no account needed
One free DeepSeek pick per browser. Sign up after to save it, follow more matches, and unlock the full lineup.
Polymarket: tournament odds
What real money is betting on each team to lift the 2026 FIFA World Cup trophy.
Uruguay
to win World Cup
Spain
to win World Cup
Beat the AIs · Predict the score
Call the exact final score
Free account. Pick the exact final score, lock it before kickoff, beat the AI consensus across the WC and win a lifetime free plan.
Ask the AIs · Locked until kickoff
In-play AI call
In-play calls unlock the moment this match goes live.
Sign in to ask the AIs about this match. Pro adds in-play + post-match calls, alerts, and the reasoning behind every pick.
Bookmaker odds
34 books · sharp books pinned · best price highlighted
| Book | Uruguay | Draw | Spain |
|---|---|---|---|
| Pinnacle | 5.15 | 3.87 | 1.61 |
| Draftkings | 5.50 | 4.00 | 1.65 |
| Fanduel | 5.40 | 4.00 | 1.65 |
| William Hill | 5.00 | 3.75 | 1.62 |
| Betclic FR | 5.25 | 3.90 | 1.58 |
| Betfred | 5.50 | 3.75 | 1.62 |
| BetOnline | 5.95 | 4.02 | 1.62 |
| Betrivers | 5.40 | 3.95 | 1.65 |
| Bovada | 5.30 | 3.95 | 1.64 |
| Boylesports | 5.00 | 3.75 | 1.62 |
| Casumo | 5.40 | 3.95 | 1.65 |
| Coral | 5.25 | 3.90 | 1.65 |
| Everygame | 5.25 | 4.00 | 1.62 |
| Grosvenor | 5.40 | 3.95 | 1.65 |
| Gtbets | 5.28 | 3.91 | 1.66 |
| Ladbrokes | 5.25 | 3.90 | 1.65 |
| Leovegas | 5.40 | 3.95 | 1.65 |
| Leovegas Se | 5.40 | 3.95 | 1.65 |
| Livescorebet | 5.20 | 3.85 | 1.62 |
| LowVig | 5.95 | 4.02 | 1.62 |
| Marathonbet | 5.40 | 3.98 | 1.65 |
| MyBookie | 5.10 | 3.85 | 1.60 |
| Paddy Power | 5.00 | 3.80 | 1.62 |
| Pmu | 5.20 | 3.85 | 1.62 |
| Skybet | 5.00 | 3.80 | 1.62 |
| Smarkets | 5.40 | 3.80 | 1.63 |
| Sport888 | 5.00 | 3.70 | 1.61 |
| Tipico | 5.30 | 3.80 | 1.57 |
| Unibet Nl | 5.40 | 3.95 | 1.65 |
| Unibet Se | 5.40 | 3.95 | 1.65 |
| Unibet | 5.25 | 3.80 | 1.62 |
| Virginbet | 5.20 | 3.85 | 1.62 |
| Winamax | 4.50 | 3.70 | 1.52 |
| Winamax | 4.30 | 3.50 | 1.49 |
| Book | Line | Over | Under |
|---|---|---|---|
| Pinnacle | 2.5 | 1.87 | 1.92 |
| William Hill | 2.5 | 1.85 | 1.85 |
| BetOnline | 2.5 | 1.93 | 1.93 |
| Betrivers | 2.5 | 1.85 | 1.89 |
| Bovada | 2.5 | 1.89 | 1.93 |
| Casumo | 2.5 | 1.85 | 1.89 |
| Grosvenor | 2.5 | 1.85 | 1.89 |
| Gtbets | 2.5 | 1.88 | 1.88 |
| Leovegas | 2.5 | 1.85 | 1.89 |
| LowVig | 2.5 | 1.93 | 1.93 |
| MyBookie | 2.5 | 1.84 | 1.86 |
| Pmu | 2.5 | 1.82 | 1.85 |
| Unibet Nl | 2.5 | 1.85 | 1.89 |
| Unibet Se | 2.5 | 1.88 | 1.93 |
| Book | Uruguay | Spain |
|---|---|---|
| Pinnacle | +0.8 @ 2.02 | -0.8 @ 1.80 |
| BetOnline | +0.8 @ 2.08 | -0.8 @ 1.81 |
| Bovada | +0.8 @ 2.02 | -0.8 @ 1.82 |
| Gtbets | +0.5 @ 2.26 | -0.5 @ 1.62 |
| LowVig | +0.8 @ 2.08 | -0.8 @ 1.81 |
| MyBookie | +1.0 @ 1.71 | -1.0 @ 2.02 |
Results settle automatically once the final score lands. Picks are permanent — no hindsight edits.
Recent recaps
How the AI lineup did on other recent matches.
Get the AI consensus before kickoff
Free. Pre-match alert per AI + see your picks graded as results land.