A guest post from Sbusiso Mkhondwane
Introduction
I have been going back and forth for a while about doing some form of data analysis and sharing it. The first attempt was to collect the data for my car’s movement, from the locations I visited to the car’s speed. I have four years worth of data and in a tidier format. Part of the reason for wanting to do data analysis was the R language and the http://r4ds.had.co.nz book. R appeared like a tool that allowes you to feel as if you are in control and it’s flexable. What do I mean here? Hadley Wickham once said something along these lines; “The different between R language and other languages: Programming languages provide contracts. These are the things you can do and these are the things you can’t do. In many programming languages that’s like a legal contract. It spells out explicitly like what you can do and can’t do, and things you can’t do there’s no way you can do them. While with R, it’s more like a contract between friends, like you really shouldn’t do this but if you really want to, you can go ahead and do it.”. Another plus for doing this is to improve my data science skill and hopefully get some useful advise from the R community.
While I had some questions I really wanted to answer based on my car’s data, and I hadn’t really decided about how to go about doing data analysis on it. While I was reading the R for Data Science book about ggplot2, a recommendation was made about three good books on data visualisation and this was one of them Graphical Data Analysis with R by Antony Unwin. On his website http://www.gradaanwr.net, Antony had an example on how to visualise English soccer league. He used a package called engsoccerdata by James Curley. So I went into github and started reading some information about this package. Now I had an interest in doing some analysis on the South African football league (PSL) but I realised that the package didn’t have the PSL’s data.
I saw this as my first real attempt at contributing to the R community, by asking him, if I can contribute the PSL data to his package and he agreed. I have shared it with James and I’m looking forward to the day, he includes it onto his package.
Tool Used
This data analysis was done on RStudio (R version 3.4.2 (2017-09-28)) and mainly using the rmarkdown package. Other R packages were used in doing this analysis. I will shared the rmarkdown code, after adding some comments and doing some house-cleaning.
PSL Results
The PSL dataset used here is from 2002 and contains each result of matches played since. The reason for picking 2002 over 1996, is based on the fact that the PSL went from 18 teams to 16 teams in 2002, after Free State Stars and Ria Stars were bought out by the league for R8 million rand each to reduce fixture congestion. These teams finished the 2001 season in position 11 (44 points) and 12 (43 points), respectively.
Since then, there has been 3679 games played by 34 teams (this should be 32, I will explain this next). A few teams changed their names or sold their football license to other teams. AmaZulu were renamed Zulu Royals and later renamed back to AmaZulu (all the Zulu Royals’ results have been allocated to AmaZulu), Dynamos sold their license to AmaZulu (formerly Zulu Royals), Tembisa Classic sold their license to Maritzburg United and Wits University were renamed Bidvest Wits. Finally, Silver Stars were renamed Platinum Stars and Benoni Premier United changed their name to Thanda Royal Zulu (this change took place during the 2007 season, therefore the Benoni Premier United’s results are allocated to Thanda Royal Zulu).
Overall Result Outcomes
The following plot shows the overall break-down of the number of games 3679 played from 2002 until 22 November 2017. The plot splits the games by result outcome (home-win, draw and away-win).
The plot shows that teams playing at home have won 1502 (40.8%) games compare to the 1059 (28.8%) won by the visiting teams. Moreover, there has been 1118 (30.4%) games that ended in a draw. This means that home advantage is still important in our soccer.
Current Season Result Outcomes
Now, we are going to look at the current season and see if the trend of home-wins is still occurring a lot as compare to the above plot. Only 79 games have been played. From the plot below, we can see that the trend is different compared to the above plot. Could this be attributed to the fact that the small teams have played better so far this season compare to the big teams? Please see the table below this plot to see the break-down of how teams are performaning between home and away games.
The table below shows the current league standing for the 2017 season, it also includes a break-down where the points were won. The games that ended in a draw, I’m not going to show were the points were accumulated. The focus is on the games won. You can see that Mamelodi Sundowns has won the most points 15 away from home, while Baroka FC has won 9 points from away game and they are the log leaders. Interestly, Mamelodi Sundowns and Kaizer Chiefs have not won any home games so far, while Orlando Pirates has not won any away games. It does appear as if the big teams are struggling this season.
season | teams | games | won | draw | lost | goal for | goal against | goal diff | total points | away points | draw points | home points |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2017 | Baroka FC | 11 | 4 | 6 | 1 | 14 | 9 | 5 | 18 | 9 | 6 | 3 |
2017 | Lamontville Golden Arrows | 11 | 3 | 7 | 1 | 14 | 11 | 3 | 16 | 6 | 7 | 3 |
2017 | Cape Town City | 10 | 5 | 1 | 4 | 10 | 8 | 2 | 16 | 6 | 1 | 9 |
2017 | Bloemfontein Celtic | 10 | 4 | 4 | 2 | 8 | 7 | 1 | 16 | 6 | 4 | 6 |
2017 | Mamelodi Sundowns | 8 | 5 | 0 | 3 | 13 | 8 | 5 | 15 | 15 | 0 | 0 |
2017 | Kaizer Chiefs | 11 | 3 | 6 | 2 | 10 | 7 | 3 | 15 | 9 | 6 | 0 |
2017 | Chippa United | 11 | 3 | 6 | 2 | 10 | 8 | 2 | 15 | 3 | 6 | 6 |
2017 | Orlando Pirates | 11 | 3 | 6 | 2 | 8 | 8 | 0 | 15 | 0 | 6 | 9 |
2017 | AmaZulu | 10 | 3 | 4 | 3 | 12 | 13 | -1 | 13 | 3 | 4 | 6 |
2017 | Free State Stars | 10 | 3 | 3 | 4 | 11 | 11 | 0 | 12 | 6 | 3 | 3 |
2017 | Polokwane City | 11 | 2 | 5 | 4 | 12 | 15 | -3 | 11 | 6 | 5 | 0 |
2017 | SuperSport United | 5 | 3 | 1 | 1 | 8 | 4 | 4 | 10 | 3 | 1 | 6 |
2017 | Maritzburg United | 9 | 2 | 4 | 3 | 5 | 5 | 0 | 10 | 3 | 4 | 3 |
2017 | Ajax Cape Town | 9 | 2 | 2 | 5 | 7 | 12 | -5 | 8 | 0 | 2 | 6 |
2017 | Platinum Stars | 11 | 1 | 5 | 5 | 5 | 12 | -7 | 8 | 0 | 5 | 3 |
2017 | Bidvest Wits | 10 | 2 | 2 | 6 | 6 | 15 | -9 | 8 | 3 | 2 | 3 |
Frequency of Final Scores
With 3679 games having been played since 2002, let’s turn our attention to the frequency of the final score lines. The idea here is to look at all type of final scored since 2002, by splitting the frequency by the result outcomes (Home-Win, Draw or Away-Win). The plot indicates that there has been five types of draws since 2002. The most common being the score line 0-0, 1-1 and 2-2. These are the not-so-common draws are 3-3 and 4-4.
The table below provides a summary view of the common draws in PSL and it indicates that there have been five types of draws since 2002.
results outcome | full time score | occurrence |
---|---|---|
Draw | 1-1 | 515 |
Draw | 0-0 | 416 |
Draw | 2-2 | 165 |
Draw | 3-3 | 21 |
Draw | 4-4 | 1 |
Let’s turn to the occurrence of the most common final scores by week-days (the day of the week in which the matches were played). The plot indicates that most of the draws usually happened on Wednesdays and Saturdays. There a number of draws on Sundays too. Apart from having most of the games played on these days, usually on these day you could have more than 4 games being on the day. While other days could have a minimum of one games.
The table below provides a summary view of all the occurrence of the most common final scores.
full time score | result outcome | week day | occurrence |
---|---|---|---|
0-0 | Draw | Sun | 94 |
0-0 | Draw | Mon | 3 |
0-0 | Draw | Tue | 37 |
0-0 | Draw | Wed | 136 |
0-0 | Draw | Thu | 4 |
0-0 | Draw | Fri | 18 |
0-0 | Draw | Sat | 124 |
0-1 | Away-Win | Sun | 73 |
0-1 | Away-Win | Mon | 3 |
0-1 | Away-Win | Tue | 30 |
0-1 | Away-Win | Wed | 121 |
0-1 | Away-Win | Thu | 6 |
0-1 | Away-Win | Fri | 20 |
0-1 | Away-Win | Sat | 97 |
0-2 | Away-Win | Sun | 50 |
0-2 | Away-Win | Mon | 1 |
0-2 | Away-Win | Tue | 11 |
0-2 | Away-Win | Wed | 64 |
0-2 | Away-Win | Fri | 14 |
0-2 | Away-Win | Sat | 45 |
0-3 | Away-Win | Sun | 16 |
0-3 | Away-Win | Mon | 2 |
0-3 | Away-Win | Tue | 2 |
0-3 | Away-Win | Wed | 17 |
0-3 | Away-Win | Fri | 3 |
0-3 | Away-Win | Sat | 18 |
0-4 | Away-Win | Sun | 3 |
0-4 | Away-Win | Tue | 1 |
0-4 | Away-Win | Wed | 7 |
0-4 | Away-Win | Sat | 2 |
0-5 | Away-Win | Tue | 1 |
0-5 | Away-Win | Sat | 1 |
0-6 | Away-Win | Wed | 1 |
0-6 | Away-Win | Sat | 1 |
1-0 | Home-Win | Sun | 95 |
1-0 | Home-Win | Mon | 10 |
1-0 | Home-Win | Tue | 29 |
1-0 | Home-Win | Wed | 141 |
1-0 | Home-Win | Thu | 5 |
1-0 | Home-Win | Fri | 39 |
1-0 | Home-Win | Sat | 145 |
1-1 | Draw | Sun | 112 |
1-1 | Draw | Mon | 3 |
1-1 | Draw | Tue | 43 |
1-1 | Draw | Wed | 165 |
1-1 | Draw | Thu | 9 |
1-1 | Draw | Fri | 34 |
1-1 | Draw | Sat | 149 |
1-2 | Away-Win | Sun | 60 |
1-2 | Away-Win | Mon | 4 |
1-2 | Away-Win | Tue | 26 |
1-2 | Away-Win | Wed | 72 |
1-2 | Away-Win | Thu | 1 |
1-2 | Away-Win | Fri | 15 |
1-2 | Away-Win | Sat | 73 |
1-3 | Away-Win | Sun | 15 |
1-3 | Away-Win | Mon | 2 |
1-3 | Away-Win | Tue | 8 |
1-3 | Away-Win | Wed | 25 |
1-3 | Away-Win | Fri | 7 |
1-3 | Away-Win | Sat | 27 |
1-4 | Away-Win | Sun | 8 |
1-4 | Away-Win | Wed | 5 |
1-4 | Away-Win | Thu | 1 |
1-4 | Away-Win | Sat | 8 |
1-5 | Away-Win | Sun | 1 |
1-5 | Away-Win | Tue | 1 |
1-5 | Away-Win | Fri | 1 |
1-5 | Away-Win | Sat | 1 |
2-0 | Home-Win | Sun | 60 |
2-0 | Home-Win | Mon | 3 |
2-0 | Home-Win | Tue | 18 |
2-0 | Home-Win | Wed | 91 |
2-0 | Home-Win | Thu | 3 |
2-0 | Home-Win | Fri | 18 |
2-0 | Home-Win | Sat | 81 |
2-1 | Home-Win | Sun | 63 |
2-1 | Home-Win | Mon | 5 |
2-1 | Home-Win | Tue | 22 |
2-1 | Home-Win | Wed | 94 |
2-1 | Home-Win | Fri | 17 |
2-1 | Home-Win | Sat | 107 |
2-2 | Draw | Sun | 41 |
2-2 | Draw | Mon | 1 |
2-2 | Draw | Tue | 19 |
2-2 | Draw | Wed | 40 |
2-2 | Draw | Thu | 3 |
2-2 | Draw | Fri | 10 |
2-2 | Draw | Sat | 51 |
2-3 | Away-Win | Sun | 14 |
2-3 | Away-Win | Tue | 7 |
2-3 | Away-Win | Wed | 10 |
2-3 | Away-Win | Fri | 6 |
2-3 | Away-Win | Sat | 21 |
2-4 | Away-Win | Sun | 2 |
2-4 | Away-Win | Wed | 6 |
2-4 | Away-Win | Thu | 1 |
2-4 | Away-Win | Sat | 6 |
2-5 | Away-Win | Sun | 1 |
2-5 | Away-Win | Tue | 1 |
2-5 | Away-Win | Wed | 4 |
2-5 | Away-Win | Sat | 1 |
3-0 | Home-Win | Sun | 15 |
3-0 | Home-Win | Tue | 12 |
3-0 | Home-Win | Wed | 33 |
3-0 | Home-Win | Fri | 6 |
3-0 | Home-Win | Sat | 37 |
3-1 | Home-Win | Sun | 31 |
3-1 | Home-Win | Mon | 1 |
3-1 | Home-Win | Tue | 7 |
3-1 | Home-Win | Wed | 38 |
3-1 | Home-Win | Thu | 1 |
3-1 | Home-Win | Fri | 9 |
3-1 | Home-Win | Sat | 41 |
3-2 | Home-Win | Sun | 12 |
3-2 | Home-Win | Mon | 1 |
3-2 | Home-Win | Tue | 9 |
3-2 | Home-Win | Wed | 13 |
3-2 | Home-Win | Thu | 2 |
3-2 | Home-Win | Fri | 5 |
3-2 | Home-Win | Sat | 26 |
3-3 | Draw | Sun | 4 |
3-3 | Draw | Tue | 2 |
3-3 | Draw | Wed | 8 |
3-3 | Draw | Fri | 1 |
3-3 | Draw | Sat | 6 |
3-4 | Away-Win | Sun | 1 |
3-4 | Away-Win | Wed | 1 |
3-4 | Away-Win | Fri | 1 |
3-4 | Away-Win | Sat | 4 |
3-5 | Away-Win | Sat | 1 |
4-0 | Home-Win | Sun | 6 |
4-0 | Home-Win | Tue | 2 |
4-0 | Home-Win | Wed | 7 |
4-0 | Home-Win | Fri | 2 |
4-0 | Home-Win | Sat | 14 |
4-1 | Home-Win | Sun | 8 |
4-1 | Home-Win | Mon | 2 |
4-1 | Home-Win | Tue | 4 |
4-1 | Home-Win | Wed | 15 |
4-1 | Home-Win | Thu | 1 |
4-1 | Home-Win | Fri | 1 |
4-1 | Home-Win | Sat | 12 |
4-2 | Home-Win | Sun | 4 |
4-2 | Home-Win | Tue | 1 |
4-2 | Home-Win | Wed | 9 |
4-2 | Home-Win | Fri | 1 |
4-2 | Home-Win | Sat | 10 |
4-3 | Home-Win | Sun | 3 |
4-3 | Home-Win | Wed | 1 |
4-3 | Home-Win | Sat | 1 |
4-4 | Draw | Wed | 1 |
5-0 | Home-Win | Sun | 3 |
5-0 | Home-Win | Tue | 3 |
5-0 | Home-Win | Wed | 3 |
5-0 | Home-Win | Thu | 1 |
5-0 | Home-Win | Fri | 1 |
5-0 | Home-Win | Sat | 5 |
5-1 | Home-Win | Sun | 3 |
5-1 | Home-Win | Tue | 1 |
5-1 | Home-Win | Wed | 1 |
5-1 | Home-Win | Sat | 4 |
5-2 | Home-Win | Sun | 1 |
5-2 | Home-Win | Wed | 5 |
5-2 | Home-Win | Thu | 1 |
5-2 | Home-Win | Sat | 3 |
5-3 | Home-Win | Sun | 2 |
5-3 | Home-Win | Sat | 1 |
6-0 | Home-Win | Sun | 1 |
6-0 | Home-Win | Wed | 1 |
6-0 | Home-Win | Thu | 1 |
6-0 | Home-Win | Sat | 1 |
6-1 | Home-Win | Sun | 3 |
6-1 | Home-Win | Tue | 1 |
6-2 | Home-Win | Sun | 2 |
6-2 | Home-Win | Wed | 1 |
6-4 | Home-Win | Sat | 1 |
7-0 | Home-Win | Fri | 1 |
7-1 | Home-Win | Tue | 1 |
8-1 | Home-Win | Sun | 1 |
Goals
We are aware of all the most common score-lines and their occurrence in the PSL. Now it’s time to turn our attention to the goals. The total number of goals scored so far is 8460 from 3679 games. This gives us an average rate of 2.3 goals per game. It is interesting to see that the league went from the lowest goals scored in 2009 to the highest goals scored in the next season (2010).
The question I once asked myself was which season has had the most number of goals scored and which had the lowest? From the plot below, the season with the most lowest goals scored was the 2009 season, with the 2010 season being the one with the most goals scored after 240 matches. The plot shows the total number of goals scored in each of the season since 2002. Please note that the current season has been excluded. In 2009, SuperSport United won the league having scored 51 goals and Jomo Cosmos was regelated having scored 21 goals. The 2010 season, was won by Orlando Pirates with 41 goals scored and Mpumalanga Black Aces got relegated with 19 goals scored.
The table below shows the break-down of goals scored by result outcome and by seasons.
season | result | goals scored |
---|---|---|
2002 | Home-Win | 277 |
2002 | Away-Win | 224 |
2002 | Draw | 80 |
2003 | Home-Win | 265 |
2003 | Away-Win | 159 |
2003 | Draw | 142 |
2004 | Home-Win | 265 |
2004 | Away-Win | 185 |
2004 | Draw | 124 |
2005 | Home-Win | 221 |
2005 | Away-Win | 168 |
2005 | Draw | 160 |
2006 | Home-Win | 283 |
2006 | Away-Win | 153 |
2006 | Draw | 88 |
2007 | Home-Win | 262 |
2007 | Away-Win | 170 |
2007 | Draw | 100 |
2008 | Home-Win | 290 |
2008 | Away-Win | 191 |
2008 | Draw | 88 |
2009 | Home-Win | 197 |
2009 | Away-Win | 154 |
2009 | Draw | 148 |
2010 | Home-Win | 285 |
2010 | Away-Win | 163 |
2010 | Draw | 154 |
2011 | Home-Win | 293 |
2011 | Away-Win | 189 |
2011 | Draw | 100 |
2012 | Home-Win | 260 |
2012 | Away-Win | 150 |
2012 | Draw | 136 |
2013 | Home-Win | 257 |
2013 | Away-Win | 175 |
2013 | Draw | 96 |
2014 | Home-Win | 246 |
2014 | Away-Win | 197 |
2014 | Draw | 112 |
2015 | Home-Win | 249 |
2015 | Away-Win | 201 |
2015 | Draw | 112 |
2016 | Home-Win | 267 |
2016 | Draw | 138 |
2016 | Away-Win | 133 |
2017 | Away-Win | 65 |
2017 | Draw | 46 |
2017 | Home-Win | 42 |
Let’s compare and see which seasons are above the avarage of 2.3 goals per game. Out of the 15 seasons since 2002, there has been 8 seasons were the average goals scored by season was above the overall average of 2.3.
Team Performance Since 2002
As stated before there have been 32 teams that have participated in the PSL since the league was reduced to 16 teams. This section is going to show a cumulative view in the following areas: most wins since 2002, most points won since 2002 and the overall league standing by combining all the points won since 2002.
Please note that the following teams were docked points for fielding ineligible players. In a match between Hellenic and Jomo Cosmos, played on the 8th of Febrary 2004 (2003/2004 Season), Hellenic fielded a suspended player and had their 1 point gained in the match deducted. On the same day, in another match between Silver Stars and Zulu Royals, Silver Stars also fielded a suspended player and had their 3 points gained in the match deducted. The final 1 point deduction, happened after Platinum Stars fielded an ineligible player on the 8th of August 2015. I have also deducted points for these teams here.
teams | played | won | draw | lost | goal for | goal against | goal diff | total points |
---|---|---|---|---|---|---|---|---|
Kaizer Chiefs | 461 | 224 | 148 | 89 | 624 | 361 | 263 | 820 |
Mamelodi Sundowns | 458 | 229 | 119 | 110 | 659 | 388 | 271 | 806 |
Orlando Pirates | 461 | 205 | 152 | 104 | 585 | 398 | 187 | 767 |
SuperSport United | 455 | 197 | 136 | 122 | 620 | 458 | 162 | 727 |
Ajax Cape Town | 459 | 173 | 125 | 161 | 542 | 556 | -14 | 644 |
Bidvest Wits | 430 | 168 | 133 | 129 | 512 | 436 | 76 | 637 |
Moroka Swallows | 390 | 150 | 108 | 132 | 483 | 473 | 10 | 558 |
Bloemfontein Celtic | 400 | 132 | 134 | 134 | 429 | 426 | 3 | 530 |
Lamontville Golden Arrows | 431 | 136 | 119 | 176 | 473 | 538 | -65 | 527 |
Free State Stars | 340 | 99 | 121 | 120 | 373 | 397 | -24 | 418 |
Platinum Stars | 311 | 102 | 94 | 115 | 349 | 356 | -7 | 399 |
Santos | 300 | 98 | 99 | 103 | 336 | 338 | -2 | 393 |
Maritzburg United | 309 | 83 | 102 | 124 | 310 | 412 | -102 | 351 |
AmaZulu | 310 | 86 | 92 | 132 | 309 | 403 | -94 | 350 |
Jomo Cosmos | 270 | 59 | 94 | 117 | 228 | 322 | -94 | 271 |
Black Leopards | 240 | 66 | 59 | 115 | 264 | 374 | -110 | 257 |
Polokwane City | 161 | 40 | 48 | 73 | 178 | 252 | -74 | 168 |
Mpumalanga Black Aces | 150 | 40 | 45 | 65 | 145 | 192 | -47 | 165 |
Silver Stars | 120 | 42 | 41 | 37 | 134 | 125 | 9 | 164 |
Chippa United | 131 | 35 | 41 | 55 | 130 | 157 | -27 | 146 |
University of Pretoria | 120 | 31 | 39 | 50 | 112 | 131 | -19 | 132 |
Dynamos | 120 | 29 | 41 | 50 | 127 | 168 | -41 | 128 |
Umtata Bush Bucks | 90 | 22 | 28 | 40 | 93 | 143 | -50 | 94 |
Manning Rangers | 90 | 23 | 24 | 43 | 94 | 141 | -47 | 93 |
Thanda Royal Zulu | 90 | 24 | 20 | 46 | 93 | 139 | -46 | 92 |
Cape Town City | 40 | 21 | 8 | 11 | 57 | 43 | 14 | 71 |
Hellenic | 60 | 15 | 11 | 34 | 56 | 91 | -35 | 55 |
Baroka FC | 41 | 9 | 19 | 13 | 40 | 52 | -12 | 46 |
Vasco da Gama | 30 | 7 | 9 | 14 | 35 | 47 | -12 | 30 |
Tembisa Classic | 30 | 7 | 9 | 14 | 23 | 37 | -14 | 30 |
Highlands Park | 30 | 5 | 12 | 13 | 26 | 44 | -18 | 27 |
African Wanderers | 30 | 4 | 6 | 20 | 21 | 62 | -41 | 18 |
On this section, the focus in this section will be on; Kaizer Chiefs, Mamelodi Sundowns, Orlando Pirates and SuperSport United. These are the teams that have dominated the league since it was reduced to 16 teams. Part of the next exercise, an analysis will be done between JHB teams and PTA teams.
From the table above, Kaizer Chiefs have accumulated more points (820) since 2002 more than other teams. They also have the lowest number of games lost 89 for teams that have played over 300 games.
The black lines represents other teams. In terms of number of games won, Kaizer Chiefs and Orlando Pirates were the dominate teams since 2002, but from 2014 onward, Mamelodi Sundowns replaced Orlando Pirates.
On the other hand, Mamelodi Sundowns has won the most games 229 in the process. In 2002, they won 11 games and finished the season in position 10. On the other hand Kaizer Chiefs, finished the 2002 season in position 6 and won 14 games. While Orlando Pirates, won the league in 2002 with 18 games won. Mamelodi Sundowns has had an impressive raise over the years.
The following plot shows the a line graph for the number of games won since 2002.
Relegation and Champion’s Points
Since 2002, a number of teams have won the league and others were automatically relegated (a team finishing 16 at the end of the league). A soccer league is about winning points. The next table shows the number of points collected by the team that won the league in each year and the points won by the teams that we automtically relegated. It also shows the difference in points between the two.
season | points won by champions | points won by relegated team | points difference |
---|---|---|---|
2002 | 61 | 18 | 43 |
2003 | 63 | 22 | 41 |
2004 | 62 | 27 | 35 |
2005 | 57 | 29 | 28 |
2006 | 61 | 21 | 40 |
2007 | 54 | 22 | 32 |
2008 | 55 | 21 | 34 |
2009 | 57 | 24 | 33 |
2010 | 60 | 15 | 45 |
2011 | 58 | 19 | 39 |
2012 | 57 | 23 | 34 |
2013 | 65 | 21 | 44 |
2014 | 69 | 27 | 42 |
2015 | 71 | 25 | 46 |
2016 | 60 | 27 | 33 |
This table below shows the final league standing from 2002 until the 2016 season. With the break-down of how each team performanced at home and away in terms of points. The seasons are shown per page below.
season | team | played | won | draw | lost | goal for | goal against | goal diff | total points | away points won | draw points | home points won |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 | Orlando Pirates | 30 | 18 | 7 | 5 | 41 | 16 | 25 | 61 | 27 | 7 | 27 |
2002 | SuperSport United | 30 | 16 | 7 | 7 | 54 | 37 | 17 | 55 | 30 | 7 | 18 |
2002 | Bidvest Wits | 30 | 15 | 9 | 6 | 39 | 29 | 10 | 54 | 24 | 9 | 21 |
2002 | Moroka Swallows | 30 | 15 | 8 | 7 | 52 | 36 | 16 | 53 | 15 | 8 | 30 |
2002 | Lamontville Golden Arrows | 30 | 15 | 6 | 9 | 33 | 27 | 6 | 51 | 21 | 6 | 24 |
2002 | Kaizer Chiefs | 30 | 14 | 8 | 8 | 42 | 26 | 16 | 50 | 15 | 8 | 27 |
2002 | Dynamos | 30 | 12 | 4 | 14 | 39 | 37 | 2 | 40 | 12 | 4 | 24 |
2002 | Jomo Cosmos | 30 | 10 | 10 | 10 | 33 | 34 | -1 | 40 | 12 | 10 | 18 |
2002 | Santos | 30 | 11 | 6 | 13 | 33 | 28 | 5 | 39 | 18 | 6 | 15 |
2002 | Mamelodi Sundowns | 30 | 11 | 6 | 13 | 30 | 30 | 0 | 39 | 15 | 6 | 18 |
2002 | Black Leopards | 30 | 11 | 3 | 16 | 40 | 42 | -2 | 36 | 12 | 3 | 21 |
2002 | Manning Rangers | 30 | 9 | 8 | 13 | 31 | 39 | -8 | 35 | 18 | 8 | 9 |
2002 | Ajax Cape Town | 30 | 9 | 6 | 15 | 31 | 44 | -13 | 33 | 15 | 6 | 12 |
2002 | Hellenic | 30 | 10 | 3 | 17 | 33 | 47 | -14 | 33 | 9 | 3 | 21 |
2002 | Umtata Bush Bucks | 30 | 8 | 7 | 15 | 29 | 47 | -18 | 31 | 6 | 7 | 18 |
2002 | African Wanderers | 30 | 4 | 6 | 20 | 21 | 62 | -41 | 18 | 3 | 6 | 9 |
2003 | Kaizer Chiefs | 30 | 18 | 9 | 3 | 39 | 11 | 28 | 63 | 18 | 9 | 36 |
2003 | Ajax Cape Town | 30 | 17 | 6 | 7 | 42 | 25 | 17 | 57 | 24 | 6 | 27 |
2003 | SuperSport United | 30 | 16 | 5 | 9 | 48 | 24 | 24 | 53 | 24 | 5 | 24 |
2003 | Bidvest Wits | 30 | 13 | 13 | 4 | 41 | 18 | 23 | 52 | 15 | 13 | 24 |
2003 | Orlando Pirates | 30 | 13 | 11 | 6 | 45 | 30 | 15 | 50 | 24 | 11 | 15 |
2003 | Santos | 30 | 14 | 7 | 9 | 38 | 31 | 7 | 49 | 9 | 7 | 33 |
2003 | Moroka Swallows | 30 | 13 | 9 | 8 | 45 | 34 | 11 | 48 | 12 | 9 | 27 |
2003 | Black Leopards | 30 | 10 | 8 | 12 | 34 | 46 | -12 | 38 | 15 | 8 | 15 |
2003 | Lamontville Golden Arrows | 30 | 9 | 10 | 11 | 32 | 38 | -6 | 37 | 6 | 10 | 21 |
2003 | Mamelodi Sundowns | 30 | 8 | 12 | 10 | 32 | 32 | 0 | 36 | 6 | 12 | 18 |
2003 | Silver Stars | 30 | 8 | 12 | 10 | 35 | 42 | -7 | 36 | 9 | 12 | 15 |
2003 | Manning Rangers | 30 | 7 | 8 | 15 | 35 | 53 | -18 | 29 | 3 | 8 | 18 |
2003 | Jomo Cosmos | 30 | 6 | 10 | 14 | 21 | 29 | -8 | 28 | 6 | 10 | 12 |
2003 | Dynamos | 30 | 3 | 15 | 12 | 26 | 48 | -22 | 24 | 3 | 15 | 6 |
2003 | Hellenic | 30 | 5 | 8 | 17 | 23 | 44 | -21 | 23 | 9 | 8 | 6 |
2003 | AmaZulu | 30 | 5 | 7 | 18 | 30 | 61 | -31 | 22 | 3 | 7 | 12 |
2004 | Kaizer Chiefs | 30 | 17 | 11 | 2 | 55 | 26 | 29 | 62 | 30 | 11 | 21 |
2004 | Orlando Pirates | 30 | 17 | 9 | 4 | 52 | 29 | 23 | 60 | 24 | 9 | 27 |
2004 | Mamelodi Sundowns | 30 | 16 | 8 | 6 | 54 | 28 | 26 | 56 | 21 | 8 | 27 |
2004 | SuperSport United | 30 | 13 | 12 | 5 | 37 | 27 | 10 | 51 | 27 | 12 | 12 |
2004 | Moroka Swallows | 30 | 13 | 10 | 7 | 38 | 29 | 9 | 49 | 12 | 10 | 27 |
2004 | Ajax Cape Town | 30 | 11 | 8 | 11 | 31 | 39 | -8 | 41 | 12 | 8 | 21 |
2004 | Silver Stars | 30 | 9 | 11 | 10 | 33 | 30 | 3 | 38 | 9 | 11 | 18 |
2004 | Bloemfontein Celtic | 30 | 9 | 9 | 12 | 32 | 40 | -8 | 36 | 6 | 9 | 21 |
2004 | Lamontville Golden Arrows | 30 | 8 | 9 | 13 | 29 | 34 | -5 | 33 | 6 | 9 | 18 |
2004 | Dynamos | 30 | 7 | 12 | 11 | 38 | 45 | -7 | 33 | 15 | 12 | 6 |
2004 | Umtata Bush Bucks | 30 | 8 | 9 | 13 | 39 | 48 | -9 | 33 | 9 | 9 | 15 |
2004 | Santos | 30 | 8 | 7 | 15 | 27 | 36 | -9 | 31 | 9 | 7 | 15 |
2004 | Jomo Cosmos | 30 | 7 | 10 | 13 | 27 | 38 | -11 | 31 | 6 | 10 | 15 |
2004 | Black Leopards | 30 | 6 | 13 | 11 | 30 | 42 | -12 | 31 | 9 | 13 | 9 |
2004 | Manning Rangers | 30 | 7 | 8 | 15 | 28 | 49 | -21 | 29 | 3 | 8 | 18 |
2004 | Bidvest Wits | 30 | 5 | 12 | 13 | 24 | 34 | -10 | 27 | 9 | 12 | 6 |
2005 | Mamelodi Sundowns | 30 | 16 | 9 | 5 | 45 | 19 | 26 | 57 | 27 | 9 | 21 |
2005 | Orlando Pirates | 30 | 14 | 12 | 4 | 39 | 24 | 15 | 54 | 15 | 12 | 27 |
2005 | Kaizer Chiefs | 30 | 12 | 14 | 4 | 39 | 26 | 13 | 50 | 18 | 14 | 18 |
2005 | Moroka Swallows | 30 | 12 | 10 | 8 | 39 | 33 | 6 | 46 | 15 | 10 | 21 |
2005 | Silver Stars | 30 | 11 | 9 | 10 | 34 | 32 | 2 | 42 | 21 | 9 | 12 |
2005 | Lamontville Golden Arrows | 30 | 9 | 13 | 8 | 32 | 28 | 4 | 40 | 3 | 13 | 24 |
2005 | SuperSport United | 30 | 10 | 10 | 10 | 43 | 41 | 2 | 40 | 18 | 10 | 12 |
2005 | Santos | 30 | 7 | 17 | 6 | 35 | 32 | 3 | 38 | 6 | 17 | 15 |
2005 | Jomo Cosmos | 30 | 10 | 8 | 12 | 31 | 32 | -1 | 38 | 12 | 8 | 18 |
2005 | Bloemfontein Celtic | 30 | 9 | 10 | 11 | 35 | 37 | -2 | 37 | 12 | 10 | 15 |
2005 | Ajax Cape Town | 30 | 8 | 11 | 11 | 40 | 42 | -2 | 35 | 9 | 11 | 15 |
2005 | Black Leopards | 30 | 9 | 7 | 14 | 31 | 39 | -8 | 34 | 9 | 7 | 18 |
2005 | Dynamos | 30 | 7 | 10 | 13 | 24 | 38 | -14 | 31 | 12 | 10 | 9 |
2005 | Tembisa Classic | 30 | 7 | 9 | 14 | 23 | 37 | -14 | 30 | 3 | 9 | 18 |
2005 | Umtata Bush Bucks | 30 | 6 | 12 | 12 | 25 | 48 | -23 | 30 | 15 | 12 | 3 |
2005 | Free State Stars | 30 | 4 | 17 | 9 | 34 | 41 | -7 | 29 | 3 | 17 | 9 |
2006 | Mamelodi Sundowns | 30 | 18 | 7 | 5 | 45 | 17 | 28 | 61 | 21 | 7 | 33 |
2006 | Silver Stars | 30 | 14 | 9 | 7 | 32 | 21 | 11 | 51 | 18 | 9 | 24 |
2006 | Moroka Swallows | 30 | 14 | 9 | 7 | 32 | 24 | 8 | 51 | 24 | 9 | 18 |
2006 | Ajax Cape Town | 30 | 13 | 8 | 9 | 34 | 26 | 8 | 47 | 15 | 8 | 24 |
2006 | Orlando Pirates | 30 | 12 | 10 | 8 | 36 | 30 | 6 | 46 | 12 | 10 | 24 |
2006 | SuperSport United | 30 | 11 | 11 | 8 | 38 | 22 | 16 | 44 | 15 | 11 | 18 |
2006 | Jomo Cosmos | 30 | 12 | 8 | 10 | 38 | 34 | 4 | 44 | 12 | 8 | 24 |
2006 | Bloemfontein Celtic | 30 | 12 | 8 | 10 | 32 | 32 | 0 | 44 | 6 | 8 | 30 |
2006 | Kaizer Chiefs | 30 | 11 | 9 | 10 | 42 | 32 | 10 | 42 | 15 | 9 | 18 |
2006 | Santos | 30 | 9 | 10 | 11 | 34 | 40 | -6 | 37 | 3 | 10 | 24 |
2006 | Black Leopards | 30 | 10 | 7 | 13 | 32 | 42 | -10 | 37 | 12 | 7 | 18 |
2006 | Lamontville Golden Arrows | 30 | 10 | 6 | 14 | 32 | 41 | -9 | 36 | 9 | 6 | 21 |
2006 | Bidvest Wits | 30 | 9 | 8 | 13 | 29 | 34 | -5 | 35 | 6 | 8 | 21 |
2006 | Thanda Royal Zulu | 30 | 6 | 10 | 14 | 22 | 37 | -15 | 28 | 3 | 10 | 15 |
2006 | AmaZulu | 30 | 7 | 7 | 16 | 22 | 42 | -20 | 28 | 3 | 7 | 18 |
2006 | Maritzburg United | 30 | 4 | 9 | 17 | 24 | 50 | -26 | 21 | 6 | 9 | 6 |
2007 | SuperSport United | 30 | 16 | 6 | 8 | 40 | 26 | 14 | 54 | 21 | 6 | 27 |
2007 | Ajax Cape Town | 30 | 14 | 10 | 6 | 44 | 27 | 17 | 52 | 18 | 10 | 24 |
2007 | Santos | 30 | 12 | 13 | 5 | 36 | 29 | 7 | 49 | 12 | 13 | 24 |
2007 | Mamelodi Sundowns | 30 | 13 | 8 | 9 | 40 | 35 | 5 | 47 | 27 | 8 | 12 |
2007 | Free State Stars | 30 | 12 | 9 | 9 | 43 | 40 | 3 | 45 | 9 | 9 | 27 |
2007 | Kaizer Chiefs | 30 | 10 | 13 | 7 | 32 | 20 | 12 | 43 | 15 | 13 | 15 |
2007 | Moroka Swallows | 30 | 12 | 7 | 11 | 41 | 41 | 0 | 43 | 18 | 7 | 18 |
2007 | Orlando Pirates | 30 | 12 | 6 | 12 | 38 | 30 | 8 | 42 | 15 | 6 | 21 |
2007 | Lamontville Golden Arrows | 30 | 10 | 11 | 9 | 34 | 32 | 2 | 41 | 9 | 11 | 21 |
2007 | Platinum Stars | 30 | 10 | 10 | 10 | 28 | 32 | -4 | 40 | 18 | 10 | 12 |
2007 | Bloemfontein Celtic | 30 | 11 | 6 | 13 | 30 | 35 | -5 | 39 | 15 | 6 | 18 |
2007 | Bidvest Wits | 30 | 10 | 8 | 12 | 28 | 35 | -7 | 38 | 9 | 8 | 21 |
2007 | AmaZulu | 30 | 9 | 7 | 14 | 27 | 36 | -9 | 34 | 15 | 7 | 12 |
2007 | Thanda Royal Zulu | 30 | 8 | 7 | 15 | 31 | 44 | -13 | 31 | 9 | 7 | 15 |
2007 | Black Leopards | 30 | 8 | 5 | 17 | 27 | 42 | -15 | 29 | 6 | 5 | 18 |
2007 | Jomo Cosmos | 30 | 2 | 16 | 12 | 13 | 28 | -15 | 22 | 3 | 16 | 3 |
2008 | SuperSport United | 30 | 16 | 7 | 7 | 45 | 22 | 23 | 55 | 24 | 7 | 24 |
2008 | Orlando Pirates | 30 | 15 | 10 | 5 | 37 | 20 | 17 | 55 | 15 | 10 | 30 |
2008 | Kaizer Chiefs | 30 | 15 | 5 | 10 | 37 | 32 | 5 | 50 | 24 | 5 | 21 |
2008 | Free State Stars | 30 | 12 | 11 | 7 | 38 | 24 | 14 | 47 | 12 | 11 | 24 |
2008 | Lamontville Golden Arrows | 30 | 13 | 7 | 10 | 44 | 28 | 16 | 46 | 27 | 7 | 12 |
2008 | Bidvest Wits | 30 | 13 | 7 | 10 | 42 | 33 | 9 | 46 | 15 | 7 | 24 |
2008 | Ajax Cape Town | 30 | 13 | 7 | 10 | 36 | 34 | 2 | 46 | 18 | 7 | 21 |
2008 | AmaZulu | 30 | 12 | 6 | 12 | 33 | 33 | 0 | 42 | 15 | 6 | 21 |
2008 | Mamelodi Sundowns | 30 | 11 | 7 | 12 | 28 | 28 | 0 | 40 | 15 | 7 | 18 |
2008 | Santos | 30 | 10 | 9 | 11 | 28 | 31 | -3 | 39 | 15 | 9 | 15 |
2008 | Moroka Swallows | 30 | 10 | 7 | 13 | 32 | 39 | -7 | 37 | 18 | 7 | 12 |
2008 | Maritzburg United | 30 | 10 | 6 | 14 | 34 | 53 | -19 | 36 | 6 | 6 | 24 |
2008 | Platinum Stars | 30 | 8 | 11 | 11 | 35 | 40 | -5 | 35 | 9 | 11 | 15 |
2008 | Bloemfontein Celtic | 30 | 8 | 9 | 13 | 34 | 38 | -4 | 33 | 0 | 9 | 24 |
2008 | Thanda Royal Zulu | 30 | 10 | 3 | 17 | 40 | 58 | -18 | 33 | 15 | 3 | 15 |
2008 | Polokwane City | 30 | 5 | 6 | 19 | 26 | 56 | -30 | 21 | 6 | 6 | 9 |
2009 | SuperSport United | 30 | 16 | 9 | 5 | 51 | 25 | 26 | 57 | 24 | 9 | 24 |
2009 | Mamelodi Sundowns | 30 | 16 | 8 | 6 | 43 | 24 | 19 | 56 | 24 | 8 | 24 |
2009 | Kaizer Chiefs | 30 | 14 | 9 | 7 | 39 | 25 | 14 | 51 | 24 | 9 | 18 |
2009 | Santos | 30 | 12 | 11 | 7 | 34 | 20 | 14 | 47 | 18 | 11 | 18 |
2009 | Orlando Pirates | 30 | 10 | 14 | 6 | 26 | 18 | 8 | 44 | 9 | 14 | 21 |
2009 | Bloemfontein Celtic | 30 | 9 | 15 | 6 | 38 | 35 | 3 | 42 | 15 | 15 | 12 |
2009 | Ajax Cape Town | 30 | 11 | 9 | 10 | 27 | 29 | -2 | 42 | 21 | 9 | 12 |
2009 | Moroka Swallows | 30 | 11 | 9 | 10 | 30 | 36 | -6 | 42 | 15 | 9 | 18 |
2009 | AmaZulu | 30 | 11 | 6 | 13 | 30 | 35 | -5 | 39 | 15 | 6 | 18 |
2009 | Bidvest Wits | 30 | 7 | 14 | 9 | 32 | 38 | -6 | 35 | 9 | 14 | 12 |
2009 | Maritzburg United | 30 | 8 | 11 | 11 | 28 | 39 | -11 | 35 | 9 | 11 | 15 |
2009 | Lamontville Golden Arrows | 30 | 6 | 14 | 10 | 25 | 33 | -8 | 32 | 6 | 14 | 12 |
2009 | Free State Stars | 30 | 5 | 16 | 9 | 29 | 30 | -1 | 31 | 6 | 16 | 9 |
2009 | Platinum Stars | 30 | 9 | 4 | 17 | 26 | 34 | -8 | 31 | 9 | 4 | 18 |
2009 | Mpumalanga Black Aces | 30 | 5 | 11 | 14 | 20 | 38 | -18 | 26 | 6 | 11 | 9 |
2009 | Jomo Cosmos | 30 | 4 | 12 | 14 | 21 | 40 | -19 | 24 | 0 | 12 | 12 |
2010 | Orlando Pirates | 30 | 17 | 9 | 4 | 41 | 23 | 18 | 60 | 27 | 9 | 24 |
2010 | Ajax Cape Town | 30 | 18 | 6 | 6 | 50 | 36 | 14 | 60 | 18 | 6 | 36 |
2010 | Kaizer Chiefs | 30 | 17 | 8 | 5 | 45 | 23 | 22 | 59 | 21 | 8 | 30 |
2010 | Mamelodi Sundowns | 30 | 18 | 4 | 8 | 52 | 28 | 24 | 58 | 21 | 4 | 33 |
2010 | Bloemfontein Celtic | 30 | 14 | 10 | 6 | 37 | 23 | 14 | 52 | 21 | 10 | 21 |
2010 | Bidvest Wits | 30 | 10 | 10 | 10 | 47 | 39 | 8 | 40 | 6 | 10 | 24 |
2010 | SuperSport United | 30 | 11 | 7 | 12 | 32 | 38 | -6 | 40 | 12 | 7 | 21 |
2010 | Santos | 30 | 8 | 13 | 9 | 37 | 43 | -6 | 37 | 9 | 13 | 15 |
2010 | Free State Stars | 30 | 7 | 14 | 9 | 28 | 32 | -4 | 35 | 3 | 14 | 18 |
2010 | Platinum Stars | 30 | 6 | 15 | 9 | 34 | 37 | -3 | 33 | 9 | 15 | 9 |
2010 | Lamontville Golden Arrows | 30 | 9 | 6 | 15 | 44 | 49 | -5 | 33 | 9 | 6 | 18 |
2010 | Maritzburg United | 30 | 8 | 9 | 13 | 32 | 46 | -14 | 33 | 6 | 9 | 18 |
2010 | Moroka Swallows | 30 | 8 | 8 | 14 | 26 | 40 | -14 | 32 | 12 | 8 | 12 |
2010 | AmaZulu | 30 | 5 | 15 | 10 | 43 | 45 | -2 | 30 | 6 | 15 | 9 |
2010 | Vasco da Gama | 30 | 7 | 9 | 14 | 35 | 47 | -12 | 30 | 3 | 9 | 18 |
2010 | Mpumalanga Black Aces | 30 | 4 | 3 | 23 | 19 | 53 | -34 | 15 | 3 | 3 | 9 |
2011 | Orlando Pirates | 30 | 17 | 7 | 6 | 40 | 26 | 14 | 58 | 18 | 7 | 33 |
2011 | Moroka Swallows | 30 | 15 | 11 | 4 | 48 | 34 | 14 | 56 | 21 | 11 | 24 |
2011 | SuperSport United | 30 | 15 | 9 | 6 | 39 | 23 | 16 | 54 | 21 | 9 | 24 |
2011 | Mamelodi Sundowns | 30 | 14 | 10 | 6 | 44 | 23 | 21 | 52 | 24 | 10 | 18 |
2011 | Kaizer Chiefs | 30 | 14 | 8 | 8 | 35 | 23 | 12 | 50 | 15 | 8 | 27 |
2011 | Free State Stars | 30 | 14 | 6 | 10 | 38 | 31 | 7 | 48 | 18 | 6 | 24 |
2011 | AmaZulu | 30 | 10 | 11 | 9 | 32 | 24 | 8 | 41 | 18 | 11 | 12 |
2011 | Bloemfontein Celtic | 30 | 11 | 8 | 11 | 36 | 33 | 3 | 41 | 12 | 8 | 21 |
2011 | Ajax Cape Town | 30 | 11 | 7 | 12 | 42 | 49 | -7 | 40 | 15 | 7 | 18 |
2011 | Platinum Stars | 30 | 10 | 6 | 14 | 37 | 39 | -2 | 36 | 15 | 6 | 15 |
2011 | Maritzburg United | 30 | 7 | 13 | 10 | 26 | 38 | -12 | 34 | 3 | 13 | 18 |
2011 | Bidvest Wits | 30 | 7 | 12 | 11 | 31 | 38 | -7 | 33 | 9 | 12 | 12 |
2011 | Lamontville Golden Arrows | 30 | 9 | 5 | 16 | 40 | 49 | -9 | 32 | 9 | 5 | 18 |
2011 | Black Leopards | 30 | 7 | 8 | 15 | 36 | 58 | -22 | 29 | 9 | 8 | 12 |
2011 | Santos | 30 | 7 | 6 | 17 | 34 | 48 | -14 | 27 | 3 | 6 | 18 |
2011 | Jomo Cosmos | 30 | 2 | 13 | 15 | 24 | 46 | -22 | 19 | 3 | 13 | 3 |
2012 | Kaizer Chiefs | 30 | 15 | 12 | 3 | 48 | 21 | 27 | 57 | 21 | 12 | 24 |
2012 | Platinum Stars | 30 | 17 | 5 | 8 | 48 | 27 | 21 | 56 | 18 | 5 | 33 |
2012 | Orlando Pirates | 30 | 14 | 10 | 6 | 39 | 23 | 16 | 52 | 21 | 10 | 21 |
2012 | Bidvest Wits | 30 | 11 | 11 | 8 | 34 | 32 | 2 | 44 | 15 | 11 | 18 |
2012 | Bloemfontein Celtic | 30 | 11 | 9 | 10 | 32 | 33 | -1 | 42 | 6 | 9 | 27 |
2012 | SuperSport United | 30 | 8 | 17 | 5 | 30 | 26 | 4 | 41 | 6 | 17 | 18 |
2012 | Free State Stars | 30 | 10 | 11 | 9 | 32 | 32 | 0 | 41 | 9 | 11 | 21 |
2012 | University of Pretoria | 30 | 8 | 16 | 6 | 34 | 29 | 5 | 40 | 15 | 16 | 9 |
2012 | Moroka Swallows | 30 | 11 | 7 | 12 | 41 | 41 | 0 | 40 | 15 | 7 | 18 |
2012 | Mamelodi Sundowns | 30 | 9 | 12 | 9 | 31 | 27 | 4 | 39 | 15 | 12 | 12 |
2012 | Maritzburg United | 30 | 9 | 12 | 9 | 31 | 31 | 0 | 39 | 15 | 12 | 12 |
2012 | AmaZulu | 30 | 7 | 11 | 12 | 22 | 35 | -13 | 32 | 6 | 11 | 15 |
2012 | Lamontville Golden Arrows | 30 | 8 | 7 | 15 | 28 | 39 | -11 | 31 | 6 | 7 | 18 |
2012 | Ajax Cape Town | 30 | 7 | 10 | 13 | 34 | 46 | -12 | 31 | 3 | 10 | 18 |
2012 | Chippa United | 30 | 6 | 10 | 14 | 28 | 41 | -13 | 28 | 6 | 10 | 12 |
2012 | Black Leopards | 30 | 5 | 8 | 17 | 34 | 63 | -29 | 23 | 6 | 8 | 9 |
2013 | Mamelodi Sundowns | 30 | 20 | 5 | 5 | 51 | 25 | 26 | 65 | 27 | 5 | 33 |
2013 | Kaizer Chiefs | 30 | 19 | 6 | 5 | 43 | 17 | 26 | 63 | 27 | 6 | 30 |
2013 | Bidvest Wits | 30 | 16 | 8 | 6 | 34 | 20 | 14 | 56 | 24 | 8 | 24 |
2013 | Orlando Pirates | 30 | 13 | 7 | 10 | 30 | 22 | 8 | 46 | 15 | 7 | 24 |
2013 | SuperSport United | 30 | 12 | 8 | 10 | 38 | 36 | 2 | 44 | 15 | 8 | 21 |
2013 | Bloemfontein Celtic | 30 | 10 | 13 | 7 | 35 | 32 | 3 | 43 | 9 | 13 | 21 |
2013 | Mpumalanga Black Aces | 30 | 12 | 7 | 11 | 34 | 33 | 1 | 43 | 18 | 7 | 18 |
2013 | Platinum Stars | 30 | 11 | 9 | 10 | 32 | 32 | 0 | 42 | 9 | 9 | 24 |
2013 | AmaZulu | 30 | 11 | 9 | 10 | 27 | 35 | -8 | 42 | 15 | 9 | 18 |
2013 | Maritzburg United | 30 | 10 | 8 | 12 | 34 | 37 | -3 | 38 | 12 | 8 | 18 |
2013 | University of Pretoria | 30 | 10 | 5 | 15 | 25 | 28 | -3 | 35 | 6 | 5 | 24 |
2013 | Ajax Cape Town | 30 | 9 | 8 | 13 | 27 | 36 | -9 | 35 | 6 | 8 | 21 |
2013 | Moroka Swallows | 30 | 8 | 7 | 15 | 29 | 39 | -10 | 31 | 9 | 7 | 15 |
2013 | Free State Stars | 30 | 7 | 8 | 15 | 32 | 43 | -11 | 29 | 9 | 8 | 12 |
2013 | Polokwane City | 30 | 7 | 7 | 16 | 31 | 43 | -12 | 28 | 6 | 7 | 15 |
2013 | Lamontville Golden Arrows | 30 | 6 | 3 | 21 | 26 | 50 | -24 | 21 | 6 | 3 | 12 |
2014 | Kaizer Chiefs | 30 | 21 | 6 | 3 | 41 | 14 | 27 | 69 | 33 | 6 | 30 |
2014 | Mamelodi Sundowns | 30 | 16 | 9 | 5 | 44 | 24 | 20 | 57 | 24 | 9 | 24 |
2014 | Bidvest Wits | 30 | 15 | 7 | 8 | 34 | 25 | 9 | 52 | 18 | 7 | 27 |
2014 | Orlando Pirates | 30 | 13 | 11 | 6 | 46 | 29 | 17 | 50 | 15 | 11 | 24 |
2014 | Ajax Cape Town | 30 | 12 | 8 | 10 | 34 | 35 | -1 | 44 | 9 | 8 | 27 |
2014 | SuperSport United | 30 | 12 | 5 | 13 | 39 | 40 | -1 | 41 | 21 | 5 | 15 |
2014 | Bloemfontein Celtic | 30 | 11 | 7 | 12 | 34 | 27 | 7 | 40 | 18 | 7 | 15 |
2014 | Maritzburg United | 30 | 10 | 10 | 10 | 30 | 25 | 5 | 40 | 15 | 10 | 15 |
2014 | Free State Stars | 30 | 10 | 8 | 12 | 34 | 39 | -5 | 38 | 9 | 8 | 21 |
2014 | Mpumalanga Black Aces | 30 | 7 | 13 | 10 | 35 | 39 | -4 | 34 | 9 | 13 | 12 |
2014 | Platinum Stars | 30 | 8 | 10 | 12 | 30 | 38 | -8 | 34 | 9 | 10 | 15 |
2014 | Polokwane City | 30 | 9 | 7 | 14 | 42 | 60 | -18 | 34 | 12 | 7 | 15 |
2014 | University of Pretoria | 30 | 7 | 11 | 12 | 28 | 32 | -4 | 32 | 9 | 11 | 12 |
2014 | Chippa United | 30 | 7 | 9 | 14 | 23 | 37 | -14 | 30 | 6 | 9 | 15 |
2014 | Moroka Swallows | 30 | 8 | 6 | 16 | 30 | 47 | -17 | 30 | 9 | 6 | 15 |
2014 | AmaZulu | 30 | 6 | 9 | 15 | 31 | 44 | -13 | 27 | 6 | 9 | 12 |
2015 | Mamelodi Sundowns | 30 | 22 | 5 | 3 | 55 | 20 | 35 | 71 | 30 | 5 | 36 |
2015 | Bidvest Wits | 30 | 17 | 6 | 7 | 44 | 24 | 20 | 57 | 27 | 6 | 24 |
2015 | Platinum Stars | 30 | 13 | 9 | 8 | 41 | 33 | 8 | 48 | 12 | 9 | 27 |
2015 | Mpumalanga Black Aces | 30 | 12 | 11 | 7 | 37 | 29 | 8 | 47 | 15 | 11 | 21 |
2015 | Kaizer Chiefs | 30 | 11 | 13 | 6 | 38 | 30 | 8 | 46 | 15 | 13 | 18 |
2015 | Chippa United | 30 | 13 | 6 | 11 | 42 | 39 | 3 | 45 | 12 | 6 | 27 |
2015 | Orlando Pirates | 30 | 11 | 8 | 11 | 38 | 30 | 8 | 41 | 15 | 8 | 18 |
2015 | SuperSport United | 30 | 10 | 10 | 10 | 36 | 38 | -2 | 40 | 21 | 10 | 9 |
2015 | Lamontville Golden Arrows | 30 | 11 | 7 | 12 | 28 | 35 | -7 | 40 | 15 | 7 | 18 |
2015 | Ajax Cape Town | 30 | 9 | 10 | 11 | 34 | 41 | -7 | 37 | 12 | 10 | 15 |
2015 | Bloemfontein Celtic | 30 | 8 | 12 | 10 | 30 | 26 | 4 | 36 | 12 | 12 | 12 |
2015 | Free State Stars | 30 | 9 | 8 | 13 | 28 | 37 | -9 | 35 | 12 | 8 | 15 |
2015 | Polokwane City | 30 | 7 | 10 | 13 | 31 | 44 | -13 | 31 | 3 | 10 | 18 |
2015 | Maritzburg United | 30 | 6 | 9 | 15 | 35 | 53 | -18 | 27 | 12 | 9 | 6 |
2015 | University of Pretoria | 30 | 6 | 7 | 17 | 25 | 42 | -17 | 25 | 3 | 7 | 15 |
2015 | Jomo Cosmos | 30 | 6 | 7 | 17 | 20 | 41 | -21 | 25 | 3 | 7 | 15 |
2016 | Bidvest Wits | 30 | 18 | 6 | 6 | 47 | 22 | 25 | 60 | 18 | 6 | 36 |
2016 | Mamelodi Sundowns | 30 | 16 | 9 | 5 | 52 | 20 | 32 | 57 | 24 | 9 | 24 |
2016 | Cape Town City | 30 | 16 | 7 | 7 | 47 | 35 | 12 | 55 | 18 | 7 | 30 |
2016 | Kaizer Chiefs | 30 | 13 | 11 | 6 | 39 | 28 | 11 | 50 | 15 | 11 | 24 |
2016 | SuperSport United | 30 | 12 | 12 | 6 | 42 | 29 | 13 | 48 | 15 | 12 | 21 |
2016 | Polokwane City | 30 | 10 | 13 | 7 | 36 | 34 | 2 | 43 | 9 | 13 | 21 |
2016 | Maritzburg United | 30 | 9 | 11 | 10 | 31 | 35 | -4 | 38 | 12 | 11 | 15 |
2016 | Lamontville Golden Arrows | 30 | 10 | 8 | 12 | 32 | 44 | -12 | 38 | 9 | 8 | 21 |
2016 | Platinum Stars | 30 | 9 | 10 | 11 | 33 | 32 | 1 | 37 | 12 | 10 | 15 |
2016 | Ajax Cape Town | 30 | 9 | 9 | 12 | 29 | 35 | -6 | 36 | 9 | 9 | 18 |
2016 | Orlando Pirates | 30 | 6 | 15 | 9 | 29 | 40 | -11 | 33 | 6 | 15 | 12 |
2016 | Bloemfontein Celtic | 30 | 5 | 14 | 11 | 16 | 28 | -12 | 29 | 9 | 14 | 6 |
2016 | Chippa United | 30 | 6 | 10 | 14 | 27 | 32 | -5 | 28 | 3 | 10 | 15 |
2016 | Free State Stars | 30 | 6 | 10 | 14 | 26 | 37 | -11 | 28 | 3 | 10 | 15 |
2016 | Baroka FC | 30 | 5 | 13 | 12 | 26 | 43 | -17 | 28 | 12 | 13 | 3 |
2016 | Highlands Park | 30 | 5 | 12 | 13 | 26 | 44 | -18 | 27 | 3 | 12 | 12 |
2017 | Baroka FC | 10 | 4 | 5 | 1 | 13 | 8 | 5 | 17 | 9 | 5 | 3 |
2017 | Lamontville Golden Arrows | 10 | 3 | 6 | 1 | 14 | 11 | 3 | 15 | 6 | 6 | 3 |
2017 | Cape Town City | 9 | 5 | 0 | 4 | 9 | 7 | 2 | 15 | 6 | 0 | 9 |
2017 | Bloemfontein Celtic | 9 | 4 | 3 | 2 | 8 | 7 | 1 | 15 | 6 | 3 | 6 |
2017 | Kaizer Chiefs | 10 | 3 | 5 | 2 | 10 | 7 | 3 | 14 | 9 | 5 | 0 |
2017 | Chippa United | 10 | 3 | 5 | 2 | 9 | 7 | 2 | 14 | 3 | 5 | 6 |
2017 | Orlando Pirates | 10 | 3 | 5 | 2 | 8 | 8 | 0 | 14 | 0 | 5 | 9 |
2017 | Mamelodi Sundowns | 7 | 4 | 0 | 3 | 11 | 8 | 3 | 12 | 12 | 0 | 0 |
2017 | AmaZulu | 9 | 3 | 3 | 3 | 12 | 13 | -1 | 12 | 3 | 3 | 6 |
2017 | Free State Stars | 9 | 3 | 2 | 4 | 10 | 10 | 0 | 11 | 6 | 2 | 3 |
2017 | SuperSport United | 5 | 3 | 1 | 1 | 8 | 4 | 4 | 10 | 3 | 1 | 6 |
2017 | Polokwane City | 10 | 2 | 4 | 4 | 12 | 15 | -3 | 10 | 6 | 4 | 0 |
2017 | Maritzburg United | 8 | 2 | 3 | 3 | 5 | 5 | 0 | 9 | 3 | 3 | 3 |
2017 | Ajax Cape Town | 9 | 2 | 2 | 5 | 7 | 12 | -5 | 8 | 0 | 2 | 6 |
2017 | Bidvest Wits | 9 | 2 | 2 | 5 | 6 | 13 | -7 | 8 | 3 | 2 | 3 |
2017 | Platinum Stars | 10 | 1 | 4 | 5 | 5 | 12 | -7 | 7 | 0 | 4 | 3 |
Way Forward and More
Since this is my first attempt at doing this and sharing it, I plan to do atleast one data analysis a month. But this will be based on having interesting data. Chances are my next attempt will be on soccer again but focusing on the PSL coaches, and time series of goals scored. If I could get the data related to the issuing of yellow cards and red cards in the history of PSL, I will look into it too.
I plan to do a Shiny application that will allow people to interact with this PSL data in an interactive way. And also include game predictions.
I tried to ensure that there are no errors in the PSL results data and I hope there are none, as I had checked and rechecked. But I’m human, I should be allowed to make some mistakes.
I hope people find this analysis enlighting and interesting.
Thanks to the following people
I would like to thank James Curley for the R package which inspired me to source the PSL data, so I could do this analysis. Thanks to the author of this book (Graphical Data Analysis with R – http://www.gradaanwr.net) Antony Unwin for the examples of his website and book. Thanks to Hadley Wickham for making R such a pleasure to work with.
Finally, I would like to thank Jeff Fletcher at http://www.limn.co.za for allowing me to publish my data analysis on his site. A big shout-out to my friends, Mandla Masipa and Phumudzo Nepfumbada, for being part of this data analysis exercise.
Data was sourced from the following sites: KickOff http://www.kickoff.com and Wikipedia http://wikipedia.org