EPL Fantasy GW9 Recap and GW10 Algo Picks
If this is the first time you land on one of our Fantasy EPL Blogs, you might want to check out some of our original EPL blogs in my Medium archives to get familiar with how this project started and the improvements we’ve made over time.
Top 100 FPL Team Stats for GW9
We saw more normal numbers last week at the top, where top 100 players averaged around 73pts, with some of the top players scoring in the 40–50pts range, which makes us feel a little better about ourselves since we scored close to the Top100 average.
Most Selected Goalkeepers by Top100
Most Selected Defenders by Top100
Most Selected Midfielders by Top100
Most Selected Strikers by Top100
We used this data to create the team below which is a blend of the most selected players by Top100:
Most selected Team Formation by Top 100
These stats make sense as most of the top players are trying to capitalize on offensive midfielders and strikers with the 3–4–3 formation.
GW8 Team Performance Recap and Overall Stats
We had all of our teams score near or above average, and close to the average of the top100 players in the world so we had a decent week overall. We did well on our captain selection by going with the top-recommended choice by our Algorithm — Bruno Fernandes, but on one of our team we decided to gamble with Watkins and that hurt us immediately. We were also happy with not rushing to sell Son, as we expected him to do well against City.
We also participate in the FanTeam version of the FPL, where we had another strong week in two of our teams.
Useful Stats to Inform our GW10 Picks
Since we added a lot of new stats to our Algorithm this year, this Blog will evolve to have more stats and graphs and less text over time. Let’s start with the Fixture Difficulty Rating (FDR) for the next three game-weeks below:
Looks like FUL, BHA, WOL, LEE, TOT, MUN, and BUR have some tough games coming up, so our algorithm would not recommend investing long-term in many players from those teams. LIV, LEI, MCI, WBA, SOU, and NEW seem to have more easy schedules over the next three weeks, so our algorithm would favor players from those teams.
We will try to stack up on players from teams that have a higher than 50 % chance of winning such as MUN, MCI, LEI, LIV, EVE, ARS, and WHU. We should try not to have too many defensive players from BUR, FUL, BHA, SOU, WOL, and LEE.
Teams with a higher probability to draw, especially when the game is combined with high odds for Under 2.5, might be good for selecting defensive players because if the game ends 0:0, that will result in lots of bonus points. Combined with the Under/Over Graph below, we can identify the following games with a higher probability of at least one clean sheet — CRY-NEW, WHU-AVL, WBA-SHU, and ARS-WOL.
Inversely, we might want to have more attacking players from games with high odds for Over 2.5 such as MCI-BUR, LEI-FUL, EVE-LEE, BHA-LIV, and WHU-AVL.
From the stats below it appears that there is a higher chance for a penalty given in games: ARS-WOL, CRY-NEW, BHA-LIV, and WBA_SHU, so we recommend having penalty takers for some of these teams. Looks, like the games LEI-FUL, MCI-BUR and ARS-WOL have refs that like to give a lot of cards, so expect to lose some points from yellow/red cards.
Projected Starting Lineups
Before we run our final team selector, let’s take into account the predicted starting 11 for each team.
Team Cumulative ROI Stats
This table can reveal which teams are considered good investments overall, and which teams have a lot of overpriced underperforming players. Teams are sorted by avg_pts_per_player, so to no surprise AVL, SOU, WHU, CHE, TOT, and WOL are the teams at the top of the list, since they have exceeded their expected performance given their player prices. Some of the more overpriced, underperforming players can be found in FUL, NEW, SHU, WBA, MCI, and CRY, so it would be a good idea to be very selective with which players you pick from those teams.
Defensive vs. Offensive Team Stats
So far, having offensive players from CHE, TOT, LIV, EVE, AVL, LEI and SOU seems to be a good investment.
While having too many offensive players from BUR, SHU, WBA, FUL, WOL, and ARS seems to be a poor investment, unless you have the one player who scores most of the goals such as Jimenez at WOL.
Having defensive players from TOT, WOL, ARS, WHU, CHE, and MCI seems to be a good investment.
While having defensive players from WBA, LEE, FUL, EVE, LIV, and BHA seems to be a poor investment.
Our approach takes the predicted points for the upcoming game, probability that the player takes penalties, corners, or free kicks, a coefficient for the player’s aerial threat from the past 4 seasons, the likelihood of their team scoring 2 or more goals, and blends all of those in a normalized way into a final captain_choice coefficient. The coefficient is then discounted by an opponent_resistance score, based on the player’s next opponents adjusted FDR and normalized score for defensive strength this season. Example of what the Pandas DF looks like below:
Based on that formula, here is the list of the Top15 recommended captains for this GW. Lots of good options there, so not an easy choice by all means. Our recommender thinks you should go for Vardy, KDB, Sterling, Fernandes, or Mane (note that our Algo is still not 100% sure Salah would play, otherwise I am sure he will be up there in the Top5 choices).
Predictive Models (Player Stats)
It’s time for the crown jewel of this year’s improved Algorithm — the predicted player stats. After we layer in all the FDR, bookie coefficient, ref starts, projected lineups and injuries, there are two major metrics that we take into consideration when tuning our Team Optimizer for the next n-gameweeks team selection — predicted total points and expected value (ROI). Below are the stats for each metric, also broken down by position.
Projected Total Points — Top 25 Players
Projected Points — Top Goalkeepers
Projected Points — Top Defenders
Projected Points — Top Midfielders
Projected Points — Top Strikers
As you can see there is a large number of options we can choose from for each position, so we will be plugging a lot of the stats above into an Optimization Function in Python, which will output the team with the highest expected total points, given our budget constraints and other metrics that go into our decision making process. Some of the preliminary filters, applied before the Team Selector Code kicks in, include:
- Exclude Injured or Suspended players
- Exclude Players from teams with high FDR
- Exclude Players from Teams without Fixtures in GW1
- Cannot have more than 3 players from the same team
- Must have 15 players total (GK=2, DF=5, MD=5, ST=3)
Optimize Budget for most used formation
Most used formation by Top100 players last week was 3–4–3, so we will present an optimized team for that formation. As you can see below, the model first looks at parameters that tell it if it should optimize towards full squad of 15 players, or towards a specific formation with 11 key players and 4 cheap fillers. For the fillers, it first looks at preferred formation and uses that to decide how many fillers to get per position. The model then subtracts the total amount spent on the 4 fillers from our initial budget and spends the leftover budget on the key 11 players, given the optimization function and model constraints.
Example1: Optimize towards max expected points
Example2: Optimize towards max value for all 15 players
Not a bad looking team at all with 15 solid players, expected to start and with the potential to score +6pts.
Our Team for GW10
We will always use our top-scoring team from last week, and try to do a maximum of 1–2 transfers. Since we’re publishing this blog on Wed and the CL games just ended and Europa League games still to be played tomorrow, we will wait to make transfers until Friday. Below is one option we’re considering for a 3–5–2 formation: selling Zyech for KDB and Zouma for Masuaku for a -4pts cost.
The way the season has been going, we recommend shifting away from expensive defenders and trying to just have three mid-range defenders and stack lots of chips in midfield and offense, since it has been raining goals so far this season, and there is no indication that things might be slowing down anytime soon. Also, with COVID and the increasing injuries it might be a good strategy to switch to a few value players as subs in case your starting line-up suffers unexpected damage. Thanks for reading as always and good luck this week!