

In our previous post, we predicted that PSV wouldn’t advance based on early results and the remaining schedule. Luckily, we were wrong! With two great wins over Liverpool and Red Star, PSV secured 15th place and moved to the next round.
Now we’ll analyze our initial predictions, compare them to the final outcomes, and forecast the full competition ranking and what to expect next.
In Table 1 we summarize our predictions and final results. We see that the number of changes turned out to be smaller than predicted. For PSV for example, we predicted two times a loss where they won against both Liverpool and Red Star. The victory against Liverpool probably had to do with Liverpool playing with a “B” or even “C” team because they were already sure of qualifying as a first or second in the final ranking.
Predicted | Realized | |
From Top 8 to 9-24 | - Brest - Aston Villa - Lille |
- Brest |
From 9-24 to Top 8 | - Dortmuind - Bayern Munchen - AC Milan |
- Atletico Madrid |
From 9-24 to 25-36 | - Dinamo Zagreb - PSV |
- Dinamo Zagreb |
From 25-36 to 9-24 | - Paris Saint Germain - Stuttgart |
- Paris Saint Germain |
Table 1 Summary of Predicted changes in final ranking and realized changes in final ranking.
This is typically not covered in our model. For PSV something similar happened which made it reasonable that factors that are explicitly not in the model explain this difference.
For Atletico Madrid, we did not expect that they would win from Bayer Leverkusen based on the results of the first 6 rounds. If Atletico had lost that game, their ranking would be in the 9-24 group. For Bayern Munchen we expected them to win against Feyenoord which did not happen as we all know.
And this is also what makes soccer such an interesting game: a lot of uncertainty in the outcome of individual matches and differences are small: 3 teams with 16 and 5 teams with 15 points in the final ranking, which defines the difference between Top-8 or 9-24. And the goal difference determined that Manchester City, Sporting Portugal and Club Brugge made it to the next round while Dinamo Zagreb just did not make it.
What if a full competition would have been played?
With the results of the first 8 rounds, we can also predict what the final ranking would be if a full competition would be played. A full competition would be that every team plays at home as well as away against every other team. This would mean that the competition takes 70 rounds in stead of the 8 that have been played.
Table 2 CL Predicted ranking after a full competition of 70 rounds.
Some remarkable changes when we compare Table 2 with the current ranking after 8 rounds:
The main difference between the final ranking as predicted and the current ranking as realized, is related to the specific 8 opponents that teams had to play against in the first 8 rounds and their estimated strength. The expected final ranking in Table 2, gives an indication of that strength.
If we take AC Milan as an example in trying to explain why the model expects them to descent in the final ranking, we observe that they played against Bratislava, Zagreb, Girona, and Red Star from the group of 12 weakest teams. They can be considered to have been lucky with the particular opponents they had in the first 8 rounds.
Opposite to that, Benfica had to play against only 1 team of that weakest group of teams (Red Star). For that reason it is expected that Benfica would do much better in a full competition. Similar for Bologna, they played against Lille, Benfica, Dortmund, Liverpool, Sporting, Aston Villa, Monaco and Shaktar. Seven of those 8 opponents were expected to be in the Top-13 which implies that Bologna had a really hard schedule and was therefore very unlucky with their opponents.
In the next round, the 16 clubs ranked 9-24 will play each other in a knockout round with both a home and away game. The schedule is not random: higher-ranked teams play against lower-ranked teams. Based on the final ranking after 8 rounds, the commonsense prediction would be that the highest-ranked team will make it to the next round.
Table 3 is based on our data model and shows the same outcome, with only 2 exceptions: Feyenoord and PSV. For both PSV-Juventus and Feyenoord- AC Milan the expected goal difference is less than 0.5 over 2 matches. Therefore, we conclude that these teams have been comparable in strength over the 8 matches played and that, based on scores only from these matches, a definite prediction cannot be made, except that the matches will probably be very exciting!
For the other six matches, the difference in expected goals is quite substantial in such a way that the team highest ranked in Table 2 is expected to proceed to the next round, which is also what the prediction with the ranking after 8 rounds would predict. Note that in the ranking after 8 rounds Benfica and Monaco differ just 1 position. Nevertheless, Benfica is expected to make it quite easy to the next round because they had bad luck with their competitors as already explained.
Highest ranged | Lowest ranked | Expected winner |
Paris Saint Germain | Stade Brest | Paris Saint Germain |
Benefica | Monaco | Benefica |
PSV | Juventus | Undecided |
AC Milan | Feyenoord | Undecided |
Real Madrid | Manchester City | Real Madrid |
Bayern Munchen | Celtic | Bayern Munchen |
Atalanta | Club Brugge | Atalanta |
Borussia Dortmund | Sporting CP | Borussia Dortmund |
Table 3 Schedule for next round. Highest/lowest ranked team is team with the highest/lowest ranking after 8 rounds.
Although our predictions for the final ranking after 8 rounds were not quite convincing, we feel it is still fun to look at what the data tells us for the next round. And the fact that we expect PSV and Feyenoord can compete with top-ranked Italian teams emphasizes what every fan already noticed: Feyenoord and PSV have played impressively well until now!