How it works
Pal never invents a number.
Every projection, rating, and squad on this site is computed by a statistical engine and carries a timestamp saying which data it was computed from. Pal's only job is to understand your question, run the engine's tools, and explain the results. If the engine can't compute an answer, Pal says so — it is not allowed to guess.
Why not just ask ChatGPT?
Because a language model on its own is a plausibility machine, not a calculator. The honest comparison, line by line:
A chatbot alone
Its knowledge froze months ago. It may not know who got transferred, promoted, or injured this week.
FPL Pal
Data is pulled from the official FPL API every hour, and every answer names the snapshot it was computed from.
A chatbot alone
It generates plausible-sounding numbers. Ask for a projection and it will produce one — from nothing.
FPL Pal
Projections are computed by statistical models, decomposed into goals, assists, clean sheets, and bonus, so you can see why.
A chatbot alone
A £100m squad is a hard math problem. A chatbot eyeballs it and often breaks the budget or club limits.
FPL Pal
Squads are solved by an optimizer that guarantees budget, formation, and club-limit rules — optimally, in under a second.
A chatbot alone
You can't check where its numbers came from.
FPL Pal
Every number in a reply is tappable, straight back to the engine output it came from.
We still use a language model — Claude — but only as the interpreter between you and the engine. It reads your question, calls the right tools, and narrates what they return. The thinking about football is done in statistics; the AI does the talking.
How expected points are built
No single opaque prediction. Points are assembled bottom-up through four layers, each testable on its own:
- 1Team strengthA Dixon-Coles match model — the standard for football scorelines — fitted over ten seasons of results with recent games weighted heaviest, blended with team xG. It turns every fixture into expected goals for both sides, clean-sheet probabilities, and a continuous difficulty rating that replaces FPL's crude 1–5.
- 2MinutesThe biggest source of error in any FPL projection is whether a player is on the pitch at all. A machine-learned model predicts start probability, expected minutes, and the chance of playing 60+, from each player's usage patterns, rest days, and price signals — with live injury flags overlaid.
- 3Player event ratesPer-90 rates for goals (from xG), assists, defensive contributions, saves, cards, and bonus tendency — each shrunk toward what players of that position and price typically produce, so a two-week hot streak doesn't hijack a projection and brand-new signings get sensible starting points.
- 4Points assemblyMultiply it all out against the official scoring rules: every event's probability times its point value for that position, summed per fixture — double gameweeks included — plus a ceiling estimate for captaincy calls.
+ E[goals] × value(position) + E[assists] × 3
+ P(60+ min) × P(clean sheet) × value(position)
+ P(defensive contribution) × 2 + E[bonus] − cards − conceded
On top of that sit position-specific 0–100 ratings — separate systems for keepers, defenders, midfielders and forwards, with weights fitted against what actually scored points, not hand-tuned — and a squad optimizer that solves budget, formation, captaincy, and bench order as one problem.
See it computing, right now
This isn't a mock-up — it's the engine's current highest-projected player, decomposed by scoring source, fetched live as you opened this page:
Computing…
How the AI is kept honest
- A hard contract: every statistic, ranking, or recommendation Pal states must come from an engine result in that conversation. Football knowledge is allowed for context and phrasing — never for numbers.
- Receipts on screen: tool results render as cards next to the prose, numbers in the reply link to their source, and each card carries the data snapshot it was computed from.
- Adversarially tested: an automated suite tries to bait Pal into guessing — invented players, departed players, "just give me a rough estimate" — and fails the build if it ever does.
- Refusal is a feature: ask about a player who left the league and you'll be told he's gone, not given a confident projection of a ghost.
Tested against history, not vibes
Before the season, the whole stack is replayed against past seasons as if live — models trained only on data available at the time, then scored on what actually happened. In the 2025/26 replay, the engine's pre-season draft scored 432 points over the opening six gameweeks; a "pick last season's top scorers" draft managed 217, and the perfect-hindsight squad 528 — the engine captured 82% of a ceiling nobody can reach without a crystal ball. Its projections also beat form and points-per-game baselines on accuracy and player ranking across the season.
Honesty requires saying what backtests can't promise: they measure the process, not next week. Football stays random — the engine's job is to put the probabilities on your side and show its working.