Norway vs Senegal
Kickoff · Tue, Jun 23 · 00:00 GMT+0000
Verifiable brief
Identical prompt sent to every AI · SHA-256 verified
hash:
6e372ac915f1da5c…
- Kickoff
- Tue, Jun 23 · 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-17T08:14:22+00:00",
"event": {
"id": 393,
"sport": "football",
"league": "FIFA World Cup",
"starts_at": "2026-06-23T00:00:00+00:00",
"starts_at_human": "Tue, 23 Jun 2026 00:00:00 GMT",
"venue": null
},
"teams": {
"home": "Norway",
"away": "Senegal"
},
"market_consensus": {
"h2h": {
"home": 2.24,
"draw": 3.6,
"away": 3.51
},
"extra_markets": {
"h2h": [
{
"point": null,
"outcome": "Draw",
"price": 3.5
},
{
"point": null,
"outcome": "Senegal",
"price": 3.2
},
{
"point": null,
"outcome": "Norway",
"price": 2
},
{
"point": null,
"outcome": "Draw",
"price": 3.55
},
{
"point": null,
"outcome": "Senegal",
"price": 3.3
},
{
"point": null,
"outcome": "Norway",
"price": 2.22
},
{
"point": null,
"outcome": "Draw",
"price": 3.6
},
{
"point": null,
"outcome": "Senegal",
"price": 3.4
},
{
"point": null,
"outcome": "Norway",
"price": 2.08
},
{
"point": null,
"outcome": "Draw",
"price": 3.6
},
{
"point": null,
"outcome": "Senegal",
"price": 3.4
},
{
"point": null,
"outcome": "Norway",
"price": 2.08
},
{
"point": null,
"outcome": "Draw",
"price": 3.45
},
{
"point": null,
"outcome": "Senegal",
"price": 3.4
},
{
"point": null,
"outcome": "Norway",
"price": 2.15
},
{
"point": null,
"outcome": "Draw",
"price": 3.5
},
{
"point": null,
"outcome": "Senegal",
"price": 3.4
},
{
"point": null,
"outcome": "Norway",
"price": 2.1
},
{
"point": null,
"outcome": "Draw",
"price": 3.3
},
{
"point": null,
"outcome": "Senegal",
"price": 3.1
},
{
"point": null,
"outcome": "Norway",
"price": 2
},
{
"point": null,
"outcome": "Draw",
"price": 3.43
},
{
"point": null,
"outcome": "Senegal",
"price": 3.38
},
{
"point": null,
"outcome": "Norway",
"price": 2.12
},
{
"point": null,
"outcome": "Draw",
"price": 3.3
},
{
"point": null,
"outcome": "Senegal",
"price": 3.3
},
{
"point": null,
"outcome": "Norway",
"price": 2.1
},
{
"point": null,
"outcome": "Draw",
"price": 3.25
},
{
"point": null,
"outcome": "Senegal",
"price": 3.25
},
{
"point": null,
"outcome": "Norway",
"price": 2.1
},
{
"point": null,
"outcome": "Draw",
"price": 3.4
},
{
"point": null,
"outcome": "Senegal",
"price": 3.4
},
{
"point": null,
"outcome": "Norway",
"price": 2.05
},
{
"point": null,
"outcome": "Draw",
"price": 3.2
},
{
"point": null,
"outcome": "Senegal",
"price": 3.2
},
{
"point": null,
"outcome": "Norway",
"price": 2
},
{
"point": null,
"outcome": "Draw",
"price": 3.4
},
{
"point": null,
"outcome": "Senegal",
"price": 3.4
},
{
"point": null,
"outcome": "Norway",
"price": 2.1
},
{
"point": null,
"outcome": "Draw",
"price": 3.4
},
{
"point": null,
"outcome": "Senegal",
"price": 3.4
},
{
"point": null,
"outcome": "Norway",
"price": 2.1
},
{
"point": null,
"outcome": "Draw",
"price": 3.6
},
{
"point": null,
"outcome": "Senegal",
"price": 3.4
},
{
"point": null,
"outcome": "Norway",
"price": 2.15
},
{
"point": null,
"outcome": "Draw",
"price": 3.6
},
{
"point": null,
"outcome": "Senegal",
"price": 3.45
},
{
"point": null,
"outcome": "Norway",
"price": 2.1
},
{
"point": null,
"outcome": "Draw",
"price": 3.6
},
{
"point": null,
"outcome": "Senegal",
"price": 3.4
},
{
"point": null,
"outcome": "Norway",
"price": 2.08
},
{
"point": null,
"outcome": "Draw",
"price": 3.55
},
{
"point": null,
"outcome": "Senegal",
"price": 3.3
},
{
"point": null,
"outcome": "Norway",
"price": 2.22
},
{
"point": null,
"outcome": "Draw",
"price": 3.54
},
{
"point": null,
"outcome": "Senegal",
"price": 3.36
},
{
"point": null,
"outcome": "Norway",
"price": 2.05
},
{
"point": null,
"outcome": "Draw",
"price": 3.55
},
{
"point": null,
"outcome": "Senegal",
"price": 3.4
},
{
"point": null,
"outcome": "Norway",
"price": 2.24
},
{
"point": null,
"outcome": "Draw",
"price": 3.55
},
{
"point": null,
"outcome": "Senegal",
"price": 3.4
},
{
"point": null,
"outcome": "Norway",
"price": 2.24
},
{
"point": null,
"outcome": "Draw",
"price": 3.5
},
{
"point": null,
"outcome": "Senegal",
"price": 3.25
},
{
"point": null,
"outcome": "Norway",
"price": 2.1
},
{
"point": null,
"outcome": "Draw",
"price": 3.4
},
{
"point": null,
"outcome": "Senegal",
"price": 3.2
},
{
"point": null,
"outcome": "Norway",
"price": 2.1
},
{
"point": null,
"outcome": "Draw",
"price": 3.5
},
{
"point": null,
"outcome": "Senegal",
"price": 3.3
},
{
"point": null,
"outcome": "Norway",
"price": 2.22
},
{
"point": null,
"outcome": "Draw",
"price": 3.5
},
{
"point": null,
"outcome": "Senegal",
"price": 3.3
},
{
"point": null,
"outcome": "Norway",
"price": 2.15
},
{
"point": null,
"outcome": "Draw",
"price": 3.4
},
{
"point": null,
"outcome": "Senegal",
"price": 3.3
},
{
"point": null,
"outcome": "Norway",
"price": 2.15
},
{
"point": null,
"outcome": "Draw",
"price": 3.6
},
{
"point": null,
"outcome": "Senegal",
"price": 3.4
},
{
"point": null,
"outcome": "Norway",
"price": 2.17
}
],
"totals": [
{
"point": 2.5,
"outcome": "Under",
"price": 1.87
},
{
"point": 2.5,
"outcome": "Over",
"price": 1.99
},
{
"point": 2.5,
"outcome": "Under",
"price": 1.87
},
{
"point": 2.5,
"outcome": "Over",
"price": 1.95
},
{
"point": 2.5,
"outcome": "Under",
"price": 1.87
},
{
"point": 2.5,
"outcome": "Over",
"price": 1.95
},
{
"point": 2.5,
"outcome": "Under",
"price": 1.78
},
{
"point": 2.5,
"outcome": "Over",
"price": 1.89
},
{
"point": 2.5,
"outcome": "Under",
"price": 1.75
},
{
"point": 2.5,
"outcome": "Over",
"price": 1.95
},
{
"point": 2.5,
"outcome": "Under",
"price": 1.77
},
{
"point": 2.5,
"outcome": "Over",
"price": 1.91
},
{
"point": 2.5,
"outcome": "Under",
"price": 1.87
},
{
"point": 2.5,
"outcome": "Over",
"price": 1.95
},
{
"point": 2.5,
"outcome": "Under",
"price": 1.87
},
{
"point": 2.5,
"outcome": "Over",
"price": 1.99
},
{
"point": 2.5,
"outcome": "Under",
"price": 1.85
},
{
"point": 2.5,
"outcome": "Over",
"price": 1.93
},
{
"point": 2.5,
"outcome": "Under",
"price": 1.87
},
{
"point": 2.5,
"outcome": "Over",
"price": 1.94
}
],
"spreads": [
{
"point": 0.5,
"outcome": "Senegal",
"price": 1.75
},
{
"point": -0.5,
"outcome": "Norway",
"price": 2.18
},
{
"point": 0.25,
"outcome": "Senegal",
"price": 2.05
},
{
"point": -0.25,
"outcome": "Norway",
"price": 1.8
},
{
"point": 0.25,
"outcome": "Senegal",
"price": 2.05
},
{
"point": -0.25,
"outcome": "Norway",
"price": 1.8
},
{
"point": 0.5,
"outcome": "Senegal",
"price": 1.75
},
{
"point": -0.5,
"outcome": "Norway",
"price": 2.18
},
{
"point": 0.25,
"outcome": "Senegal",
"price": 2.02
},
{
"point": -0.25,
"outcome": "Norway",
"price": 1.79
}
],
"h2h_lay": [
{
"point": null,
"outcome": "Draw",
"price": 3.85
},
{
"point": null,
"outcome": "Senegal",
"price": 3.55
},
{
"point": null,
"outcome": "Norway",
"price": 2.28
},
{
"point": null,
"outcome": "Draw",
"price": 3.85
},
{
"point": null,
"outcome": "Senegal",
"price": 3.55
},
{
"point": null,
"outcome": "Norway",
"price": 2.28
},
{
"point": null,
"outcome": "Draw",
"price": 3.85
},
{
"point": null,
"outcome": "Senegal",
"price": 3.55
},
{
"point": null,
"outcome": "Norway",
"price": 2.28
}
]
},
"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.
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
44 books · sharp books pinned · best price highlighted
| Book | Norway | Draw | Senegal |
|---|---|---|---|
| Pinnacle ↗ | 2.05 | 3.54 | 3.36 |
| Draftkings ↗ | 2.15 | 3.60 | 3.40 |
| Fanduel ↗ | 2.15 | 3.50 | 3.30 |
| Betmgm | 2.00 | 3.20 | 3.20 |
| William Hill | 2.10 | 3.30 | 3.30 |
| Betfair Exchange UK | 2.24 | 3.55 | 3.40 |
| Betfair Exchange EU | 2.24 | 3.55 | 3.40 |
| Betanysports | 2.08 | 3.60 | 3.40 |
| Betclic FR | 2.12 | 3.43 | 3.38 |
| Betfred | 2.15 | 3.40 | 3.30 |
| BetOnline | 2.22 | 3.55 | 3.30 |
| Betrivers | 2.15 | 3.45 | 3.40 |
| Betus | 2.08 | 3.60 | 3.40 |
| Betway | 2.00 | 3.50 | 3.20 |
| Bovada | 2.08 | 3.60 | 3.40 |
| Boylesports | 2.05 | 3.40 | 3.40 |
| Casumo | 2.15 | 3.45 | 3.40 |
| Codere It | 2.15 | 3.45 | 3.40 |
| Coolbet | 2.17 | 3.60 | 3.40 |
| Coral | 2.10 | 3.40 | 3.40 |
| Everygame | 2.10 | 3.60 | 3.45 |
| Grosvenor | 2.12 | 3.40 | 3.35 |
| Gtbets | 2.04 | 3.46 | 3.51 |
| Ladbrokes | 2.10 | 3.40 | 3.40 |
| Leovegas | 2.15 | 3.45 | 3.40 |
| Leovegas Se | 2.15 | 3.45 | 3.40 |
| Livescorebet | 2.12 | 3.35 | 3.30 |
| LowVig | 2.22 | 3.55 | 3.30 |
| Marathonbet | 2.16 | 3.48 | 3.42 |
| MyBookie | 2.10 | 3.34 | 3.30 |
| Onexbet | 2.20 | 3.54 | 3.48 |
| Paddy Power | 2.10 | 3.50 | 3.25 |
| Pmu | 2.12 | 3.35 | 3.30 |
| Skybet | 2.10 | 3.40 | 3.20 |
| Smarkets | 2.22 | 3.50 | 3.30 |
| Sport888 | 2.10 | 3.25 | 3.25 |
| Tipico | 2.10 | 3.50 | 3.40 |
| Unibet | 2.10 | 3.45 | 3.40 |
| Unibet Nl | 2.18 | 3.55 | 3.50 |
| Unibet Se | 2.18 | 3.55 | 3.50 |
| Unibet | 2.10 | 3.40 | 3.30 |
| Virginbet | 2.12 | 3.35 | 3.30 |
| Winamax | 2.00 | 3.30 | 3.10 |
| Winamax | 2.00 | 3.25 | 3.05 |
| Book | Line | Over | Under |
|---|---|---|---|
| Pinnacle ↗ | 2.5 | 1.93 | 1.85 |
| Betmgm | 2.5 | 1.91 | 1.77 |
| William Hill | 2.5 | 1.95 | 1.75 |
| Betanysports | 2.5 | 1.95 | 1.87 |
| BetOnline | 2.5 | 1.99 | 1.87 |
| Betrivers | 2.5 | 1.92 | 1.85 |
| Betus | 2.5 | 1.95 | 1.87 |
| Bovada | 2.5 | 1.95 | 1.87 |
| Casumo | 2.5 | 1.92 | 1.85 |
| Codere It | 2.5 | 1.89 | 1.78 |
| Coolbet | 2.5 | 1.94 | 1.87 |
| Grosvenor | 2.5 | 1.92 | 1.85 |
| Gtbets | 2.5 | 1.97 | 1.81 |
| Leovegas | 2.5 | 1.92 | 1.85 |
| LowVig | 2.5 | 1.99 | 1.87 |
| MyBookie | 2.5 | 1.91 | 1.79 |
| Onexbet | 2.5 | 1.95 | 1.88 |
| Pmu | 2.5 | 1.87 | 1.81 |
| Unibet Nl | 2.5 | 1.92 | 1.85 |
| Unibet Se | 2.5 | 1.94 | 1.88 |
| Book | Norway | Senegal |
|---|---|---|
| Pinnacle ↗ | -0.3 @ 1.79 | +0.3 @ 2.02 |
| Betanysports | -0.3 @ 1.80 | +0.3 @ 2.05 |
| BetOnline | -0.5 @ 2.18 | +0.5 @ 1.75 |
| Bovada | -0.3 @ 1.80 | +0.3 @ 2.05 |
| Gtbets | -0.5 @ 2.05 | +0.5 @ 1.75 |
| LowVig | -0.5 @ 2.18 | +0.5 @ 1.75 |
| MyBookie | -0.5 @ 2.06 | +0.5 @ 1.68 |
| Onexbet | 0.0 @ 1.57 | 0.0 @ 2.44 |
Results settle automatically once the final score lands. Picks are permanent — no hindsight edits.
Get the AI consensus before kickoff
Free. Pre-match alert per AI + see your picks graded as results land.