Experiments in plotting player performance

How do you evaluate soccer players? Is there a way to examine a given player, in the context of his or her team, regardless of their position on the field?

This is an issue that I’ve been somewhat preoccupied with this season, and the question has led me to put together a plot style that attempts to answer those sorts of questions. Here is an example:

Player Performance: Columbus Crew SC as of July 20, 2015This scatterplot depicts all the players who have appeared for Columbus Crew SC this season. Each player is located along two axes: their playing time (along the horizontal axis, as a percentage of the team’s games) and their personal goal difference (the vertical axis). Players who are constantly on the field are found toward the right of the graph, rarely-used substitutes on the left. Players who are on the field for strong performances tend to move higher on the graph, while those who see more goals conceded sink to the bottom.

If you are familiar with hockey, you already know the concept of “Plus Minus” – goals your team scores, minus goals you concede, only for the minutes you are on the field. This is equivalent to “Personal Goal Difference” on these charts.

Granted, this metric has been criticized in soccer, and tales of caution are easy to find. Stay with me, however. I’m interested less in finding the single best player across the league than I am in understanding how teams use their rosters, and identifying what patterns might emerge from a fairly simple calculation.

With the above instrument in mind, then, I set out to generate plots for each team in Major League Soccer. The analysis includes all league games through Sunday, July 19th. After assembling these plots, a number of patterns began to emerge.

Player Performance: Columbus Crew SC as of July 20, 2015Player Performance: New York Red Bulls as of July 20, 2015

Some teams, like the Red Bulls and Crew SC, have seen a clear demarcation between their regulars and reserves. The plots above show two clusters of players – starters on the right, and bench players on the left. New York has eleven players who have played more than 65% of the season, while their most-used substitute – Karl Ouimette – has only played 30% of the team’s minutes.

Columbus shows a similar trend, with ten players having appeared for more than 70% of the season. Were it not for Wil Trapp’s injury and Hernan Grana leaving for Argentina, that trend may be even more pronounced.

There is another phenomenon visible in these two charts, which we will revisit later. For now, simply note the amount of vertical space these two teams take on the plot. Columbus players are clustered vertically within close range of each other, while some New York players – Matt Miazga and Damien Perrinelle most notably – are significantly above or below their teammates.

Player Performance: Real Salt Lake as of July 20, 2015Player Performance: Toronto FC as of July 20, 2015Player Performance: Vancouver Whitecaps as of July 20, 2015

Not every team has put such an emphasis on a small group of players, however. Above, the plots for another batch of teams (Real Salt Lake, Toronto FC, and Vancouver Whitecaps) show a much more even spread of players across the horizontal axis. There is no meaningful distinction on these rosters between “starter” and “reserve”. Some players (Sebastian Giovinco, David Ousted) are nearly always on the field, while others (Abdoulie Mansally, Gershon Koffie) are played about half the time.

Player Performance: Colorado Rapids as of July 20, 2015Player Performance: Orlando City SC as of July 20, 2015Player Performance: Philadelphia Union as of July 20, 2015

A third group of teams have significantly more turnover in their roster. Colorado, Orlando City, and Philadelphia have at most one player who have played more than 90% of their season. Compare this with Columbus and New York above, who each have four players past that threshold. Colorado has seen so much turnover in its roster that only two players have played more than 75% of the season – a stark contrast to Columbus, with ten players at higher than 70%. Philadelphia has only one player above the mid-70s, while Orlando has two.Player Performance: New England Revolution as of July 20, 2015

Turning our attention to the vertical axis, another pattern becomes clear. Above are the plots for Houston (top) and New England (below). Both teams have posted similar records: Houston has a 1.2 points per game average, New England has 1.23. Yet the two team rosters appear very different.

Houston’s players are tightly grouped together vertically, with little gap between their best-performing player (Oscar Boniek Garcia, whose Personal Goal Difference is +3) and their worst (a handful of players at -3). The Revolution, meanwhile, vary widely. They boast two of the three worst-ranked players in the league (Kevin Alston is -14, Jose Goncalves is -12) yet Charlie Davies comes in at +6. The comparison becomes more interesting when you realize that Davies and Goncalves have each played more than 70% of the season – so they’ve spent a significant amount of time together on the field.

It will be interesting to follow the fortunes of some of these teams as the jockeying for playoff position becomes more intense. Will Columbus and New York continue to ride the same core of players, or will they need to diversify? With unsettled teams like Philadelphia or Colorado find some stability? Are there teams that can win consistently without such a stable core? What about teams like New England – or even Los Angeles – who have players who are rated very differently in this metric? Can under-performing – yet consistent – teams like Chicago ride a player who gets hot, or do they need to inspire everyone to incrementally better play?

Stay tuned.

Plots for each team in Major League Soccer are found below, if you want to look them over yourself. As always, feedback is welcome.


Team-specific performance charts

Chicago

Player Performance: Chicago Fire as of July 20, 2015

Colorado

Player Performance: Colorado Rapids as of July 20, 2015

Columbus

Player Performance: Columbus Crew SC as of July 20, 2015 

DC

Player Performance: DC United as of July 20, 2015 

Dallas

Player Performance: FC Dallas as of July 20, 2015

Houston

Player Performance: Houston Dynamo as of July 20, 2015

Kansas City

Player Performance: Sporting Kansas City as of July 20, 2015

Los Angeles

Player Performance: Los Angeles Galaxy as of July 20, 2015

Montreal

Player Performance: Montreal Impact as of July 20, 2015

New England

Player Performance: New England Revolution as of July 20, 2015

New York

Player Performance: New York City FC as of July 20, 2015

New York City

Player Performance: New York City FC as of July 20, 2015

Orlando

Player Performance: Orlando City SC as of July 20, 2015

Philadelphia

Player Performance: Philadelphia Union as of July 20, 2015

Portland

Player Performance: Portland Timbers as of July 20, 2015

Salt Lake

Player Performance: Real Salt Lake as of July 20, 2015

San Jose

Player Performance: San Jose Earthquakes as of July 20, 2015

Seattle

Player Performance: Seattle Sounders FC as of July 20, 2015

Toronto

Player Performance: Toronto FC as of July 20, 2015

Vancouver

Player Performance: Vancouver Whitecaps as of July 20, 2015

Leave a Reply

Your email address will not be published. Required fields are marked *