Explanation of my Visualisations
This is a living document and further detail will be added over time
A number of these visualisations has been inspired and influenced by the work of other especially Ben Mayhew. He runs Experimental 3–6–1 and produces visualisations for various European leagues.
A-League Visualisation
Attendances
A-League Player Visualisations
Goals Per 90
How many goals players have scored per 90 minutes of playing time. In the example below Santalab is known to come on as a substitute and tends to score in the last 25–30 minutes of matches.
A-League Team Visualisations
Shot Dominance
Defensive Effectiveness
Attacking Effectiveness
Good vs. Lucky
Goal Difference vs. Shots on Target Difference
Defensive vs. Attacking Total Shot Ratio
Visual Cann Table
Permutations
Scored First, Didn’t Lose
Simple track of how many times clubs scored first and either won or drew the match. So in the example below Western Sydney Wanderers have a streak of 21 games where they’ve scored first and went on to not lose the game.
Time Spent
Tracking of the percentage of match time club have spent in certain positions: winning, losing, drawing. In the example below Sydney FC have spent 5.8% of their entire match time in a losing position. This equates to approximately 5 minutes per 90 minutes of football.
ELO Probabilities
Part of the calculation of ELO is a pre-match probability of each club winning. This visualisation is simply the calculation and visualisation of this. See the glossary for further information about ELO.
Round Predictions
These are the predicted match outcomes that my model spits out. It’s not a particularly complex model and is therefore not particularly accurate. There is intent to improve it however that requires further time investment.
ELO Ratings
Relatively standard Football ELO Ratings (see Glossary) with the change over the previous week of games.
Glossary
If I’ve missed something let me know and I’ll add it. Disclaimer: not all data sources are the same since definitions can be somewhat subjective, ie was a shot on target or not needs to fit within a certain criteria however the categorisation is, in most cases, still done by a human.
Shot
All shots taken including on target, blocked, missed etc
Shot On Target
Attempts on goal that would have gone into the net or would have had there not been intervention by the goalkeeper or defender.
Shot Off Target
Any attempt on goal where the ball is wide of the target or hits the woodwork.
ELO
The Elo rating system is a method for calculating the relative skill levels of players in competitor-versus-competitor games such as chess. — Wikipedia
The ELO rating system has been adapted for football taking into consideration size of victory, home field advantage and match importance.
My rating been created specifically for an A-League specifically using it’s own K (weight index) value and HFA (Home Field Advantage) value.
Shots on Target Ratio (SoTR)
The ratio of shots on target for vs total shots on target for and against, ie SoT For / (SoT For + SoT Against)
Total Shots
The total number of shots attempted in a match, ie Shots For + Shots Against.
Total Shot Ratio (TSR)
Ratio of shots for vs the total number of shots in the game, ie Shots For / (Shots For + Shots Against)
PDO
Scoring % + Save %
Per 90
Match statistics are challenging to compare individuals directly given not everyone plays an entire 90 minutes of football each week. Factoring in the amount of playing time allows a closer comparison of how much impact each player has regardless of playing time.
Frequently Asked Questions
Where do you get your data from?
The first rule of scraping football data is: You don’t talk about scraping football data.
Result based data is generally from Ultimate A-League. They’ve kindly allowed me access to their data and it is credited accordingly. If you’d like to share A-League data with me I’m more than happy to use it and credit you as a source.
What Software do you use?
I’ve a technical background dealing with all kinds of data so my toolset sits at the more technical end.
- For data storage Postgres
- Scripting done using Python
- Visualisations using Tableau, however I’m testing ggplot and some other similar libraries with Python to incorporate a lot more automation.
How do I contact you?
The easiest way is via @rovingrob on Twitter.
