Recently, the NAF implemented a new rating system alongside their old Elo system. The stats nerd in me immediately got excited because the new approach uses the Glicko system (excellent introduction to the implementation here) which uses both a player’s estimated ability as well as a measure of how uncertain that estimate is. This should allow us to do a few interesting things beyond a basic leaderbaord. Seeing that all the code was available and that it stores historical ratings along with the current snapshot (now removed from the repo because it’s a large file but still accessible if you know where to look) I decided to have a play around and see if we can visualise them.
A few people have been asking for some more details about the principal components in the previous post, so strap in for some more graphy goodness. We’ll even dive a bit deeper into the weeds by looking at the third and fourth principal components for each league, taking our level of explained variation just above 50%. Before we begin however, it’s worth raising a few important caveats from discussions I’ve seen.
One sure thing about Blood Bowl is that if you start talking about race classification there will be inevitable debates about which team fits where. After watching yet another of these discussions around the standard bash/dash/hybrid distinction I decided to see if taking a data-driven approach could provide an interesting perspective. To do so, we’ll look at matches from a few different leagues to see if our results are consistent.
For the relaunch of the REBBL Fantasy Blood Bowl League, there were two main changes I wanted to make from the inaugural season: Automate as much as possible (because it looked like it drove poor Harringzord batty tring to keep track of everything) Move away from SPP gain as a scoring system (because there are many ways to contribute to a match that don’t earn SPP) Having access to individual player statistics through the match reporting bot means we are in a position where both goals are achievable.
Last weekend saw REBBL’s family of one-day tournaments continue to expand with the addition of the tried and true format: a Cripple Cup. No apothecaries, no rerolls and no retiring means that the game plan for this tournament is to grind your opponent into the dust and hope you have enough of a team left to limp over the line to victory. By the end of the day 33 coaches had thrown their players into the meatgrinder, hoping to achieve glory before the injury toll became overwhelming.
The scouts have been out in force, carefully cataloguing pre-season preparations across REBBL in an effort to work out which teams will be on everyone’s lips as we get to the pointy end of the season. Even the seedier elements of the league have got in on the action, though one can only assume that their methods are unconventional at best. At the Nufflytics Institute, we do not believe in such terms as ‘effort’ and ‘thinking’ and instead prefer to focus on the purity of numbers to guide us to the season’s outcomes.
The supposed experts have already cast their eyes over the prospects in The Big O for this season. However, in what I’m sure was an innocent oversight, they appear to have forgotten to give Division Two the proper care and depth of analysis befitting it’s position as the best division in the league. Luckily, we here at the Nufflytics Institute are up to the challenge of providing the division the respect it deserves.
Now that we have gotten our feet wet with the Champion Ladder data, it’s time to start looking at some actual match results. We are going to start with Team Value because it’s an interesting mechanic in Blood Bowl that plays a number of complementary roles: It provides the initial constraint on team composition, meaning that a fresh team never quite has everything you would like. It underpins matchmaking in the Champion Ladder, making TV management an important aspect of long-term strategic decision making.
To keep things simple, our first exploration of the Champion Ladder data is going to mostly ignore game stats completely and just look at the timestamps for each game. Each game has a start and finish time recorded, and I’m going to make a guess that these are being recorded in Paris time given that is where Cyanide is based. So how many Champion Ladder games get played in a day, and does it change over the course of a season?
The data We currently have available all Champion Ladder match data for seasons 1-51. This post will just be a quick rundown of what is in the dataset, so that I have a reference for when we start to do some real analysis. The spreadsheets contain one line for each game, so the number of rows gives us the number of games and the number of columns are the number of parameters recorded for each match.