REBBL Fantasy League
Scoring system design for the REBBL Fantasy Blood Bowl League
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. So let’s look at some of the details around how points will be scored and how the cost for each player was worked out.
We are obviously limited by what statistics are recorded by the game client, so I’ll ask a (recently retired) REL legend to provide a quick demonstration for those who have not explored their player’s stats before:
These stats can be broadly broken up into bashing (Blocks, Armour breaks (“Injuries”), KOs, Casualties, Kills, and Surfs) and ball handling (Passes, Catches, Interceptions, Yardage passing/carrying, and Touchdowns) and ideally we will have a point scoring system that will be balanced between all contributions. Taking match data from the last season of REBBL, the distribution of all these statistics looks something like this (note the log scale on the y-axis):
To work out a scoring system using these stats, I tried a few different scaling factors to try and standardise the distributions. Several different options were tested against all matches from Season 6 and assessed based on the following criteria:
- A balanced representation of bashy/agile players that score highly in a match
- Players from a winning team more likely to be represented in the top 3 scoring positions
- Most players will earn at least some points in a match
The system that was eventually selected was the following:
|Blocks||1 point per 5 blocks|
|Armour Breaks||1 point per 3 Armour Breaks|
|KOs||1 point each|
|Casualties||1 point each|
|Kills||2 points each|
|Surfs||2 points each|
|Passes||2 points each + 1 point per 20 yards|
|Catches||2 points each|
|Interceptions||5 points each|
|Carrying||1 point per 50 yards|
These scores are always rounded up, so 4 blocks will earn 1 point while 6 blocks will earn 2. Unlike in a standard fantasy sports league, there is a risk that having a published scoring system will encourage coaches to game the system by taking actions in a game purely to pump up their player’s fantasy points score. To counteract this coaches will be unable to purchase players from their own REBBL team, meaning that any points farming can only benefit their competition.
Applying this scoring system across the Season 6 data, each statistic contributed the following to a player’s total score for a match. The distributions of these are much more even, so all statistics have roughly equivalent importance for a player’s final score.
Now that we have a scoring system in place, we need to consider how to price players for building a team. While it would be nice to be able to provide each player with an individual price reflecting their scoring potential, we don’t have enough data to do so reliably and will instead price them by their position. What this means is that the key to a high scoring team will be not just picking the best players, but the best players when compared to other players of the same type.
To look in detail at how the cost of each piece was determined, we’ll use Chaos as an example because they only have three different players to consider. Using the Season 6 data, the average points each individual Chaos player would have scored with the above system is:
The black points and lines indicate the mean and bootstrapped 95% confidence interval for each category. What is pretty clear is that the higher the level a player is, the more points they will score. This makes sense because as a player develops more skills they will have offensive skills to start accumulating more point scoring statistics, or will have defensive skills to reduce the time they spend off the pitch earning no points. While this pattern is not seen in all player types, it is common enough that a linear model of fantasy points against level (accounting for differences in player type) suggests that each increase in level will result in almost half an additional average point per game (95% CI 0.43 – 0.48, p < 2e-16 ). So the cost of a player will have to increase by some amount as they become more skilled.
To determine the base cost of each piece, we need a metric that compares their relative scoring potential. If you look at the distribution of points for each piece, you will see that there is generally a long right tail.
The extent of this skew differs for different player types, which suggests that using average points is a poor way to set the base cost of a piece. In addition, the challenge in a fantasy sports league comes from being able to correctly identify which players fall into that high scoring portion of the distribution and so we will try to set our base cost from there. After trying a few measures, the 70th percentile (point at which 70% of the values lie below, and 30% above) was selected as the metric that best distinguishes between the different player types without being overly influenced by one or two outlier players. Rounding to the nearest half point, the 70th percentile values for Chaos players are 3 for Beastmen, 4.5 for Chaos Warriors, and 7 for Minotaurs.
Since some players are not common in REBBL and so do not have a lot of data to work with, a weeks worth of CCL matches were also analysed to confirm or adjust the values assigned by looking purely at REBBL Season 6 data. After considering this additional data, the 70th percentile values were adjusted for some player types (eg. Minotaurs were dropped from 7 to 6). For the races that were new in Legendary Edition, the CCL data provides the only good source of match statistics to use for working out player costs. Combining these 70th percentile values with the 0.5 point increase per level gives a pricing scale that looks something like this, with the solid line indicating the value used to price each player at a specic level.
While we can’t be certain that new races will perform in REBBL the same way they perform in CCL, they certainly appear to behave in a similar fashion. Here is the same figure as above but for the Ogre team using match data from CCL.
Converting to a cost
The final step is to convert all these values to an understandable cost and to set a budget that sets an appropriate constraint on team construction. In the end, multiplying all the relative pricing values by 20 worked easiest because it
- Meant that the 0.5 point increase per level comes out to a nice round 10
- Puts the base cost for each player more intuitively understandable level that approximates their TV cost
In fact, an indication that we are roughly on track with the scoring/pricing system is that the final cost of each piece is generally within 10-20 points of the actual in game purchase price of the piece. The biggest differences are seen in roadblock Big Guys and in lineman, whose job is generally to stand in the way and be annoying. Since this role doesn’t lead to racking up measurable statistics these pieces do not score very well using our system. However their role can sometimes be necessary for winning a game and so their TV cost is necessarily higher.
In the end though, it doesn’t matter what the exact price for each player type is, because the price is determined based on how well those players would have scored fantasy points in REBBL Season 6 or in CCL. The important part will be to find those players that score better than other players of the same type, to get the most bang for your buck on their purchase price.
For this season each coach will have a budget of 1,200 points, giving an average of 100 points to spend per player assuming that no more than the minimum 12 players are purchased. This level was set to provide a moderate constraint on team construction so that people can afford to get plenty of good players while not being able to just buy all the obvious stars of the league. To give some idea of what the budget will allow, I will consider two opposing philosophies of team construction:
Focus on the fundamentals
- This approach doesn’t care about track record of a player, but assumes that playing the averages will work to your advantage
- The aim is to maximise the raw scoring potential in your squad while hoping that you select enough future stars to give you the edge
- Start from a base of 6-8 players with a cost of 100 points (several blitzers, some elf throwers/runners, a Halfling Treeman or a Mummy, etc.)
- Then fill out the team by alternating a higher priced player (eg. a Wardancer at 120 points) with a lower priced player (eg. a Saurus at 80 points)
- All players are purchased at Level 1, so scour the fresh roll divisions for promising recruits or find some recent hires in the established divisions (the recent carnage in the Open Invitational should help you there)
On the shoulders of giants
- This approach puts more trust in past performance to identify the players that will consistently score more highly than their peers
- It requires a bit of sacrifice in some areas, but believes that betting on a few high quality pieces will pay off in the long run
- This team lives and dies by it’s stars, so start with them. If a player’s name comes immediately to mind when you think of REBBL, then they are probably worth considering.
- Start with 2-3 players from the 100-120 point range that you know will be racking up the points week after week
- Add in a few solid performers from the ~80 point range that have been around for long enough to develop the skills to be useful
- Fill the rest of the team out with fresh linemen and hope they pull in a few useful points now and then.
- You should be left with around 250-300 points for player levels, meaning that all your stars can be around Level 4.
I hope this helps provide some more detail about how this season of the REBBL Fantasy Blood Bowl League will run. As this is the first season using this format, feel free to provide feedback on the structure now or as the season progresses. We plan to look at everything at the end of the season to see if there are any changes that need to be made.
Share this post