About Team Chickenjoy
We are a father-son team. We care passionately about esports and the industry.
Jay “Chickenjoy” Campanell (son, LoL rank: Diamond II). He competed at the highest level in the Cloud9 Training Grounds program. Jay is a first year student at the University of Southern California (USC). He is interested in a career in the e-sports industry. He is seeking to get started within the industry’s data science vertical. His goal is to have five years of experience in the e-sports industry by the time he graduates from USC.
Rob “st4rtl” Campanell (father, LoL rank: Iron II). Rob is a retail industry data scientist. He is an avid e-sports fan who watches LCS, LPL, LCK, VCS, and PCS. He has aspirations to become a Valorant Game Changers team owner.
This is the second AWS / League of Legends competition we are participating. We competed at AWS Gameday LOL Edition at Worlds 2022 in the Chase Center.
Vision for Esports
By 2040, esports will be the world’s most popular spectator sport in terms of global viewers. This is our vision.
This decade is the transition to the 21st century. All things legacy are in big trouble. The world is getting ready for major change. This decade is pivotal for the esports industry to solidify its structural foundation.
Participation in this hackathon is our small part of contributing to the industry and adding one more brick in the road toward our vision for the esports industry.
Global Power Ranking
Our rankings use a multivariate statistical model. The model uses total gold, dragon kills, inhib kills, tower kills, and champion kills. These are summarized over the time window for the ranking. The multivariate statistical model takes these metrics, standardizes the metrics, and creates an overall ranking score. The overall ranking score is normalized between 0 and 1 to simplify its interpretation. We apply two weights to the scores. One is a league balance factor. The other is based on the number of teams the league sends to Worlds. We removed potential influencing outlier matches for each ranking at both top and bottom tails at 97 and 3 percentiles respectively.
Challenges: Wins
Our biggest win was being able to load the games data into Athena. The games data is an unusually large data set for most data professionals. Team Chickenjoy displayed courage, confidence, and mental willpower to execute this data munging challenge. We were able to perform queries on data, do some data quality filtering, and select the data points we needed for our ranking application. Once we had the queries defined, we unloaded the results to our S3 bucket in a parquet format.
2nd win. The parquet files in our S3 bucket contained the data we needed to build our ranking application. We used apache arrow and R on our Macbook to query the S3 parquet data.
3rd win. Once the rankings were ready, it was time to deploy them in an interactive web application. We built the application in R using the Shiny framework. We deployed the application on shinyapps.io
Challenges: Losses
We wanted to bring in third party data as a scoring metric which could act as a proxy for fan engagement. Fan engagement is critical for esports leagues and organizations. It can also act as a proxy for roster strength, under the assumption that organizations with the financial means to build strong rosters will have strong fan engagement.
We decided to use YouTube public data for the teams in leagues which participate in Worlds. Unfortunately, not every team maintains a YouTube channel. Chinese LPL fans are blocked from YouTube and Chinese sites such as Huya, Douyin, and Bilibili were too confusing to find teams.
Even though we could not use it in the rankings, we were curious and decided to test out our hypothesis with data from the LCK.
Methodology. We used a zero to one mix max normalization to standardize the scores. The scores are based on a random query of 50 videos from the team channel. we use views, likes, and comments in the scoring application. We filtered the data to only use the values within the quartile range. This is to measure engagement from the core fanbase. These are people who tend to watch the videos on the team channel on a regular basis.
The following table lists the engagement score from zero to one hundred for LCK teams.
AWS Services
- S3 is used to read the data for the challenge and store data from ETL queries to be used in our rankings
- Glue is used to perform ETL on the games data so it can be used for Athena queries
- Athena is used to query the games data.
- We managed costs by actively monitoring account billing.
Weighting the Global Power Rankings
We created two weights for the global power rankings. These are applied to the raw scores from our multivariate method scoring application.
League Balance Factor This factor accounts for the strength of competition within the regional leagues. This is the difference between raw ranking scores for the top 3 teams within the regional league. If the maximum difference is more than 1.2, the balance factor is the inverse of the difference. Competitive regional leagues where the difference is less than 1.2, the balance factor is set to 1. The league balance factor is applied to all teams in the global rankings.
Number of teams sent to Worlds by league
League [Weight]
- LPL [1.5]
- LCK [1.5]
- LEC [1.4]
- LCS [1.4]
- PCS [1.3]
- VCS [1.3]
- CBOL [1.1]
- LJL [1.1]
- LLA [1.1]
- All others [0.9]
Tournament Rankings
We built the tournament rankings for all tournaments going back to 2020. We identified tournaments as events from the tournament fixture data which had a duration of 40 days or less. We ranked 46 tournaments.
We used the team's most recent games from the past 50 days before the tournament start date. We used our Worlds weighting method for the international tournaments. A tournament will appear in the rankings when four or more teams participate in the tournament. However, one drawback of the tournament rankings is missing data for LPL and VCS teams in the international tournaments.
Improvements
Momentum Factor Global rankings should have a momentum factor based on their recent performances. We would start with analyzing the trend component from a time series decomposition to build this factor.
League Balance Factor The league balance factor needs more inputs. Our current factor can be too punishing (ex. LJL) and interactions with other weights such as the Worlds weight can produce ranking positions that instinctually feel slightly off.
Final comments
Missing LPL team names There is some recent 2023 data for the LPL teams. However such teams as Anyone's Legend, WE, OMG, Ultra Prime, NIP, Rare Atom were missing team names. We created dummy teams such as LPL11 - LPL17.
Data Experience Some Team Chinkenjoy team members have good domain knowledge about League of Legends, but we only had a few weeks to build familiarity with the data. Some of our decisions will exhibit inexperience and lack of familiarity with the data sets.
Video We used Microsoft Clipchamp to make the video. The narration is done using the text-to-speech function in the tool. Linear video editing is still painful, but the text-to-speech function made it a little easier.
Built With
- amazon-web-services
- arrow
- athena
- glue
- r
- s3
- shiny
- shinyapps.io
- tidyverse

Log in or sign up for Devpost to join the conversation.