Home

Algorithmically predicting the results of the 2019 Rugby World Cup

I've been working on a rugby prediction algorithm for a while now. My basic premise is that the World Rugby rankings are a good indicator of past performance, but don't give the full picture when predicting future results. I've already visualised my predictions based on form alone, and the results look reasonable - so is there room for improvement?

My hypothesis is that a more accurate prediction can be made if we take into account short-term form and past performance against specific opponents.

With this in mind, my new model combines four key metrics:

  1. All-time performance - as shown by current world ranking
  2. Recent Form: tier 1 - how well have the team performed in their last 10 matches against tier 1 opposition.
  3. Recent Form: tier 2 - how well have the team performed in their last 10 matches against tier 2 opposition.
  4. History against opponent - how well have the team performed against the specific opponent we're predicting the result for?

There's obviously plenty more that I can add to this algorithm, but with the World Cup actually starting soon (tomorrow, at time of writing), I've got a hard deadline for "just shipping" whatever I've got.

The predictions

Pool A

Sep.20 11:45jap
72.63%
27.37%
rus
Sep.22 08:45ire
61.45%
38.55%
sco
Sep.24 11:15sam
58.29%
41.71%
rus
Sep.28 08:15ire
71.75%
28.25%
jap
Sep.30 11:15sco
68.11%
31.89%
sam
Oct.03 11:45ire
83.51%
16.49%
rus
Oct.05 11:35sam
52.69%
47.31%
jap
Oct.09 08:15sco
73.05%
26.95%
rus
Oct.12 11:45ire
74.47%
25.53%
sam
Oct.13 11:45sco
65.73%
34.27%
jap
  1. #TeamWinsPoints
  2. 1Ireland417QF4
  3. 2Scotland312QF2
  4. 3Samoa28
  5. 4Japan15
  6. 5Russia01

Pool B

Sep.21 10:45nzl
56.45%
43.55%
rsa
Sep.22 06:15ita
76.99%
23.01%
nam
Sep.26 08:45ita
68.11%
31.89%
can
Sep.28 10:45rsa
91.72%
8.28%
nam
Oct.02 11:15nzl
87.01%
12.99%
can
Oct.04 10:45rsa
72.77%
27.23%
ita
Oct.06 05:45nzl
86.25%
13.75%
nam
Oct.08 11:15rsa
82.4%
17.6%
can
Oct.12 05:45nzl
78.35%
21.65%
ita
Oct.13 04:15can
74.69%
25.31%
nam
  1. #TeamWinsPoints
  2. 1New Zealand418QF2
  3. 2South Africa315QF4
  4. 3Italy28
  5. 4Canada14
  6. 5Namibia00

Pool C

Sep.21 06:15fra
56.65%
43.35%
arg
Sep.22 11:15eng
79.17%
20.83%
ton
Sep.26 11:15eng
74.76%
25.24%
usa
Sep.28 05:45arg
71.04%
28.96%
ton
Oct.02 08:15fra
69.51%
30.49%
usa
Oct.05 09:00eng
65.3%
34.7%
arg
Oct.06 08:45fra
59.85%
40.15%
ton
Oct.09 05:45arg
69.27%
30.73%
usa
Oct.12 09:15eng
58.47%
41.53%
fra
Oct.13 06:45ton
60.21%
39.79%
usa
  1. #TeamWinsPoints
  2. 1England416QF1
  3. 2France313QF3
  4. 3Argentina29
  5. 4Tonga15
  6. 5United States00

Pool D

Sep.21 05:45aus
68.67%
31.33%
fij
Sep.23 11:15wal
71.32%
28.68%
geo
Sep.25 06:15fij
73.48%
26.52%
uru
Sep.29 06:15geo
58.67%
41.33%
uru
Sep.29 08:45aus
52.12%
47.88%
wal
Oct.03 06:15fij
59.16%
40.84%
geo
Oct.05 06:15aus
80.04%
19.96%
uru
Oct.09 10:45wal
66.06%
33.94%
fij
Oct.11 11:15aus
62.48%
37.52%
geo
Oct.13 09:15wal
80.06%
19.94%
uru
  1. #TeamWinsPoints
  2. 1Australia417QF3
  3. 2Wales314QF1
  4. 3Fiji28
  5. 4Georgia15
  6. 5Uruguay01

QF1

Oct.19 08:15eng
54.27%
45.73%
wal

SF1

Oct.26 09:00nzl
57.58%
42.42%
eng

QF2

Oct.19 11:15nzl
68.78%
31.22%
sco

Final

Nov.02 09:00nzl
56.45%
43.55%
rsa

3rd place

Nov.01 09:00eng
56.51%
43.49%
aus

QF3

Oct.20 08:15aus
57.73%
42.27%
fra

SF2

Oct.27 09:00rsa
53.13%
46.87%
aus

QF4

Oct.20 11:15rsa
51.36%
48.64%
ire