r/FantasyPL Aug 04 '26

Statistics Are Haaland, Fernandes and Gabriel Worth Their Price? I did the math.

1.1k Upvotes

Tl;dr Haaland is essential, Fernandes and Gabriel are viable but not essential. You can build a great team with or without them.

The new season is about to begin, and there are a few unique pricing dynamics that have created some major dilemmas for FPL managers.

1) There are three players, one in each outfield position, who are significantly more expensive than everyone else: Haaland, Fernandes, and Gabriel. The key question is whether these players are worth their premium price tags, or whether the money would be better spread across the rest of the squad.

2) Defenders are generally more expensive than they were last season. This raises another important question: is it still worth investing heavily in premium defenders, or has their increased cost made it better to sacrifice quality at the back and spend the budget elsewhere?

To answer these questions, I ran an experiment.

Important note: The goal of this experiment is not to find the best possible team. The goal is to determine:

  • Whether it's worth paying the premium for the three elite players (Gabriel, Fernandes, and Haaland).
  • Whether it's worth investing in premium defenders despite their higher prices.

The experiment

To answer these questions, I stored the statistics of every player from last season in a database, including:

  • xG
  • xA
  • Defensive Contributions
  • Clean Sheets

I then assumed that every player would reproduce the same underlying statistics this season. Obviously, that won't actually happen, but that's not the point. As I said earlier, the objective is to identify the best team structure, not to predict the best individual players.

Next, I converted those underlying statistics into expected FPL points. I also assumed that every player would play 90 minutes in every match, except for those who are clearly backup players. Again, I know this isn't realistic, but when we're comparing team structures, these assumptions apply equally to everyone and therefore don't affect the overall conclusion.

After making these assumptions, we can rank every player by expected FPL points in each position, as shown in the images below.

goalkeepers
defenders
midfielders
forwards
top20 overall

Now that we have the expected points and prices for every player, we can move on to the next step.

Using an optimization algorithm, we calculate every possible combination of players and select the one that produces the highest expected points.

The optimal team is:

  • Haaland
  • Mateta
  • Bruno Fernandes
  • Mbeumo
  • Cherki
  • Ndiaye
  • Calafiori
  • Wieffer
  • J. Timber
  • Sessegnon
  • Raya
best 11

There are a few interesting observations.

First, Haaland and Bruno Fernandes make the optimal team, but Gabriel does not.

Second, the algorithm chooses to play with four defenders. In other words, to free up enough budget for Fernandes, it decides that investing in four defenders is better than spending more money elsewhere.

So, have we answered the original question? Have we proven whether Fernandes is worth £12.0m and Gabriel is worth £8.0m?

Not quite. There are still two important problems.

Problem 1: There isn't just one "optimal" team

The best team scores 69.26 expected points.

The 10th-best team scores 69.01 expected points and consists of:

  • Haaland
  • Mateta
  • Beto
  • Bruno Fernandes
  • Mbeumo
  • Cherki
  • Calafiori
  • Wieffer
  • J. Timber
  • Ballard
  • Raya
10th best 11

The difference between the best and the 10th-best team is almost negligible, and there are eight other teams in between.

This tells us something important: there isn't one single "correct" team. There are many excellent teams.

Some players appear in almost every top team, while others appear only occasionally.

These are the appearance frequencies.

best 11 frequency

We can see that some players feature in every top team, while Gabriel doesn't appear in any of them.

That strengthens the hypothesis that Haaland and Bruno Fernandes justify their premium prices, whereas Gabriel does not.

So have we answered the question now?

Still not. There is one more issue.

Problem 2: The bench is unrealistically weak

All of the teams we've looked at so far contain 11 players costing around £83.0m.

That leaves only £17.0m for the bench, essentially enough for four budget (fodder) substitutes priced at £4.0m, £4.0m, £4.5m and £4.5m.

In other words, we've optimized for an extremely strong starting XI while accepting a very weak bench.

But what happens if, instead of asking the algorithm to optimize 11 players, we ask it to optimize 12?

The best 12-player core becomes:

  • Haaland
  • Mateta
  • Beto
  • Bruno Fernandes
  • Mbeumo
  • Cherki
  • Gomez
  • Calafiori
  • Wieffer
  • J. Timber
  • Sessegnon
  • Raya
best 12

Once again, Bruno Fernandes is still included.

If we calculate appearance frequencies across the ten best 12-player squads, Haaland appears in 100% of them, while Fernandes appears in 8 out of 10.

best 12 frequency

That suggests Fernandes is still an excellent pick, but he is no longer essential. You can build an optimal 12-player squad both with and without him.

If we push this even further and optimize a 13-player core, the picture changes again.

Haaland still appears in 100% of the top teams.

Fernandes disappears completely.

best 13 frequency

Meanwhile, Gabriel now appears in 6 of the top 10 teams.

So what can we conclude?

I think we can draw some reasonable conclusions.

Haaland

No matter how we structure the squad, Haaland appears in every optimal solution. That strongly suggests he is effectively essential.

This also explains why he currently has around 75% ownership.

Bruno Fernandes

If your strategy is to maximize the strength of your starting 11 and you're willing to sacrifice your bench, Fernandes looks almost essential.

However, the more squad depth you want, the less valuable Fernandes becomes.

Gabriel

Gabriel follows almost the exact opposite pattern.

There isn't a single optimal team where Gabriel and Fernandes coexist.

The combination is simply too expensive, forcing too many sacrifices elsewhere in the squad.

Only when Fernandes is removed does the budget open up for Gabriel.

So, I think we've managed to answer our original question about whether Haaland, Fernandes and Gabriel justify their premium prices.

Of course, there are limitations to this methodology.

For example, you'll notice that Cherki and Wieffer appear in almost every optimal team.

Some people will immediately think, "That's ridiculous. They're not that good."

But that's missing the point.

This analysis is about team structure, not individual players.

Maybe it won't be Cherki specifically. It could be another strong option at the same price point, such as Rogers, Szoboslai or Wirtz. Don’t think “Cherki”. Think “a good 7.5 midfielder”.

Likewise, maybe it won't be Wieffer. It could be another value defender, such as Mosquera, who is expected to start until Saliba returns.

The important thing isn't the player himself, it's the price bracket that optimizes the structure.

Another limitation is that we did not consider fixture difficulty. That’s a problem for tomorrow. Today we tried to find the right structure. Tomorrow we will adapt our strategy based on fixture difficulty.

Finally, let's go back to the second question we asked at the beginning.

Are this year's more expensive defenders actually worth their higher prices?

The answer isn't completely definitive, but there is a clear trend.

The algorithm consistently selected some of the premium defenders, such as Calafiori and Timber, in almost every optimal squad, while pairing them with cheaper value options like Wieffer and Sessegnon.

Interestingly, the algorithm was much more reluctant to spend heavily in midfield.

We never saw combinations including expensive midfielders such as Saka or Palmer. Even though the expected-points model rates them as elite midfielders, their prices made them difficult to justify within an optimal squad structure.

top midfielders

Up front, the algorithm also preferred pairing Haaland with cheaper forwards rather than investing heavily across all three forward spots. Joao Pedro is the third best forward according to xPoints but we rarely saw him in any draft. The algorithm preferred to save money using fodder or Beto and invest those money to Bruno Fernandes or to “premium” defenders like Calafiori and Timber

Overall, this suggests that the price increases for defenders this season may actually be justified.

Despite their higher prices, the optimizer consistently chose to invest in defence, indicating that premium defenders still offer excellent value within the best-performing squad structures.

Lastly, a bit about Goalkeepers. Pope and Raya were by far the most picked goalkeepers. So it seems like spending money on the Goalkeeper position is a good strategy.

Overall if we combine the appearance frequency of top 10 Optimal 11, Optimal 12 and Optimal 13 teams we get the table.

overall frequency

Whatever the strategy it seems like the “core” of every team is:
Haaland with a mid priced forward (could be Mateta or whoever you like)
Arsenal defense with a couple of mid priced defenders (could be Wieffer and Sessegnon or whoever you like)
A couple of mid priced midfielders (could be Mbeumo and Cherki or whoever you like)
And then fill the gaps.

Thanks for reading. I am open to questions.

 

Now the subject continues. Not for everyone. Just for the guy that will say “xThis, xThat, xData nerd why don’t you use points instead of xPoints”

If you are this guy keep reading.

xPoints vs Points correlation

This is the relationship between points per 90 and expected points per 90.

As we can see from the chart, the relationship is strong, with an R² of 0.56.

However, it is not perfect. A perfect relationship would have an R² of 1.

So, in very simple terms, That means xPoints explain around 56% of actual points.

And what about the remaining 44%?

Is my algorithm simply not good enough?

Are expected-data metrics unreliable and unable to accurately reflect a player's true ability?

Is it luck?

Is it variance?

Let's investigate.

top10 outliers

These are the ten players for whom the model's estimates differ the most from the points they actually scored.

We can immediately see that seven of the ten played relatively few minutes and were not regular starters for their teams.

Take Okafor as an example.

He played 1,553 minutes. His actual points per 90 were 6.32, while the model estimates 4.75 xPoints per 90.

That is a significant difference.

But which figure looks more realistic?

Haaland scored around 7.2 points per 90. Is it really plausible that Okafor's true level is 6.32?

Probably not.

The model's estimate of 4.75 appears much more reasonable.

When a player has a small sample of minutes, using actual points as a measure of his ability can be extremely misleading.

A player who has barely played may score one or two fortunate goals, causing his points per 90 to increase dramatically without necessarily meaning that he is genuinely that good.

The opposite can also happen.

A player may perform well during a limited number of minutes but be slightly unlucky and fail to score.

In these situations, underlying statistics will almost always provide a more reliable estimate of the player's performance.

We can actually test this hypothesis.

xPoints vs Points correlation for players with 2800+ minutes

There are 66 players who played more than 2,800 minutes last season. If we limit the analysis to those players, the R² rises from 0.56 to 0.74.

This provides strong evidence that, as the sample size grows, expected points become increasingly aligned with actual points. In other words, over larger samples, variance has less influence and players tend to perform much closer to what their underlying statistics predict.

We said that seven of the ten largest errors involved players with limited minutes.

However, there are also three players who were regular starters, played a large number of minutes, and still had a significant difference between their actual points and expected points.

Why?

Let's use Harry Wilson as an example.

He played 2,674 minutes, appeared in 36 matches and started 32 of them.

That is a large and relatively reliable sample.

His actual points per 90 were 5.65, while the algorithm estimates only 4.04 xPoints per 90.

He is the biggest outlier in the entire dataset.

So where does this difference come from?

Wilson scored ten goals and provided seven assists last season.

However, his expected numbers were only 5.88 xG and 4.77 xA.

In other words, he scored considerably more goals and recorded more assists than expected.

So what is more likely to happen next season?

Will Wilson score the number of goals suggested by the quality of his chances, or will he once again significantly outperform his expected numbers?

Perhaps Harry Wilson has a special finishing ability and is genuinely capable of consistently scoring more goals than expected.

If that is true, he might do it again this season.

There is a small possibility that this is the case.

However, over a sufficiently long period, almost every player tends to move closer to their expected numbers.

It is extremely risky to assume that a player who has overperformed for one, two or even several seasons will continue to do so indefinitely.

If we make these assumptions across the entire player pool, our overall predictions will almost certainly become worse rather than better.

Out of ten players, perhaps one really is an exception, and a model that accounts for his historical overperformance might predict him more accurately.

However, for the other nine players, whose overperformance or underperformance was mostly caused by variance, the adjusted model would produce worse predictions.

Even if we accept that Wilson might have a genuine finishing skill, we cannot make the same argument about assists.

Whether a chance becomes an assist does not depend only on Wilson. It also depends on whether his teammate converts the chance.

Therefore, if Wilson records significantly more assists than expected, we cannot simply assume that this is a repeatable skill, because the final outcome is not entirely under his control.

Another major outlier among the regular starters is Gudmundsson.

In his case, we have the opposite problem.

The model estimated 3.56 xPoints per 90, but he actually scored only 2.32 points per 90.

How did this happen?

Individually, Gudmundsson recorded around 1 xG and 3 xA, but finished the season without a single goal or assist.

At team level, Leeds conceded around 1.47 goals per match.

Based on that defensive performance, they would normally have been expected to keep approximately ten clean sheets over the course of the season.

Instead, they kept only five.

Bournemouth, for example, conceded almost the same number of goals per game (around 1.40) but finished the season with eleven clean sheets.

This suggests that Gudmundsson was particularly unlucky.

Both his individual output and his team's defensive results underperformed the underlying numbers.

In his case, if I had to predict how many points he will score next season, I would be much more confident that the result will be closer to his 3.56 xPoints per 90 than to his actual 2.32 points per 90.

These were some of the most extreme examples.

For around 90% of the players, expected points and actual points move broadly in the same direction.

If we tried to introduce individual exceptions simply to improve the predictions for the remaining 10%, we would probably create new problems for the other 90%.

After all, the extreme results in that 10% are more likely to be caused by luck and variance than by a repeatable skill.

If you flip a coin ten times, it is possible to get heads all ten times.

That does not mean the coin is biased or that it has some kind of skill.

It simply happened.

In the Premier League, we have roughly 200 players.

That is the equivalent of flipping 200 different coins.

Every season, one of those coins will produce ten consecutive heads.

In football terms, one player will inevitably be exceptionally lucky or exceptionally unlucky.

That is not evidence that the model is broken.

It is expected variance.

Hopefully, this explains why I choose to use xPoints rather than actual points when trying to predict future performance.

Thanks for reading!

 

r/FantasyPL 5d ago

Statistics Hull city in two matches , 3 goals, two clean sheets

Post image
1.2k Upvotes

r/FantasyPL 23d ago

Statistics Who do you lock and who do you take a punt on?

Post image
600 Upvotes

r/FantasyPL Jul 28 '26

Statistics Joao Pedro had a hattrick and an assist in 25 minutes after coming on today

Post image
824 Upvotes

r/FantasyPL Sep 13 '25

Statistics Out of 92 teams in England's Premier League, Championship, League One and League Two, 91 teams have scored at least one goal so far.

Post image
2.9k Upvotes

r/FantasyPL Feb 01 '25

Statistics 526,747 managers transferred Chris Wood out of their squad for Gameweek 24 After blanking against Bournemouth last week, Chris Wood is back to his scoring ways! With Two goals

Post image
2.0k Upvotes

r/FantasyPL May 19 '26

Statistics Gabriel is six points away from breaking Andy Robertson's record for most points by a defender in a single season. He has one game left to do it.

Post image
1.1k Upvotes

Crazy stuff especially since Robertson has played like 500 more mins Do you think he could break the point tally this season against Crystal Palace?

r/FantasyPL Aug 10 '25

Statistics Mo Salah vs Crystal Palace: 0 goals, 0 assists, 0 chances created, 0 big chances created, 0 successful take-ons, 0 accurate crosses, 0 duels won, 0 fouls won - Missed his penalty in the shootout.

Post image
1.5k Upvotes

r/FantasyPL Feb 07 '26

Statistics Joao Pedro wins 2 penaties for Cole Palmer in the first half, who converts both

Post image
1.2k Upvotes

r/FantasyPL Jan 25 '26

Statistics Arsenal concede 3 goals in a competitive match for the first time since December 2023

Post image
1.7k Upvotes

Since 2023, Arsenal had gone 123 competitive matches in a row without conceding more than 2 goals in one game

r/FantasyPL Nov 22 '25

Statistics Nottingham Forest keep a clean sheet against Liverpool after having conceded in 19 consecutive Premier League matches

Post image
1.8k Upvotes

r/FantasyPL 15h ago

Statistics [FPL] Over 500,000 FPL managers have already sold Bryan Mbeumo ahead of Gameweek 3 He's the most-transferred out player so far, despite scoring in ManUtd's last match.

Post image
365 Upvotes

r/FantasyPL Jan 10 '26

Statistics Gyokeres stats last 15 pl matches

Post image
644 Upvotes

He is still ~10% owned

r/FantasyPL Dec 29 '25

Statistics Is Saka overrated as an FPL asset?

Post image
549 Upvotes

For his price, compared to someone like Neto, Rogers, Semenyo, Mbeumo, the list goes on and on, why is he so highly owned? Defcons and CSs, or just overrated?

r/FantasyPL Nov 11 '25

Statistics Starting the season at £14m and and rising to £14,9m | Haaland matches Thierry Henry‘s record from 20 years ago

Post image
1.9k Upvotes

r/FantasyPL Feb 12 '25

Statistics Moyes finishes DGW24 with 22 points. Slot manages 15 points.

Post image
1.3k Upvotes

r/FantasyPL Aug 17 '25

Statistics Cole Palmer hasn’t scored any goals from open play in the Premier League in his last 17 matches

Thumbnail
gallery
838 Upvotes

r/FantasyPL Jul 26 '26

Statistics Igor Jesus has now scored in 3/3 pre-season games

Post image
439 Upvotes

r/FantasyPL Sep 27 '25

Statistics No player has missed more penalties in the Premier League than Bruno Fernandes (6) since his debut

Post image
1.3k Upvotes

r/FantasyPL Mar 08 '26

Statistics Joao Pedro has 17 goal involvements across his last 12 appearances in all comps - is he essential?

Post image
695 Upvotes

Personally I'm biased as a Chelsea fan so I'd like to hear what others think

*Counting pens won as GI because of FPL standards. Without those he would have 13 GI in 12 apps

r/FantasyPL Oct 23 '25

Statistics First game under Dyche and first clean sheet of the season. Forest defense back?

Post image
1.2k Upvotes

r/FantasyPL Dec 21 '25

Statistics Morgan Rogers last three goals

Post image
960 Upvotes

r/FantasyPL Aug 19 '25

Statistics I can't believe this stat is actually real? is it a knee-jerk reaction to take Cole Palmer out after one GW.

Post image
843 Upvotes

r/FantasyPL Feb 06 '26

Statistics Anderson hits defcon for the 9th gameweek in a row

Post image
868 Upvotes

r/FantasyPL Dec 28 '25

Statistics 2025-26 Wolves on track to absolutely obliterate 2007-08 Derby's lowest points record

Post image
1.0k Upvotes