A plain guide to what this thing is, what it can and cannot do, and how the scores were worked out.
← Back to the appIt is a single web page that helps you pick your Fantasy Premier League team each week. It holds the three squads from your draft (Kevin, Leo and James), a database of around 319 players with a score on each one, how hard every club's early fixtures are, and a recommended starting eleven for any gameweek you choose.
It is a helper, not a robot. It suggests. You decide, and you still set your real team in the official FPL app.
The home screen answers the week in four cards: best captain, best differential, best value (or the biggest price riser once prices start moving), and the biggest rotation risk in your squad. Under that: the top players by Meta, a fixture-difficulty grid for the next six gameweeks, the Meta rating broken into its seven parts, and the latest injury news straight from the official feed.
One thing that surprises people: the top-players list is ranked by Meta, which rewards value, fixtures and minutes as well as talent. So a cheap player with an easy run can sit above a superstar. The predicted-points column is the raw output figure if that is what you want to compare.
The three drafted teams side by side, with a total for each. The total is just every player's value added up, so a bigger number means a stronger squad on paper. From draft night: Kevin 1001, James 830, Leo 807.
Each player row shows: rank, grade, name, club, position, then two numbers. The first is that player's value out of 100. The second is his points per 90 minutes.
Every player in the database, best first. Search by name or club, filter by position, or tap Free only to see who nobody drafted. Those are the players you could pick up.
One quirk: with the filter on All it stops at 260 names to keep it quick. Tap a position filter to see every player in that position.
All 20 clubs ranked by how kind their first five games are, easiest at the top, plus a short note on each gameweek. Use it to spot a player who is about to get an easy run.
The useful one. Pick whose team you want (yours, Kevin's or James's) and pick a gameweek. It gives you:
Every player has a Fit / Doubt / Out button. Tap it to change it. Out drops him from the eleven, Doubt weakens him.
The receipts. In the final 2 hours before every deadline the system freezes what the model knew. After the matches it shows predicted against actual points, the average miss, and how many of the predicted top 10 really finished top 10. Records cannot be edited after the deadline, so the model cannot mark its own homework.
The one-screen answer to "what should I actually do this week?". Pick whose squad you are managing and it gives you six decisions: captain (with a ceiling figure, meaning what he scores if he hits his usual rate for a full match), warnings about your own players, the best transfer targets against your weakest player, differentials owned by under 10% of managers, the best player in each position, and the clubs with the kindest next five fixtures. Tap most rows to open a comparison.
Put two to four players side by side. You get an overall Meta bar for each, a category-by-category table with the winner of each row highlighted, and a verdict: best overall, best value, best fixtures, best differential and safest pick. Then a Why? sentence explains the call in plain English, including what would make you choose the other player instead. Add one player and tap Find alternatives and it lines him up against the best players you could swap him for at the same price or cheaper.
Link your real FPL team. Type in your team id (the number in your team's web address on the official site) and the app pulls your actual squad, then runs everything else on it: a captain check that tells you if the model would pick someone else and by how much, your eleven versus the model's with the points each change is worth, warnings about your own players, and transfer targets measured against your weakest.
Your id is saved on your own device so you only type it once. Nothing is sent anywhere, and there is no account or password. The official game does not publish anyone's squad until the first deadline passes, so before then it confirms your team and waits.
If your team has a player our rated list does not cover, he still appears, marked "not in our rated list", scored from his official record.
Answers the question that actually costs people points: should I make a transfer, and is it worth a hit? It checks every legal swap for your squad over the next few gameweeks and ranks them, then does the arithmetic on the 4-point penalty for extra transfers.
So if a move gains 5.6 points and you have a free transfer, it says make it. If you have no free transfer, that same move nets only 1.6 after the hit, and it tells you to hold instead. It also checks whether two transfers beat one once both hits are counted, and it will tell you to do the single move if that nets more.
You set your free transfers yourself, because the official game does not publish that number to anyone. Two honest limits are printed on the page: selling price is taken as today's price (the real game gives back what you paid plus half the profit), and the further ahead you look, the softer the predictions get.
Player prices move overnight based on how many managers are buying and selling them, and it matters: a player you own who drops takes value off your squad, and one who is about to rise is cheaper today than tomorrow.
Four parts: what has moved this gameweek, a recorded change log, who is under pressure to move next, and your own squad's gain or loss since the season started.
The change log is worth explaining. The official game only ever tells you a player's price right now and never keeps its history, so nobody can look back and see when a drop happened. We started recording our own daily snapshot on 12 August 2026, so from that date this log is the only place that history exists.
"Under pressure" is an estimate, and labelled as one in the app. The official game has never published how it decides price changes, so this ranks players by net transfers weighted by how many managers own them. It shows pressure, not a promise.
There is no account and no password here, on purpose. Everything the app remembers (your linked team, your built squad, your fit/doubt/out taps) lives on the device you used.
To use it on your phone as well as a laptop, open Devices, copy the transfer code, and paste it on the other device. Nothing is sent anywhere and nothing is kept on a server. There is also a button to wipe everything this app has stored on the device you are using.
Why no login: an account would mean holding your email and password somewhere, which creates data-protection duties and something worth stealing. The app works perfectly well without knowing who you are, so it does not ask.
The official-game squad builder. £100m budget, 2 goalkeepers, 5 defenders, 5 midfielders, 3 forwards, no more than 3 from one club, laid out like a pitch. Every player carries a Meta rating out of 100 built from six weighted parts: form 20%, predicted points 25%, next five fixtures 20%, minutes 15%, value for money 10%, long-term quality 10%. Tap "Why?" and the weighting is shown, never hidden. The Optimise squad button builds the strongest legal squad it can find by starting cheap and repeatedly making the single best swap until no swap improves it, and for any full squad it suggests the three best improvements with the Meta gain of each.
Everything in the GW Plan tab comes from a single sum:
The blended base mixes up to three signals: the draft projection (40%), the player's live form (30%) and the official FPL expected score (30%). If a signal is missing, for example form before any matches are played, its weight is shared out over the others. Tap any player's name in the GW Plan tab and the app shows the exact working, line by line, so you never have to trust a mystery number.
A fixed number out of 100 given to every player on draft night. Haaland is 100, the best midfielders are in the 80s and 90s, squad filler is in the 20s and 30s, and Ekitike is 5 because he is injured until spring.
That number was built from three things:
| Part | Weight | What it measures |
|---|---|---|
| Projected points | 70% | Points per 90 minutes multiplied by the minutes he is expected to play. Minutes matter as much as talent. A brilliant sub who plays 20 minutes is worth less than a decent player who plays every week. |
| Minutes certainty | 20% | How sure we are he actually starts. New signings, new managers, players back from injury and crowded squads all lose marks here. |
| Ceiling and edge | 10% | How high he could go if things click, especially if last season's numbers make him look worse than he is. |
Quality never changes week to week. That is deliberate. It means the squad totals cannot move around under you, and one bad Saturday does not rewrite everything.
How easy that club's game is that week. An easy game multiplies a player up, a horrible one drags him down. For gameweeks 1 to 5 these are already in the file, from about 0.55 for a wipeout up to 1.35 for a great matchup. Man Utd in gameweek 4 is 0.6, because it is the Manchester derby.
Live official difficulty ratings now cover every gameweek of the season. The hand-written ratings for gameweeks 1 to 5 remain as a backup if the feed is ever unreachable.
Fit counts as 1. Doubt uses the official chance-of-playing when the feed has one (75% chance = 0.75), or 0.6 otherwise. Out counts as 0 and drops him from the eleven. The feed sets these automatically; your taps override it, and cycling back to the feed's value hands control back.
A hot or cold streak, from minus 2 to plus 2, worth up to 20 per cent either way. It only appears when new data is pasted in. It is a tiebreaker between two similar players, not a reason to bin someone good.
Tap any player's name anywhere in the app and you get his full page: Meta rating with the weighting behind it, predicted points, confidence with the reasons and the risks, his next six gameweeks with fixture stars, and a section showing what he is likely to do this week.
Those probabilities come from the official expected-goals numbers. If a striker averages 0.78 expected goals per 90 minutes, and he is likely to play about 82 minutes against a middling defence, the maths gives roughly a 51% chance he scores. The same method gives assist chances, and for defenders and goalkeepers a clean-sheet chance from how many goals his club normally concedes.
Where it stays quiet: a player needs at least 180 minutes on record before any of this appears. Below that the page says so plainly rather than inventing a number, which is why a lot of new signings show nothing yet.
Every prediction now carries a confidence percentage. It is not how good the player is. It is how much the model trusts its own number, and it is built from three things:
The bands: 85% and up very high, 70 to 84 high, 50 to 69 medium, 30 to 49 low, under 30 very low. Tap a player in the GW Plan tab and it tells you the reasons behind his number and what to watch.
Seven factors, shown as a donut on the dashboard and broken down on every player page:
| Factor | Weight | What it measures |
|---|---|---|
| Form | 25% | How he has actually been scoring lately. Empty until matches are played. |
| Fixtures | 20% | How kind his next five games are. |
| Underlying threat | 20% | Expected goals and assists per 90 for attackers; goals conceded for defenders and keepers. |
| Minutes security | 15% | How likely he is to actually be on the pitch. |
| Value | 10% | Output per million of price. |
| Differential | 5% | Low ownership scores higher, because beating other managers needs players they do not have. |
| Long-term quality | 5% | The fixed draft-night rating. |
Predicted points is deliberately not one of the seven. Form, fixtures, threat and minutes are the ingredients of the prediction already, so counting it again would double up.
A Cannot be replaced. If you lose him there is nothing else like him in the pool.
B A good, solid starter. If you miss out, someone similar still exists.
C Filler. There to complete the squad, and fine to drop for someone in form.
The 45 drafted players got their grade by hand on draft night. Everyone else gets one automatically from their projected season points, using a different bar per position, because a good defender and a good midfielder do not score the same amounts. For example a midfielder needs 180 to hit A, a forward needs 140, a defender 160, a keeper 155.
Grades are always about the gap to the next best player in that position, not raw points. That is why there are only two A grade defenders but five A grade midfielders. Defenders bunch together, so missing one costs you very little.
It is a simple, honest sort. Best goalkeeper by score goes in. Then it works down everyone else by score, while making sure you end up with a legal formation: at least three defenders, at least three midfielders and at least one forward. Anyone who does not fit goes on the bench, best first.
The waiver list then compares every undrafted player against your weakest player in the same position. If a free player beats him, it appears, with the swap spelled out. If nothing beats your squad, it tells you to hold instead of inventing a move.
It is one file called index.html, and that file is the whole app: no database, no account. The player list is written into the file, and on load the page calls a small relay we run in the cloud, which fetches the official FPL feed, adds the permission headers browsers need, and caches it for 15 minutes. That is how prices and injuries stay current on a page with no server of its own.
Nothing you do gets sent anywhere. The only thing it stores is your Fit / Doubt / Out taps, and those sit in your own browser.
It was built in a conversation with Claude across a few days, starting as a draft list, then a draft board, then this. The code lives publicly on GitHub so it can be updated later.
Two rules built into the thing that are worth knowing. Never drop an A grade because of one cold week. And a hot streak is a tiebreaker, not a plan.
← Back to the appData sources: live official FPL feed for prices, injuries, chance-of-playing and fixture difficulty (refreshed every 15 minutes); quality scores from the draft-night model dated August 2026. Season opens 23 August 2026.