Sonntag, 21. Juni 2015

How many league points do 10 Goalimpact add?

If you are a club owner or fan, you would want to know how many points your team is going to have at the end of the season to judge if your team is good enough or needs reinforcement. Let's assume you decide your team isn't good enough, by how much would you need to improve your team? It depends...

The case of highly competitive league

Let's first look at a league like Bundesliga in which all 18 teams are equally good. We would expect all teams to earn the same number of points (46). Preseason, we would have no clue whatsoever who is going to be champion as everybody is equally good.


Some insight we gain by the first line in the table. It shows the expected points conditional to a team ending on the respective rank. We thus expect the winner of this league of equally good teams to earn 59 points while the last ranked team only earns 33. Notice that this is pure random variation. While we expect the winner to have 59 points, we have no idea of who this is going to be.

At the end of the season probably the winner will have positive media coverage and can sell newly made star players at a premium whilst the last team saw its trainer replaced two times during the season. Humans tend to act of random outcomes, but that is not path to success. They are just fooled by randomness.

To overcome this, teams need quality measures that are not based on the actual random league position. Statistics is a way of achieving this. You could evaluate your team using TSR, EXPGRatio or other team quality measures, but this works best only during or after the season. Preseason, you'd need to use player based quality ratings such as Goalimpact.


Sticking out

Now imagine, one team in this very competitive league is 10 Goalimpact points better than the others. It did some investments in better players and gained an advantage. How does this affect the expected league outcome?


We picked Werder Bremen as the lucky team. They increased their expected points by 6 to 52 taking an equal share of the other teams. The chances are more than 50% that they will end Top4 at the end of the season. Odds to relegate dropped significantly, though in a freak season it could still happen.

The conditional points that the league winner holds hardly changed. Although we shifted the odds significantly, we couldn't tell that Werder Bremen is a better team just by looking at the final standings. They'd probably have something like 60 points and we couldn't tell if they were better than the others or just lucky unless we use analytics.

If we increase the team quality further to have 20 points more than others in the league, The team is expected to dominate the league and win with a chance of more than 60%.


The winner is expected to end the season with 62.7 points and the runner-up with 57.1. This is five points different and chances are that the winner will be Werder Bremen and it will have won the title before the last match day. But there is still a 40% chance that one of the other team will win the title or at least be close to it with a chance of winning on the last match day. Again, just looking at the final standings, may not give conclusive insight on the team quality.

Points per Goalimpact

To be able to plan, how many extra points does my team earn for 10 extra Goalimpact? From the tables above, we can see that Werder Bremen added 6.2 points by increasing the Goalimpact from 100 to 110. Increasing it from 110 to 120 added another 7.9 and hence more than first increase. If we calculate this for a number of Goalimpact values, we come up with such a distribution of points added per 10 Goalimpact.


As a rule of thumb, a team gains over a season 6 extra points gained by extra 10 Goalimpact. That said, depending on the actual distribution of skill in the league this can be a bit higher. There are two peaks in the chart when moving from a Goalimpact of 80 to 90 an when moving from 110 to 120. If you have a lot of opponents at a distance of 10 Goalimpact points, increase you team's quality further may hence be extra efficient.

Conclusions

10 Goalimpact points add about 6 points in a league of 18 teams. In some circumstances it may be a bit more than that. We can also estimate the maximum impact a single player has on his team. Imagine a team replaces a below average player with an Goalimpact of 90 by Messi (Goalimpact of 200). Assuming Messi takes all games, this would increase the average Goalimpact by (200 - 90 / 11 = 10. Hence, this transfer would make the team jump up 6 points in the expected league table. Quite a bit, but probably much less than people would instinctively expect given this extreme transfer. We can conclude, that you can't aim for the one killer signing that will let you play for Champions League. You need to improve the overall team quality on all positions to move from average Bundesliga (110) to Champions League qualification contender (130+). Or sign two Messis.

Sonntag, 7. Juni 2015

Bundesliga: Season-Ticker 2015/16

We try a new format here. This post will be regularly updated throughout the season presenting current expectations of the final season standings. Until the season starts, transfers will be the biggest driver of  change in expectations. Injuries during the season preparations might be a factor, too. After the transfer window ends, movements will be driven by games results, suspensions and injuries alone.


29.06.2015

HSV
- Maximilian Beister leaves and joins Mainz
- Ashton Götz's return from injury is delayed until mid August, so he will miss the first match day

Mainz
- Maximilian Beister from HSV joins

Werder Bremen
- Nils Petersen left to join Freiburg in the 2. Liga.

Stuttgart
- Keeper Thorsten Kirschbaum will play in future for Nürnberg in 2. Liga
- Czech U21 national player Jan Kliment signed a contract until 2019
- Keeper Mitchell Langerak joins from Dortmund

Ingolstadt
- Danilo Soares' injury seems to take longer than previously anticipated. He us now listed as injured until end September

Schalke
- Maurice Multhaup and Thilo Kehrer joins the first team from Schalke's own youth team




28.06.2015

I forgot to remove the home field advantage part of the schedule randomization code. So from now on it really uses the actual schedule. Other changes are

HSV
- Maximilian Beister leaves and joins Mainz. A loss of 0.9 points.

Mainz
- Maximilian Beister from HSV joins adding 0.6 points.

Werder Bremen
- Nils Petersen left to join Freiburg in the 2. Liga. No big impact.


26.06.2015

The forecasts now use the real schedule instead of a random one. This had only little influence.


Mainz
- Shinji Okazaki left to join Leicester. Big loss of 0.8 points.

Werder Bremen
- Goalkeeper Richard Strebinger left the club.



    25.06.2015

    Darmstadt
    • added left back Michael Stegmayer that was missing in the list
    • Jan Rosenthal joined the club. He played last season already for them on loan basis
    • Mario Vrancic joins. He is rated highly and hence a big support
    • Sandro Sirigu prelonged his contract until 2017

    Schalke
    • Timon Wellenreuther plays next season at Mallorca on loan basis
    • Fabian Giefer is reported injured another three months
    • Junior Caicara joins as left back
    • Johannes Geis from Mainz joins until 2019

    Hertha
    • John Heitinga moves to Ajax Amsterdam. He is rated still high despite not playing much last season. This is a major loss

    Ingolstadt
    • Danilo Soares has been operated and is expected to miss the season start. Listed as injured until end August
    • Markus Suttner from austria Wien joins as left back. Excellent signing.
    • Elias Kachunga is the new forward of the team

    BVB
    • Marvin Ducksch is still injured and not expected to return before end of August

    Stuttgart
    • Przemyslaw Tyton signs until 2017. He has much impact because he will be #1 keeper replacing Ulreich
    • Lukas Rupp signs until 2018

    Hoffenheim
    • Roberto Firmino leaves for Liverpool.

    Bayern
    • Pepe Reina leaves

    Mainz
    • Fabian Frei gets a contract until 2019

    Frankfurt
    • Enis Bunjaki from the own youth is joining the first team

    Köln
    • Philipp Hosiner joins on loan bassi for one season

    20.06.2015

    1. FC Köln
    • Hoffenheim's Anthony Modeste joins until 2019. He isn't rated high so not many points added by this transfer
    • Daniel Halfar leaves the club heading for Kaiserslautern in 2. Liga. That's a loss of 0.7 points bringing Köln closer to relegation battle.

    Hoffenheim
    • Marko Maric joins next Summer after being signed and loaned for next season.


    Mainz
    • Leon Balogun joins without transfer fee as his contracted with Darmstadt ended this summer. No big impact expected though.

    Augsburg
    • Dominik Kohr from Levekusen joins the team. He already played for them on loan basis last season. Strong signing expcted to add 0.8 points in the final standings

    Hertha
    • Mitchell Weiser from Bayern Munich joins until 2018. He will certainly make the team better and adds 0.4 points.


    17.06.2015

    Hoffenheim
    • Mark Uth from sc Heerenveen joins
    • Czech national player Pavel Kadeřábek from Sparta Praha signs a contract until 2019. Kadeřábek currently has a Goalimpact of 121.6 and is a strong addition increasing Hoffenheim's number of expected points by 0.4

    Mönchengladbach
    • Josip Drmic from Leverkusen joins until 2019

    Frankfurt
    • Keeper Heinz Lindner from Austria Wien joins until 2017. He has an excellent Goalimpact and raises Frankfurt's expected points by a substantial 1.5. However, it is unclear if he will replace Kevin Trapp should Trapp stay.


    16.06.2015

    Mönchengladbach
    • Nico Brandenburger leaves for a season loan spell. Due to his low Goalimpact of 90, there is limited impact of the season expectation.

    Hannover 96
    • Joselu leaves to Stoke City. Due to Joselu low Goalimpact of 87, there is limited impact on the season expectation.

    Leverkusen
    • Maximilian Wagener leaves on another loan spell. As his regular contract also ends next seasons, he basically leaves the club entirely.

    Eintracht Frankfurt
    • Young keeper talent Yannick Zummack signed his first professional football player contract until 2016. Current Goalimpact is only 70, so he is not expected to make any appearance in the first team.


    Bayern Munich
    • VfB Stuttgart keeper Sven Ulreich signs a contract until 2018 at the German champion. This is not improving Bayern, but weakening Stuttgart.
    Because Stuttgart no longer has a goalkeeper under contract of Bundesliga level, their expectations dropped significantly. Here is action needed.


    15.06.2015

    Updating the prediction for the following changes:

    Köln
    • Mavraj injured. Assumed to return December 1st
    • Lukas Klünter added to the first team
    • Dominique Heintz bought from 1. FC Kaiserslautern


    Hannover 96
    • Hiroshi Kiyotake has broken feet. Assumed to return 18.09.2015
    • Leon Andreasen extends contract one year until 2016


    Leverkusen
    • Admir Mehmedi from SC Freiburg joins.


    Frankfurt
    • Alexander Meier injured until October


    Mainz
    • Florian Niederlechner joined until 2019


    Schalke
    • both Felix Platte and Marvin Friedrich extend until 2018


    1899 Hoffenheim
    • Tobias Weis doesn't return after the loan and leaves the club
    • Janik Haberer is sent on a one season loan spell


    Dortmund
    • Roman Bürki signs at the club
    The overall impact of these changes were not very large.



    10.06.2015

    Some more events need to be considered:
    • Joelinton de Lira joined Hoffenheim
    • Stefan Kutschke left Wolfsburg and joined Nürnberg in the 2. Liga
    • Schalke's Atsuto Uchida underwent an operation. So far no indication that he will miss the season start so change due to this one.
    • Julian Weigl joined Dortmund
    • Marcel Risse extended his contract at Köln until 2019. This has no influence as he was expected to play next season anyway
    • Oliver Sorg joined Hannover 96


    Dortmund doesn't find much improvement in Weigl. Hoffenheim's signing of Joelinton is very good, but he's not expected to improve them much in his first season, but more impact may come thereafter.

    Hannover, on the other hand, did an excellent job in getting Sorg onboard. He improved their expected points by 1.4 and by this they overtook Mainz and Frankfurt in the expected final standings.

    07.06.2015

    The Champions League final 2014/15 is over with Barca being the deserved winner. This was the end point of the season. Time to look to the future.

    To give you an impression of this, here are the expectations for the next seasons as of 4th of June.


    These expectations assume that no further transfers are made. Of course this is not going to happen, so if your team scores low on this ranking: not all hope is lost. Especially Darmstadt will, and will need to, get more players of Bundesliga level on board.

    In fact, since the 4th of June, some things changed already


  • Stefan Kutschke returns to Wolfsburg 
  • Papadopoulos moves to Leverkusen (he was on loan only last season)


  • As the following table shows, the arrival of Stefan Kutschke at Wolfsburg didn't really have an impact. He is unlikely to get much playing time. Leverkusen's signing of Papadopoulos, in contrast, increased their expected points by 0.8 given them an edge against Mönchengladbach. Schalke's expectations fell by 0.8 as they lost a capable player.


    Let's see how this evolves. If you there are changes to the teams (injuries, transfers, ...) that we should consider, please drop us a comment and we will post an update.

    Samstag, 6. Juni 2015

    Juventus vs. FC Barcelona: Goalimpact of Lineups


    Odds based on starting XI: Juventus: 18.6%, Draw: 27.3%, FC Barcelona: 54.2%. Let the game begin...

    Juventus

    PlayerGoalimpactPeak GIAgeLast National TeamNo. GamesNo. Minutes
    Gianluigi Buffon156.0168.637.3Italien78572757
    Claudio Marchisio146.3152.329.3Italien35428930
    Morata136.9148.022.6Spanien1337021
    Leonardo Bonucci153.2157.128.1Italien32929471
    Andrea Pirlo117.3160.936.0Italien75060101
    Andrea Barzagli125.2154.334.1Italien48043039
    Arturo Vidal176.8180.528.0Chile38131393
    Paul Pogba130.7143.322.3Frankreich16312773
    Patrice Evra147.0176.034.1Frankreich60452543
    Stephan Lichtsteiner128.6144.731.3Schweiz45937063
    Carlos Tévez158.2173.931.3Argentinien54040879
    Average143.3160.030.4
    Bench
    Roberto Pereyra120.3124.724.4Argentinien [U20]20514360
    Kingsley Coman86.3127.619.0Frankreich [U19]392043
    Marco Storari89.5104.238.421720231
    Simone Padoin100.5115.531.2Italien [U21]25717499
    Stefano Sturaro103.6116.122.3Italien [U21]583908
    Angelo Ogbonna112.4114.327.0Italien22118435
    Llorente145.1153.830.3Spanien42828917
    Average108.2122.327.5


    FC Barcelona

    PlayerGoalimpactPeak GIAgeLast National TeamNo. GamesNo. Minutes
    Jordi Alba153.4153.826.2Spanien29222878
    Lionel Messi200.9204.527.9Argentinien54745250
    Neymar161.0169.323.3Brasilien25220272
    Piqué187.6191.928.3Spanien41935833
    Iniesta164.9178.931.1Spanien60943549
    Ivan Rakitić158.6160.827.3Kroatien42831031
    Marc-André ter Stegen145.1171.523.1Deutschland [U21]20218956
    Dani Alves167.1187.632.1Brasilien60351920
    Luis Suárez170.8175.128.3Uruguay43436964
    Javier Mascherano170.0183.531.0Argentinien52544627
    Busquets194.3195.926.8Spanien37630180
    Average170.3179.327.8
    Bench
    Adriano160.2171.130.6Brasilien39928149
    Rafinha111.6123.822.3Brasilien [U20]15811733
    Xavi133.0171.635.3Spanien83066041
    Pedro187.8191.227.8Spanien34721549
    Bartra144.0148.624.3Spanien15212512
    Jérémy Mathieu129.0146.431.6Frankreich [U21]44035647
    Claudio Bravo146.0148.332.2Chile33430901
    Average144.5157.329.2



    Sonntag, 24. Mai 2015

    Backtesting Bundesliga 2014/2015

    This year's Bundesliga season was a special one. Not in the sense that we saw a surprise winner, but it had some features that made it feel unique. Most of all maybe Dormund's roller-coaster favorite on rank 2, to the rock bottom of the league ending rank 17 after the first season half and then rising to rank seven that allows for qualification round to UEFA Europa League.

    A similar ride took Werder Bremen, that after replacing its trainer Robin Dutt by Victor Skripnik underwent a transformation from a sure relegation team to a team that nearly qualified to the Europa League. They actually played Dortmund on the last day and had still some chance to play in Europe next season, but lost it.

    The season will also be remember for its close relegation battle, the closest since years. On the last match day, no team was relegated for sure and even the complete outsider SC Paderborn was only a victory away from staying in the league.

    How does all this look in numbers? Let's start with the preseason probabilities of the teams. (Those numbers are according to the new version of the algorithm which didn't exist when the season started. Hence this is back calculated and not factual preseason)


    The table shows the probability for each team to end on each rank. If a cell is empty, the team never finished on the rank in any of the 50,000 simulated season that we used to generate this. While the chance to end on that rank is not theoretically really zero, for practical reasons it is. The black squares indicate the rank the team actually did finish the season.

    From the start, Bayern Munich was set to win the league. They are so much better than the other teams, that they even never finished below rank 11 in any of the 50,000 tries in the simulation.

    More interesting is the rank of Borussia Dortmund. They ended up rank 7. Preseason we gave this only a 2.7% chance to happen. But this was only the second most surprising thing to happen: FC Augsburg to end up on rank 5 had only a 1.5% chance according to Goalimpact. Actually, they were expected more to be engaged in a battle against relegation than in a battle for Europe.

    The bad performance of HSV was the next biggest surprise. Preseason, we had only a 3.3% chance that it would be that bad. Despite changing their trainer so often that you could on this HSV season's data alone conduct a study that changing has little impact, they ended on rank 16 and will fight in play-offs against relegation just like last season.

    The opposite evidence was provided by Werder Bremen. After the change to Victor Skripnik Werder rose from acute relegation risk (as predicted preseason) to a final rank 10. This was the fourth most surprising outcome given the preseason estimates. But given that the first half of the season was to large parts really really bad, just how surprising was the rescue by Skripnik? The following table shows the predicted outcome half way through the season.


    Given the performance in the first half, ending up on rank 10 had only a probability of 2.4%. This Bremen miracle wasn't a small one, albeit still not in the dimensions of Augsburg's qualification to Europa League. Borussia Dortmund's race to Europe wasn't that unexpected. Actually, despite being on the bottom of the table after half the season, rank seven and eight were the most probable ones for Dortmund to end on. Apart from Bremen's winning streak and Hanover falling apart, not really many surprising things happened in the second half of the season. Nearly all teams ended close to the likely ranks.

    Let's move away from ranks and look at the predicted points.


    Goalimpact explained the actial points this Bundesliga season with an R² of 60%.  Deviations are randomly distributed above and below. The overall calibration seems good indicated by a regression slope close to 1. After half of the games were played, things got more settled. At that time, the final results were explained already by 82%.


    But this includes actual results from the first half of the season and hence part of the correlation stems from there. How good was the second half stand-alone explained?


    The R² for the second half was 46%. Well beyond assuming the same number of points like in the first half which leads to a R² of only 27%. The dot at (31; 31) is Dortmund. They did earn exactly as many points in the second half as you would expect given their strong players. Hence the qualification to Europe is hardly a surprise. The extraordinary few points in the first half of the season were the real surprise. And there they were very unlucky.

    If there is a team that seems to constantly outperform Goalimpact's predictions, it is the FC Augsburg. As shown above, them entering the Europa League was the most unexpected event in this Bundesliga season. However, all over-performance was in the first half of the season. The 22 points they earned in the 2nd half were close to the low expectations of 19.7. In the first half of the season they were expected to earn only 18.5 points, but earned 27. So we feel still undecided. Is Augsburg really that good in forming a team stronger than its parts, or were they as lucky in the first half of the season as Dortmund was unlucky? Maybe a bit of both.

    Thank you for bearing us so long, only one more chart. If we look at the expected distribution per rank that were predicted pre-season, we have nearly no surprises whatsoever.


    Predicting how many points one would need to stay in the league, turn's out to be very easy even preseason. We predicted rank 16 to have 34.5 points and it turned out to be 35. We predicted rank one to finish with 74.6 points and Bayern earned 79.

    This is important when considering if in a particular game a draw might be sufficient or if a team should play for a win. If the point distribution is so predictable, this might matter even early in the season.

    Summary

    There have been quite some surprises in the Bundesliga, especially in the first half of the season. Dortmund having the fewest number of points after 17 matches was very very unlikely - as was Augsburg having 4th most points . Their both subsequent qualifications to Europe were, in contrast, expected. The resurrection of Werder Bremen was the biggest surprise in the second half.

    Dienstag, 5. Mai 2015

    Reader's Notice: Publication of Goalimpact

    We are happy to announce that the results of the new Goalimpact algorithm are published for the Premier League and for the Bundesliga on our partner sides

    Especially on PremierInsider there might still be some missing charts. We are working on it.

    Have fun while browsing!

    Montag, 4. Mai 2015

    How good is Red Bull's Stefan Ilsanker?

    One of the most surprising results of the latest top-50 list of football players, was the high ranking of Stefan Ilsanker. He was rated despite playing in the mediocre Austrian Bundesliga, albeit at the league dominating Red Bull Salzburg. So the question of this post is: How much Red Bull is in Ilsanker's Goalimpact?

    One way to look at Goalimpact, is to think of it how good a team plays with a player compared to the team without. In this case, the Goalimpact is calculated by the difference in goals scored, the difference in goals conceded and the average Goalimpact of the replacements. This is only simplified, because Goalimpact corrects for other factors such as the home field advantage, too, but it is a good starting point that is reasonably good if calculated over many games.

    The following chart shows Red Bull Salzburg's goal difference with and without Ilsanker starting from July 2012 until today.


    As you can see, with Ilsanker Salzburg had an average goal difference of 1.96. Without him only of 1.56. So there is a strong improvement of results of 0.4 goal difference per game if Ilsanker plays. To put this in perspective. If Red Bull was to play all league matches with Ilsanker, Red Bull would be expected to end up with a total goal difference of +71. A season without him would be less dominating and ending with a goal difference of 'only' +56.

    This is only an indication that Ilsanker does improve the team significantly. As argued before, there might be other factors that correlate with Ilsanker playing that create this improvement in goal difference. One example would, e.g., be the quality of opposition. If Ilsanker would only play against bad opposition then Salzburg's goal difference would be good because of that rather than Ilsanker's brilliance. However, given that Goalimpact corrects for this it may not be the case here.

    Another caveat of our analysis is that we showed that Ilsanker adds goal difference to the team, but maybe the team as such is overvalued? Let's perform another test trying to address both points. If we redo the analysis, but only on the UEFA games of Salzburg, we can see if they are strong there, too. Additionally, we can assume that Salzburg will play its best players in European matches.

    In total, we have 28 matches of Salzburg on European level since July 2012. In the 2036 minutes with Ilsanker, Salzburg had a goal difference of +25 (51 to 26). In the 568 minutes without him it was +5 (12:7). In goal difference per minute this makes 1.14 with him and 0.82 without him. Even in this subsample he added 0.32 of goal difference. Slightly less than on the whole sample, but still a handsome adder.

    Since Salzburg's goal difference is positive even in the European matches, it looks like they are not per se overvalued. However, they didn't meet very big teams too often, so it is difficult to tell for sure, but they met

    • Fenerbahce: one 1:1 draw and a  1:3 defeat. Both with Ilsanker
    • AFC Ajax: two victories. 3:0 and 3:1. Both with Ilsanker
    • FC Basel: one 0:0 draw and a 1:2 defeat. Both with Ilsanker
    • Dinamo Zagreb: two victories. 4:2 and 5:1. Both with Ilsanker
    • Celtic FC: one 2:2 draw and a 3:1 win. Both with Ilsanker 
    • Villarreal CF: two defeats. A 1:2 on road with Ilsanker and a 1:3 without at home.

    All defeats came against teams that were lower ranked than they. This indicates that there might be an overvaluation of Red Bull Salzburg, but we are talking very small N now. Other team ratings, rank Salzburg considerably lower. So there is an indication, that Salzburg is overvalued and, in turn, Ilsanker is. but the uncertainty is significant. However, there is strong evidence that Ilsanker is pivotal to Salzburg's performance and hence sticks out in the team.

    Let's look forward to the next European season and Salzburg's next try to play Champions League. We will get a clearer view then on where they stand. Hopefully they'll play with Ilsanker.

    Samstag, 2. Mai 2015

    How fast does Goalimpact converge?

    If you saw only few games of a player, it is hard to tell if he is good or not. If you saw all games of a player in his career after he retires, you will have a pretty clear picture if he was any good. In this article we test after how many games Goalimpact is giving a good estimate of the player's ability.

    Before we can test the algorithm, we need an estimate of the true ability of the player. We do this, by restricting the sample on players that finished their career already. For those we proxy the true skill by their career end Peak Goalimpact. To eliminate players where this isn't a good proxy for true skill, we further restrict the sample to players that had at least 20000 minutes of playing time at the end of the career. The average player remaining in the sample had 32,000 minutes playing time at career end.

    Now we will compare the predicted PeakGI after a limited number of minutes, early in the career, with the career end PeakGI. We quantify the quality of prediction by R² in the following table.

    Minutes Field Player Goalkeeper
    1000 8.30% 5.05%
    2000 15.20% 8.87%
    4000 28.70% 19.99%
    8000 50.87% 40.88%

    So after 1000 minutes of a field player, slightly more than ten games, the then estimated PeakGI explains 8.3% of the variance of the career end PeakGI. That is still a pretty uncertain prediction, but given that this is based on only 1000 minutes, the information content is surprisingly high. Goalimpact actually does separate good and less good players after just 10 games to some extend.

    After twice as many minutes the explained variance is already more than 15%. This is a very good result because 2000 minutes is just a bot more than half a season of input. So very early in a players career Goalimpact shows his discriminatory power.

    Another doubling of the number of observed minutes and the R² raises to nearly 30%. And it becomes more than 50% after just 8000 minutes or about two seasons worth of observations. Many players will not be even 22 by then. In fact, if we further restrict the sample to players that reached 8000 minutes of observation before turning 22 years, the R² is still an outstanding 34%.


    For goalkeepers the results are consistently lower, but they stay in the same order of magnitude. The prediction quality for goalkeepers with 8000 minutes of playing time is still a very good 40%.

    Summary

    We showed that the PeakGI early in the career is predictor for the future career path of the player. After as few as 10 games, we already found some predictive power. After 8000 minutes, a large part of the true skill difference between players has been identified - even for very young players. For goalkeepers results are consistently lower, but in the same order of magnitude.