Football
Exeter
Cheltenham
63%
1.59
22%
4.51
15%
6.61
53%xG 2.8
50%2.01
11-14
Bristol Rvs
Chesterfield
35%
2.85
27%
3.73
38%
2.62
52%xG 2.8
56%1.78
11-14
Colchester
Gillingham
47%
2.11
27%
3.72
26%
3.88
48%xG 2.6
52%1.94
11-14
Crewe
Newport County
40%
2.50
28%
3.57
32%
3.12
46%xG 2.5
52%1.93
11-14
Port Vale
Accrington
44%
2.27
28%
3.58
28%
3.57
45%xG 2.5
50%1.99
11-14
Rochdale
York
31%
3.22
26%
3.86
43%
2.32
54%xG 2.9
58%1.73
11-14
Salford
Northampton
51%
1.97
26%
3.80
23%
4.39
47%xG 2.6
50%1.99
11-14
Shrewsbury
Oldham
43%
2.32
28%
3.60
29%
3.44
46%xG 2.5
51%1.95
11-14
Swindon
Grimsby
26%
3.86
25%
3.97
49%
2.05
54%xG 2.9
57%1.76
11-14
Walsall
Barnet
37%
2.68
26%
3.81
36%
2.74
54%xG 2.8
58%1.72
11-14
Fleetwood Town
Tranmere
50%
2.00
26%
3.87
24%
4.15
50%xG 2.7
53%1.88
11-21
Gillingham
Crewe
39%
2.55
28%
3.58
33%
3.05
47%xG 2.5
52%1.91
11-21
Newport County
Swindon
54%
1.86
25%
4.06
22%
4.61
53%xG 2.8
54%1.86
11-21
Accrington
Salford
39%
2.57
27%
3.64
34%
2.97
49%xG 2.6
54%1.86
11-21
Barnet
Port Vale
47%
2.13
26%
3.78
27%
3.77
50%xG 2.7
54%1.87
11-21
Cheltenham
Bristol Rvs
35%
2.85
27%
3.73
38%
2.62
52%xG 2.8
56%1.78
11-21
Chesterfield
Shrewsbury
56%
1.79
24%
4.15
20%
4.97
53%xG 2.8
53%1.88
11-21
Crawley Town
Fleetwood Town
37%
2.70
27%
3.68
36%
2.79
50%xG 2.7
55%1.82
11-21
Grimsby
Rotherham
60%
1.67
22%
4.45
18%
5.67
56%xG 2.9
54%1.85
11-21
Northampton
Rochdale
64%
1.57
22%
4.56
14%
6.99
53%xG 2.8
48%2.07
11-21
Oldham
Exeter
35%
2.85
29%
3.46
36%
2.78
43%xG 2.4
50%2.02
11-21
Tranmere
Colchester
48%
2.10
26%
3.78
26%
3.87
49%xG 2.7
53%1.89
11-21
York
Walsall
43%
2.32
26%
3.86
31%
3.22
54%xG 2.9
58%1.73
11-24
Crawley Town
Barnet
33%
3.05
26%
3.87
41%
2.42
55%xG 2.9
59%1.70
11-24
Port Vale
Northampton
45%
2.23
29%
3.51
27%
3.77
42%xG 2.4
48%2.09
11-28
Bristol Rvs
Tranmere
46%
2.19
26%
3.79
28%
3.58
51%xG 2.7
55%1.83
11-28
Exeter
Crawley Town
56%
1.79
25%
4.06
20%
5.12
50%xG 2.7
51%1.97
11-28
Colchester
York
41%
2.43
27%
3.72
32%
3.13
51%xG 2.7
55%1.81
11-28
Crewe
Grimsby
30%
3.37
27%
3.70
43%
2.31
49%xG 2.6
54%1.86
11-28
Fleetwood Town
Accrington
42%
2.37
28%
3.62
30%
3.32
47%xG 2.6
52%1.91
11-28
Port Vale
Newport County
49%
2.03
27%
3.71
24%
4.18
46%xG 2.5
50%2.00
11-28
Rochdale
Barnet
22%
4.49
24%
4.17
54%
1.86
56%xG 2.9
57%1.77
11-28
Rotherham
Oldham
43%
2.32
27%
3.68
30%
3.35
49%xG 2.6
54%1.87
11-28
Salford
Gillingham
64%
1.55
21%
4.70
14%
6.96
55%xG 2.9
50%1.98
11-28
Shrewsbury
Cheltenham
54%
1.86
25%
4.06
21%
4.66
53%xG 2.8
54%1.87
11-28
Swindon
Chesterfield
28%
3.52
26%
3.92
46%
2.17
55%xG 2.9
58%1.73
11-28
Walsall
Northampton
41%
2.46
28%
3.58
31%
3.18
46%xG 2.5
52%1.92
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 | Salford |
League Two | |
| 2 | Barnet |
League Two | |
| 3 | Exeter |
League Two | |
| 4 | Grimsby |
League Two | |
| 5 | Port Vale |
League Two | |
| 6 | Chesterfield |
League Two | |
| 7 | York |
League Two | |
| 8 | Walsall |
League Two | |
| 9 | Swindon |
League Two | |
| 10 | Crewe |
League Two | |
| 11 | Rotherham |
League Two | |
| 12 | Northampton |
League Two | |
| 13 | Accrington |
League Two | |
| 14 | Fleetwood Town |
League Two | |
| 15 | Oldham |
League Two | |
| 16 | Bristol Rvs |
League Two | |
| 17 | Colchester |
League Two | |
| 18 | Gillingham |
League Two | |
| 19 | Cheltenham |
League Two | |
| 20 | Newport County |
League Two | |
| 21 | Shrewsbury |
League Two | |
| 22 | Tranmere |
League Two | |
| 23 | Rochdale |
League Two | |
| 24 | Crawley Town |
League Two |
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.


























































































































































