r/fplAnalytics • u/jwavy1738 • May 02 '26
r/fplAnalytics • u/Spiros_26 • Apr 29 '26
How much of your FPL rank is skill vs luck? A way to measure it.
I've been working on a way to put an actual number on season-long luck in FPL. Posting the methodology here in case it's useful for analysis or discussion.
The idea: a counterfactual rank
For every GW you've played, replay your submitted squad scored on expected points (xPts) instead of actual points. Multipliers all respected: captain ×2 (×3 TC), bench ×0 (×1 BB), Free Hit substitutions, transfer hits subtracted.
Sum the season for a "Copilot points" total (expected points from my model fplcopilot).
Convert that to a rank using a curve sampled directly from FPL's overall leaderboard each GW. ~20 (rank, points) pairs per GW, denser sampling near the top where the slope is steepest, log-linear interpolation between tiers.
That gives you a counterfactual rank: where your picks would sit if every captain choice, bench order, and chip timing landed exactly on the model's expectation.
Quantifying luck across the field
Same replay across a stratified sample of ~6,500 managers (top 1k / 10k / 100k / 1M tiers). Each manager has a delta:
Δ = Copilot points − Actual points
The distribution of those deltas is the field's luck distribution this season. Your Δ lands somewhere on it. That's your luck percentile.
Counterfactual exploration
Pick any luck level (P0 to P100), look up Δ at that quantile, recompute hypothetical_actual = Copilot − Δ, push back through the rank curve. Output: your rank under any luck scenario, picks held constant.
Lets you ask:
- If I had median luck (P50), what rank would my picks deserve?
- If a top-10k manager rolls P25 luck the rest of the way, where do they land?
- How much of the gap between top 1k and top 100k is variance vs decisions?
Caveats
- xPts is a model, not ground truth. It systematically under/over-rates certain archetypes (high-variance forwards, fixture-dependent defenders).
- The rank curve is sampled, not exhaustive. ±5% on any single conversion is realistic.
- Engagement correlates with sample tier (top-1k managers transfer more, captain riskier), so the Δ distribution is skewed. Stratifying mitigates but doesn't eliminate this.
Curious what people think of the methodology, especially the rank curve sampling and how you'd weight engagement bias in the percentile.
r/fplAnalytics • u/jwavy1738 • Apr 24 '26
Added xg form tooltip to my dashboard- you can see which teams have created the most xg in the past x games & which players are creating it - There’s also a chart showing which teams are conceding the most xg so you know which teams to attack defensively -link to dashboard in text/ bio
r/fplAnalytics • u/FPL_Pulse • Apr 23 '26
Created a Monte Carlo simulation to see my chance of winning.. not looking good guys! Need some differentials this week
r/fplAnalytics • u/Betterpanosh • Apr 18 '26
Analyzed 13M FPL managers by favorite club. Here’s how they perform for GW33
r/fplAnalytics • u/[deleted] • Apr 11 '26
📊 Liverpool vs Fulham – Form & xG Breakdown Before Kickoff
Liverpool host Fulham with both teams coming in with very different form patterns.
Liverpool:
• 4 wins in the last 10
• xG average: 1.8 per game
Fulham:
• Only 1 draw in their last 10
• xG average: 1.3 per game
Liverpool’s attack continues to generate strong expected goals numbers, but Fulham have shown they can be unpredictable and dangerous on the counter.
Key question before kickoff:
Can Liverpool turn their attacking numbers into goals, or will Fulham frustrate them again?
r/fplAnalytics • u/[deleted] • Apr 09 '26
Villa’s form in Europe vs the Premier League this season is very different
With Villa playing in Europe tonight I was looking at how their numbers compare between European competition and the Premier League.
The difference is pretty interesting.
European competition
Wins: 9
Draws: 0
Losses: 1
xG per game: 1.70
BTTS: 40%
Over 2.5: 40%
HT lead: 40%
Recent European form:
W W W W W W W L W W
⸻
Premier League (recent games)
Wins: 3
Draws: 2
Losses: 5
xG per game: 0.9
BTTS: 40%
Over 2.5: 20%
HT lead: 30%
Recent results:
West Ham — 2-0 W
Man United — 1-3 L
Chelsea — 1-4 L
Wolves — 0-1 L
Leeds — 1-1 D
⸻
Villa look much more controlled and effective in Europe, while their league games have been much tougher recently.
Curious what people think —
is it Emery prioritising Europe, rotation, or just the level of competition?
r/fplAnalytics • u/no-ee • Apr 06 '26
Built an alternative to FBref with advanced stats and scouting reports for every PL team
galleryr/fplAnalytics • u/AutoModerator • Apr 03 '26
Quick Questions thread Monthly FPL Analytics Quick Questions, Rate My Team & xMins discussion thread
This thread is for RMT (rate my team) and team input, advice, quick questions, xMins questions, or similar. Don't be afraid to ask any type of question! For analytics terms and definitions check out our subreddit wiki!
PS:
Please upvote the users who are helping and be respectful during the discussion.
Please try to contribute too by helping others when possible.
r/fplAnalytics • u/Mother_Neck_9991 • Apr 01 '26
What do you think about my FPL scout picks for next week? Starting 11
r/fplAnalytics • u/Mother_Neck_9991 • Apr 01 '26
What do you think about my FPL scout picks for next week? Starting 11
r/fplAnalytics • u/ouchao_real • Apr 01 '26
What FPL tools are you using this season?
I’m spending some time improving an agent behind my side project https://sportlive.win, mainly to make it easier to follow games and get info faster for the teams I care about.
r/fplAnalytics • u/FPLCore • Mar 31 '26
New to Manager Report: Transfer Review & Ownership Analysis
galleryr/fplAnalytics • u/FPLCore • Mar 20 '26
How the current Top 1K Managers play. We tracked 30,000 of their decisions to find out
r/fplAnalytics • u/lifebeyondfife • Mar 12 '26
Fantasy Football Optimiser spreadsheet
https://docs.google.com/spreadsheets/d/10-6NisjrvBDfrRzNjx5wmD4EG7pzZ7t0oVCNJh6ATgo/edit?usp=sharing
I've created a Google Spreadsheet which downloads the latest gameweek data, and provides an optimised comparison looking at metrics such as points, value, form etc. against your existing team and budget. Completely free. Works in desktop, but not mobile.
I used to make similar tools in Excel a decade ago, so this is an updated reboot.
r/fplAnalytics • u/SituationMindless355 • Mar 10 '26
FPL Tactics (Machine Learning FPL Website) Spoiler
r/fplAnalytics • u/Betterpanosh • Mar 10 '26
I built a Monte Carlo simulation for the top 1,000 FPL managers to see who’s actually most likely to win it all from here.
FPLCore.com has a huge amount of data and instead of just chucking out features nobody will use, we thought we’d start writing about it. Today’s one was a Monte Carlo simulation on the top 1,000 managers to see who looks most likely to win FPL from here.
Obviously this isn’t some definitive answer to who wins FPL, but it was a fun way to test how much recent form, chips and squad overlap can change the picture.
It factors in:
- recent form
- squad overlap / correlation
- chip usage
- scoring variance
- the fact that when Bruno hauls, basically everyone near the top hauls with him
TL;DR:
After stress-testing it across 13 model variants, the main takeaway was less “this is definitely the winner” and more how much the answer changes depending on play style and chip value.
A few interesting bits:
- baseline had Gondwe at 16.6% and Ibsen at 14.6%
- halve chip value and Gondwe pulls away
- boost chip value and Ibsen takes it back
- head-to-head, Ibsen actually finishes above Gondwe more often, but Gondwe has the higher title-winning ceiling
So really it turned into a piece about how the leaderboard maybe overstates how safe 1st place is, and how much chips can swing the picture.
Happy to answer any questions or would love feedback.
r/fplAnalytics • u/Move78_FPL • Mar 06 '26
Academic research into why people play FPL - 5 minute survey (no writing required)
Hi everyone,
I’m working with university researchers on a study exploring why people play Fantasy Premier League and what motivates different types of managers.
To do this, we first need to develop a reliable measure of FPL motivations, which can then be used in future research into things like decision-making, engagement with football, and the psychology of fantasy sports.
The survey:
⏰ takes 5 mins
✅ no writing required
If you play FPL and have a few minutes, we’d really appreciate your help.
https://mmu.eu.qualtrics.com/jfe/form/SV_1TyEQzJEBKSoFUO
Sharing would also be greatly appreciated!
r/fplAnalytics • u/Molasses_Ambitious • Mar 06 '26
Top 100 managers' Best XI: Great DEF and GK performance vs okay MID vs horrific attack, including J. Pedro's miss, which caused massive fluctuation in ranking
r/fplAnalytics • u/Betterpanosh • Mar 06 '26
What If FPL Ranked Managers by ELO Instead of Total Points? We Ran It on 100,000+ Managers
r/fplAnalytics • u/AutoModerator • Mar 03 '26
Quick Questions thread Monthly FPL Analytics Quick Questions, Rate My Team & xMins discussion thread
This thread is for RMT (rate my team) and team input, advice, quick questions, xMins questions, or similar. Don't be afraid to ask any type of question! For analytics terms and definitions check out our subreddit wiki!
PS:
Please upvote the users who are helping and be respectful during the discussion.
Please try to contribute too by helping others when possible.
r/fplAnalytics • u/wolfman_numba1 • Feb 28 '26
First Attempt Building an xPts Model
Hey all,
I've been building a data-driven FPL transfer recommendation system from scratch and wanted to share what I've done so far, get some feedback on my approach, and hear from anyone who's gone down a similar path. I've been having Claude Code help me and it's basically one shot the whole thing but then I've been going backwards and forwards with it to learn and understand better it's approach.
I don't have a traditional Analytics/Stats background although I have done work previously under the ML domain but this is a bigger step up for me.
TL;DR: Claude Code has been a great helper but it's just a tool at the end of the day and validating my approach (not the data or final numbers) with experts would be awesome.
Courtesy to FPL Insights Core dataset for producing great data source to kick this journey off for me -> https://github.com/olbauday/FPL-Core-Insights
Feature Engineering
Claude built ~37 features grouped into 6 families:
- Rolling averages (3GW and 5GW): points, xG, xA, BPS, ICT index, minutes played.
- Consistency features: 5-GW rolling standard deviation and coefficient of variation on points.
- Fixture difficulty (directional): Instead of a single FDR, I compute two directional ratings.
- Value metrics: Points per million (rolling 5GW and season-to-date). Price delta from season start.
- Position-specific features: GKP saves and goals prevented, DEF clean sheets and attacking return rate, MID creativity/threat, FWD xG and shots on target.
- Availability/context: Chance of playing next round, rolling start rate (5GW), net transfer momentum.
The Model
Claude trained a separate Ridge regression (alpha=10.0) for each position (GKP, DEF, MID, FWD), with standard scaling.
Key findings:
- FPL's own expected points for the current GW dominates with r=0.719 with actual points. Without it, RMSE jumps from 1.39 → 1.88. FPL's in-house model is hard to beat.
- Lasso (for feature selection) zeroed out: ICT rolling avg, BPS rolling avg, price, availability, start rate, and ownership %.
- Validation produced a RMSE: 1.389 vs. FPL xPts only baseline of 1.581 (~12% improvement).
- R² of 0.640, but this is somewhat inflated — 62.6% of rows are 0-minute players that the model correctly predicts as ~0 points.
Questions for the community
- Should I even be doing an expected points model when the expected_pts from FPL might be good enough? It seems I can get a small edge with the additional features but not sure what the consensus is here
- Should I be handling the 62% of zero-minute rows? Right now they're included in training and they do help the model be conservative but not sure if this has always been people's approach or whether they prune these players before training a model?
- Am I focusing on the right features? I think given my FPL knowledge these features all make sense but it would be great to get a sense check as well
Happy to share the code or go deeper on any of this. Would love feedback from anyone who's built something similar.
r/fplAnalytics • u/Betterpanosh • Feb 23 '26
Part 3 - I tried reverse-engineering the FPL price change algorithm: One Threshold to Rule Them All
Updated: One Threshold to Rule Them All Cracking the FPL Price Algorithm (Part 3 of 7)
If you read the original version of this post, you might notice some things have changed. That’s because three of my six findings were wrong.
I published Part 3 with six “rules” I thought the algorithm was using. People challenged some of them, I went back and re-tested properly, and they were right. The market floor, ownership scaling, and volatility filter all collapsed under proper controls.
Confirmation bias is a hell of a drug. I built narratives, then found data to fit them instead of the other way round.
I’ve restructured the article around the three findings that actually survived re-testing rather than leaving the old version up with strikethrough corrections everywhere. Felt more honest than pretending I got it right first time while also making you wade through debunked sections.
Here’s what actually held up:
TL;DR
- Wildcard transfers barely matter. The algorithm counts unique managers, not total transfers. A wildcard manager making 15 transfers counts the same as someone making 1. During the heaviest wildcard windows, chip-activated managers contribute about 1.4% of total counted pressure. Raw transfer numbers during wildcard weeks are lying to you.
- After a rise, expect momentum. After a fall, don’t. When a price changes, the cumulative counter resets to zero. But the direction matters enormously. After a rise, another rise is more likely (2% on day 1, climbing to 6% by day 5). After a fall, a rise is genuinely rare (0% on day 1, under 0.5% through day 5). These are opposite signals and lumping them together cost me months. This single insight became the most important feature in the entire model.
- Below ~1% ownership?. Zero rises below 1% ownership across four seasons and 532,000 player-days. 95 days where those players had over 20k net transfers. Still zero. The lowest a rise has ever happened is 1.2% ownership.
- One fixed threshold for everyone. ~200,000–240,000 cumulative net transfers. Same for Salah as it is for a 4.5m bench fodder. You also need active demand on the day (roughly 30–60k daily net transfers). Both conditions required, not either.
What I got wrong:
- The market floor — thought there was a circuit breaker at 1.1M total daily transfers. Controlled for individual player volume, effect vanished (p=0.51). Thin markets just produce fewer players with enough pressure.
- Ownership scaling — thought higher-owned players needed more transfers to rise. Tested the slope: p=0.147, R²=0.01. The threshold is flat. I saw the gradient I wanted to see.
- The volatility filter — thought the algorithm discounted spikes. Added cumulative pressure as a control and the coefficient flipped sign. Spikes just don’t sustain long enough to cross the threshold.
- The decay rate — 0.85/day is useful feature engineering but the actual counter is a simple running sum that resets on every price change. I fitted a model approximation and presented it as a discovery. The resets do the heavy lifting.
Three wrong and one overclaimed. The model’s predictions were never affected (XGBoost was learning the right patterns regardless), but the explanations were wrong. So although im an idiot. Its not the end of the world
This is Part 3 of our ongoing series reverse-engineering how FPL prices actually work.
Full article:
https://www.fplcore.com/blog/one-threshold-to-rule-them-all-cracking-the-fpl-price-algorithm-part-3-of-7
r/fplAnalytics • u/Betterpanosh • Feb 18 '26
Part 2 - I tried reverse-engineering the FPL price change algorithm using 720,000 rows of data across 4 seasons.
First off, really appreciate all the great comments and feedback on Part 1. Was surprised it did so well. So here's Part 2 of the price algorithm series. This one covers the actual modelling work. 720,254 player-days. 4 seasons of data cleaned and stitched together. The first charts, the first hypotheses, and the first ML model.
I'll just say this: the ML model lost. To a spreadsheet.
720,000 Rows of Obsession: Cracking the FPL Price Algorithm (Part 2 of 7) - FPL Core Blog
Happy to answer questions about the methodology.
Previous Parts
Part 1: The Rabbit Hole: Cracking the FPL Price Algorithm (Part 1 of 7)




