GW Overview - Expectation
Expected Gain / Loss Analysis
x-axis show the relative gain by having the player in your lineup, y-axis shows the relative loss by not having the player.
Bubble size shows the price of the player before the deadline.
These values exclude captaincy.
ID | Name | Pos | xP | Exp. Gain | Exp. Loss | Own% | ||
---|---|---|---|---|---|---|---|---|
{{ i[1].player_id }} | {{ is_using_captain ? (i[1].captain? (i[1].multiplier == 3 ? "TC" : "C") : "L") : "L" }} | {{ i[1].web_name }} | {{ element_type[i[1].element_type]['short'] }} | {{ rounded(i[1].points_md) }}{{ is_using_captain && i[1].multiplier > 1 ? " (x" + i[1].multiplier + ")": "" }} | {{ getWithSign(i[1].xp_owned_captain ) }} | {{ getWithSign(i[1].xp_owned) }} | {{ getWithSign(i[1].xp_non_owned) }} | {{ parseFloat(i[1].ownership).toFixed(1) }} |
{{ i[1].player_id }} | B | {{ i[1].web_name }} | {{ element_type[i[1].element_type]['short'] }} | {{ rounded(i[1].points_md) }} | {{ getWithSign(i[1].xp_owned) }} | {{ getWithSign(i[1].xp_non_owned) }} | {{ parseFloat(i[1].ownership).toFixed(1) }} | |
{{ i[1].player_id }} | {{ i[1].web_name }} | {{ element_type[i[1].element_type]['short'] }} | {{ rounded(i[1].points_md) }} | {{ getWithSign(i[1].xp_owned) }} | {{ getWithSign(i[1].xp_non_owned) }} | {{ parseFloat(i[1].ownership).toFixed(1) }} | ||
Overall Gain - Lineup | {{ getWithSign(lineup_xp_sum) }} | {{ (lineup_own_sum/11).toFixed(1) }}% | ||||||
Overall Gain - Squad | {{ getWithSign(squad_xp_sum) }} | {{ (squad_own_sum/15).toFixed(1) }}% | ||||||
Overall Loss - All Players | {{ rest_xp_sum }} |
Expected Net Loss (Rest): {{ rest_xp_sum }}
GW Overview - Realization
Net Gain / Loss Analysis
x-axis show the relative gain by having the player in your lineup, y-axis shows the relative loss by not having the player.
Bubble size shows the price of the player before the deadline.
These values exclude captaincy.
Name | Pos | xP | rP | Own% | Exp | Net | |||
---|---|---|---|---|---|---|---|---|---|
{{ is_using_captain ? (i[1].captain? (i[1].multiplier == 3 ? "TC" : "C") : "L") : "L" }} | {{ i[1].web_name }} | {{ element_type[i[1].element_type]['short'] }} | {{ parseFloat(i[1].points_md).toFixed(2) }}{{ is_using_captain && i[1].multiplier > 1 ? " (x" + i[1].multiplier + ")": "" }} | {{ i[1].stats.total_points }} | {{ parseFloat(i[1].ownership).toFixed(1) }} | {{ getWithSign(i[1].net_xp) }} | {{ getWithSign(i[1].net_benefit) }} | {{ getWithSign(i[1].net_xp) }} | {{ getWithSign(i[1].net_benefit) }} |
B | {{ i[1].web_name }} | {{ element_type[i[1].element_type]['short'] }} | {{ parseFloat(i[1].points_md).toFixed(2) }} | {{ i[1].stats.total_points }} | {{ parseFloat(i[1].ownership).toFixed(1) }} | {{ getWithSign(i[1].net_xp) }} | {{ getWithSign(i[1].net_benefit) }} | ||
{{ i.web_name }} | {{ element_type[i.element_type]['short'] }} | {{ parseFloat(i.points_md).toFixed(2) }} | {{ i.stats.total_points }} | {{ parseFloat(i.ownership).toFixed(1) }} | {{ getWithSign(i.net_xp) }} | {{ getWithSign(i.net_benefit) }} |
Expected | Expected (Live) |
Realized | Played | |
---|---|---|---|---|
Gain | {{ (aftermath.exp_gain).toFixed(2) }} | {{ (aftermath.exp_gain_live).toFixed(2) }} | {{ (aftermath.real_gain).toFixed(2) }} | {{ aftermath.played_own }} |
Loss | {{ (aftermath.exp_loss).toFixed(2) }} | {{ (aftermath.exp_loss_live).toFixed(2) }} | {{ (aftermath.real_loss).toFixed(2) }} | {{ aftermath.played_nonown }} |
Net | {{ getWithSign(net_change) }} | {{ getWithSign(aftermath.exp_gain_live-aftermath.exp_loss_live) }} | {{ getWithSign(aftermath.real_gain-aftermath.real_loss) }} |
Q/A
What is the source of expected values?FPL Review. For questions, check Twitter.
How do you calculate expected gain and expected loss?Expected gain is calculated using (Expected Points) * (1-Ownership Ratio). Similarly expected loss is (Expected Points) * (Ownership Ratio).
The logic behind this calculation is simple: if you have a player, you are at an advantage
as much as how many people don't own the player. If a player has xP of 6 and no one owns him, you get +6 compared to others. If ownership at 75%, your gain is averaged at 6*(25%)=1.5. Similarly, if you do not own the same player,
then your net loss will be 6*(75%)=-4.5.
FPL API does not show whether owned players are on the bench or on the starting lineup. When using FPL API values, we consider all players of other managers as if all of their players are playing. For the sampling methods, we only use other managers' starting lineup, which should be a better approximation.
My realized points differ from these values here.Since FPL Official API does not release captaincy ratios, points coming from captains are excluded. I'm planning add them for sampling methods soon.
Why some of the players are marked red color?Players in your squad are marked light blue, while biggest threats (5 players) to your team is marked red/orange.
What is the point of this analysis?I use an optimization model for all of my FPL decisions, no manual decisions are allowed. So, I needed to a way to evaluate if all is working well with algorithm. I was doing this analysis for some time now, but decided to automate it. While I'm at it, I wanted to share it with rest of FPL managers.
Sometimes page is loading very slow.FPL API does not allow direct connection, so I'm using a CORS proxy. Depending on the load, proxy could be very slow sometimes.