Football
Atl. San Luis
Juarez
64%
1.55
20%
5.03
16%
6.35
64%xG 3.3
58%1.71
11-07
Necaxa
Club Tijuana
24%
4.21
24%
4.25
53%
1.90
59%xG 3.1
60%1.67
11-07
Atlante
Santos Laguna
35%
2.85
26%
3.86
39%
2.56
55%xG 2.9
59%1.69
11-07
Atlas
Pachuca
35%
2.88
26%
3.81
39%
2.57
54%xG 2.8
58%1.73
11-08
Tigres UANL
Cruz Azul
24%
4.18
25%
4.02
51%
1.95
54%xG 2.9
56%1.79
11-08
Toluca
Monterrey
55%
1.82
22%
4.53
23%
4.36
65%xG 3.3
64%1.57
11-08
UNAM Pumas
Club America
34%
2.91
25%
3.96
40%
2.48
58%xG 3.0
61%1.63
11-09
Queretaro
Puebla
52%
1.91
25%
3.93
22%
4.53
50%xG 2.7
52%1.92
11-09
Club Leon
Guadalajara Chivas
31%
3.28
27%
3.77
43%
2.33
52%xG 2.7
56%1.79
11-14
Queretaro
Monterrey
37%
2.67
26%
3.86
37%
2.73
56%xG 2.9
59%1.69
11-21
Puebla
Atl. San Luis
34%
2.92
26%
3.80
39%
2.53
54%xG 2.8
58%1.73
11-21
Juarez
Atlas
27%
3.70
24%
4.18
49%
2.04
61%xG 3.1
62%1.62
11-21
Club Tijuana
Atlante
64%
1.55
20%
4.92
15%
6.51
61%xG 3.2
56%1.79
11-21
Pachuca
Toluca
46%
2.16
25%
3.95
28%
3.53
56%xG 2.9
58%1.71
11-21
Santos
Club Leon
53%
1.88
24%
4.22
23%
4.34
58%xG 3.0
59%1.71
11-22
UNAM Pumas
Monterrey
48%
2.10
24%
4.20
29%
3.49
62%xG 3.2
63%1.58
11-22
Tigres UANL
Club America
27%
3.68
26%
3.82
47%
2.15
51%xG 2.7
55%1.82
11-22
Guadalajara Chivas
Cruz Azul
42%
2.38
26%
3.87
32%
3.11
55%xG 2.9
59%1.70
11-23
Queretaro
Necaxa
55%
1.83
24%
4.14
21%
4.69
54%xG 2.9
55%1.82
Nothing matches this filter. Pick another day or clear the search.
Premier League
| # | Team | Pts | Title | Top 4 | Relegated |
|---|---|---|---|---|---|
| 1 | Arsenal |
24 | 53% | 98% | – |
| 2 | Man City |
21 | 32% | 95% | – |
| 3 | Brighton |
19 | 12% | 85% | – |
| 4 | Bournemouth |
12 | 1% | 40% | – |
| 5 | Liverpool |
15 | 1% | 36% | – |
| 6 | Aston Villa |
12 | <1% | 21% | <1% |
| 7 | Chelsea |
16 | <1% | 9% | <1% |
| 8 | Brentford |
14 | – | 5% | 1% |
| 9 | Tottenham |
12 | – | 5% | 2% |
| 10 | Everton |
13 | – | 2% | 3% |
| 11 | Leeds |
11 | – | 2% | 4% |
| 12 | Fulham |
9 | – | <1% | 8% |
| 13 | Man United |
7 | – | <1% | 12% |
| 14 | Nott'm Forest |
6 | – | <1% | 14% |
| 15 | Newcastle |
11 | – | – | 22% |
| 16 | Ipswich |
11 | – | <1% | 26% |
| 17 | Coventry |
9 | – | – | 42% |
| 18 | Crystal Palace |
7 | – | – | 49% |
| 19 | Hull |
11 | – | – | 52% |
| 20 | Sunderland |
5 | – | – | 65% |
Each remaining match is played out with the goals model's expected goals, then the season is repeated 10,000 times. Rows are ordered by average finishing position. Team strengths stay as they are today, and points deductions aren't included.
Championship
| # | Team | Pts | Title | Promoted | Relegated |
|---|---|---|---|---|---|
| 1 | Middlesbrough |
28 | 40% | 63% | – |
| 2 | Southampton |
28 | 21% | 44% | – |
| 3 | West Ham |
23 | 21% | 44% | – |
| 4 | Birmingham |
26 | 10% | 26% | – |
| 5 | Wolves |
27 | 4% | 11% | – |
| 6 | Swansea |
26 | 2% | 6% | – |
| 7 | West Brom |
25 | <1% | 4% | – |
| 8 | Norwich |
18 | <1% | <1% | – |
| 9 | QPR |
21 | <1% | <1% | – |
| 10 | Portsmouth |
22 | <1% | <1% | – |
| 11 | Stoke |
26 | <1% | <1% | – |
| 12 | Millwall |
18 | – | <1% | <1% |
| 13 | Sheffield United |
22 | – | <1% | <1% |
| 14 | Wrexham |
17 | – | – | <1% |
| 15 | Bristol City |
18 | – | – | 1% |
| 16 | Cardiff |
15 | – | – | 2% |
| 17 | Blackburn |
18 | – | – | 3% |
| 18 | Bolton |
17 | – | – | 5% |
| 19 | Burnley |
10 | – | – | 15% |
| 20 | Lincoln |
15 | – | – | 19% |
| 21 | Watford |
14 | – | – | 24% |
| 22 | Charlton |
14 | – | – | 52% |
| 23 | Derby |
7 | – | – | 81% |
| 24 | Preston |
5 | – | – | 97% |
Each remaining match is played out with the goals model's expected goals, then the season is repeated 10,000 times. Rows are ordered by average finishing position. Team strengths stay as they are today, and points deductions aren't included.
La Liga
| # | Team | Pts | Title | Top 4 | Relegated |
|---|---|---|---|---|---|
| 1 | Barcelona |
30 | 89% | >99% | – |
| 2 | Real Madrid |
27 | 11% | >99% | – |
| 3 | Ath Madrid |
28 | <1% | 97% | – |
| 4 | Betis |
23 | – | 57% | – |
| 5 | Sociedad |
19 | – | 30% | – |
| 6 | Ath Bilbao |
15 | – | 7% | <1% |
| 7 | Sevilla |
17 | – | 5% | <1% |
| 8 | Vallecano |
12 | – | 2% | 3% |
| 9 | Villarreal |
12 | – | <1% | 4% |
| 10 | Alaves |
12 | – | <1% | 5% |
| 11 | Elche |
10 | – | <1% | 6% |
| 12 | Levante |
10 | – | <1% | 7% |
| 13 | La Coruna |
14 | – | <1% | 8% |
| 14 | Celta |
12 | – | – | 13% |
| 15 | Espanol |
11 | – | – | 20% |
| 16 | Valencia |
9 | – | – | 28% |
| 17 | Osasuna |
11 | – | – | 30% |
| 18 | Getafe |
12 | – | – | 36% |
| 19 | Santander | 11 | – | – | 52% |
| 20 | Malaga |
5 | – | – | 86% |
Each remaining match is played out with the goals model's expected goals, then the season is repeated 10,000 times. Rows are ordered by average finishing position. Team strengths stay as they are today, and points deductions aren't included.
Bundesliga
| # | Team | Pts | Title | Top 4 | Relegated |
|---|---|---|---|---|---|
| 1 | Bayern Munich |
18 | 98% | >99% | – |
| 2 | Dortmund |
18 | 2% | 87% | – |
| 3 | RB Leipzig |
15 | <1% | 55% | – |
| 4 | Freiburg |
16 | <1% | 50% | – |
| 5 | Leverkusen |
13 | <1% | 48% | – |
| 6 | Werder Bremen |
15 | – | 22% | – |
| 7 | Stuttgart |
9 | – | 22% | – |
| 8 | Hoffenheim |
9 | – | 7% | <1% |
| 9 | Augsburg |
9 | – | 3% | 2% |
| 10 | Ein Frankfurt |
11 | – | 3% | 2% |
| 11 | Mainz |
10 | – | 2% | 2% |
| 12 | Elversberg |
13 | – | 1% | 3% |
| 13 | FC Koln |
9 | – | <1% | 9% |
| 14 | Hamburg |
9 | – | – | 22% |
| 15 | Paderborn |
9 | – | – | 26% |
| 16 | Union Berlin |
7 | – | – | 27% |
| 17 | M'gladbach |
4 | – | – | 53% |
| 18 | Schalke 04 |
6 | – | – | 54% |
Each remaining match is played out with the goals model's expected goals, then the season is repeated 10,000 times. Rows are ordered by average finishing position. Team strengths stay as they are today, and points deductions aren't included.
Serie A
| # | Team | Pts | Title | Top 4 | Relegated |
|---|---|---|---|---|---|
| 1 | Como |
23 | 71% | >99% | – |
| 2 | Inter |
25 | 21% | 97% | – |
| 3 | Roma |
24 | 6% | 87% | – |
| 4 | Lazio |
28 | 2% | 63% | – |
| 5 | Juventus |
17 | <1% | 36% | – |
| 6 | Milan |
21 | – | 7% | – |
| 7 | Napoli |
14 | – | 5% | – |
| 8 | Frosinone |
20 | – | 4% | – |
| 9 | Bologna |
14 | – | <1% | <1% |
| 10 | Cagliari |
13 | – | – | 4% |
| 11 | Torino |
13 | – | – | 4% |
| 12 | Genoa |
13 | – | – | 6% |
| 13 | Atalanta |
11 | – | – | 10% |
| 14 | Fiorentina |
8 | – | – | 11% |
| 15 | Parma |
8 | – | – | 29% |
| 16 | Lecce |
9 | – | – | 36% |
| 17 | Sassuolo |
8 | – | – | 41% |
| 18 | Monza |
7 | – | – | 42% |
| 19 | Udinese |
5 | – | – | 44% |
| 20 | Venezia |
3 | – | – | 73% |
Each remaining match is played out with the goals model's expected goals, then the season is repeated 10,000 times. Rows are ordered by average finishing position. Team strengths stay as they are today, and points deductions aren't included.
Ligue 1
| # | Team | Pts | Title | Top 3 | Relegated |
|---|---|---|---|---|---|
| 1 | Paris SG |
20 | >99% | >99% | – |
| 2 | Paris FC |
17 | – | 48% | – |
| 3 | Monaco |
15 | – | 44% | – |
| 4 | Lyon |
17 | – | 36% | – |
| 5 | Lille |
18 | – | 22% | – |
| 6 | Rennes |
16 | – | 20% | – |
| 7 | Marseille |
15 | – | 15% | <1% |
| 8 | Brest |
12 | – | 7% | <1% |
| 9 | Strasbourg |
10 | – | 4% | <1% |
| 10 | Toulouse |
10 | – | 3% | <1% |
| 11 | Nice |
14 | – | 2% | 1% |
| 12 | Lorient |
12 | – | <1% | 3% |
| 13 | Lens |
13 | – | <1% | 3% |
| 14 | Auxerre |
10 | – | – | 12% |
| 15 | Troyes |
8 | – | – | 34% |
| 16 | Le Havre |
2 | – | – | 39% |
| 17 | Le Mans |
7 | – | – | 43% |
| 18 | Angers |
8 | – | – | 62% |
Each remaining match is played out with the goals model's expected goals, then the season is repeated 10,000 times. Rows are ordered by average finishing position. Team strengths stay as they are today, and points deductions aren't included.
Eredivisie
| # | Team | Pts | Title | Top 2 | Relegated |
|---|---|---|---|---|---|
| 1 | Twente |
23 | 41% | 67% | – |
| 2 | Ajax |
24 | 30% | 58% | – |
| 3 | PSV Eindhoven |
23 | 17% | 39% | – |
| 4 | Feyenoord |
25 | 10% | 27% | – |
| 5 | AZ Alkmaar |
20 | 2% | 8% | – |
| 6 | Heerenveen |
18 | – | <1% | – |
| 7 | For Sittard |
19 | – | – | – |
| 8 | Groningen |
15 | – | – | <1% |
| 9 | Cambuur |
15 | – | – | <1% |
| 10 | Nijmegen |
11 | – | – | <1% |
| 11 | Go Ahead Eagles |
14 | – | – | 4% |
| 12 | Utrecht |
12 | – | – | 5% |
| 13 | Sparta Rotterdam |
12 | – | – | 8% |
| 14 | Telstar |
9 | – | – | 12% |
| 15 | Den Haag |
6 | – | – | 18% |
| 16 | Zwolle |
11 | – | – | 20% |
| 17 | Excelsior |
11 | – | – | 32% |
| 18 | Willem II |
2 | – | – | >99% |
Each remaining match is played out with the goals model's expected goals, then the season is repeated 10,000 times. Rows are ordered by average finishing position. Team strengths stay as they are today, and points deductions aren't included.
Primeira Liga
| # | Team | Pts | Title | Top 2 | Relegated |
|---|---|---|---|---|---|
| 1 | Porto |
30 | 49% | 91% | – |
| 2 | Benfica |
25 | 47% | 90% | – |
| 3 | Sp Lisbon |
21 | 4% | 17% | – |
| 4 | Santa Clara |
21 | – | <1% | – |
| 5 | Arouca |
20 | – | <1% | – |
| 6 | Academico Viseu |
20 | – | – | – |
| 7 | Sp Braga |
14 | – | – | – |
| 8 | Gil Vicente |
15 | – | – | – |
| 9 | Alverca |
11 | – | – | <1% |
| 10 | Famalicao |
10 | – | – | – |
| 11 | Moreirense |
14 | – | – | <1% |
| 12 | Estrela |
10 | – | – | 3% |
| 13 | Maritimo |
8 | – | – | 15% |
| 14 | Nacional |
7 | – | – | 18% |
| 15 | Rio Ave |
7 | – | – | 25% |
| 16 | Casa Pia |
7 | – | – | 29% |
| 17 | Estoril |
2 | – | – | 31% |
| 18 | Vitoria |
9 | – | – | 79% |
Each remaining match is played out with the goals model's expected goals, then the season is repeated 10,000 times. Rows are ordered by average finishing position. Team strengths stay as they are today, and points deductions aren't included.
| # | Team | League | Rating |
|---|---|---|---|
| 1 | Cruz Azul |
Liga MX | |
| 2 | Club America |
Liga MX | |
| 3 | Toluca |
Liga MX | |
| 4 | Guadalajara Chivas |
Liga MX | |
| 5 | Pachuca |
Liga MX | |
| 6 | UNAM Pumas |
Liga MX | |
| 7 | Club Tijuana |
Liga MX | |
| 8 | Monterrey |
Liga MX | |
| 9 | Tigres UANL |
Liga MX | |
| 10 | Atlas |
Liga MX | |
| 11 | Club Leon |
Liga MX | |
| 12 | Queretaro |
Liga MX | |
| 13 | Atl. San Luis |
Liga MX | |
| 14 | Atlante |
Liga MX | |
| 15 | Santos Laguna | Liga MX | |
| 16 | Necaxa |
Liga MX | |
| 17 | Mazatlan FC | Liga MX | |
| 18 | Juarez |
Liga MX | |
| 19 | Puebla |
Liga MX |
Who wins
| Called right | Log loss | Brier | |
|---|---|---|---|
| Goals model | 49% | 1.0211 | 0.612 |
| Elo model | 49% | 1.0233 | 0.6135 |
| Bookmakers, early odds (same matches) | 51% | 0.9976 | 0.5961 |
| Bookmakers, closing odds (same matches) | 51% | 0.999 | 0.5971 |
When the model disagreed with the early odds by more than 3 points, the price moved its way by kick-off 53% of the time (48,985 cases; an average shift of 0.2 points). That's about what chance gives: the model doesn't spot things the market hasn't already priced in. Use it as an independent second opinion, and treat a "generous" price as a reason to look closer, not as an edge.
Goals markets
| Market | Goals model | Naive guess | Bookmakers |
|---|---|---|---|
| Over/under 2.5 goals | 0.679 | 0.693 | 0.676 |
| Both teams score | 0.686 | 0.691 | — |
| Half-time result | 1.053 | 1.081 | — |
| First-half goal | 0.601 | 0.605 | — |
| Half-time / full-time | 1.907 | 1.962 | — |
"Naive guess" always predicts how often each outcome has happened so far. Beating it means the model knows something about the teams.
Compare any two teams
Prediction, goals markets, form, rating trend and past meetings.


























































































































































