Sideline Quant
Loading…

Open data

The projections, in full, for anyone

Every player’s expected points for the next gameweek, free for anyone to use with a credit. I publish the model’s accuracy on the settled gameweeks with them, which is how you’d check whether they’re any good.

Currently published

Gameweek 9 (669 players, generated 2026-10-27T03:34:58Z)

What makes this different

  • Every player. All of them, with the FPL id on every row so you can join it straight onto the official game’s data or your own.
  • Floor, ceiling and haul chance. Each comes from that player’s own simulations, which is why a nailed defender and a rotation-risk striker on the same xP can get very different ranges.
  • Start probability. Every row has one. Plenty of low-owned players are low-owned because they aren’t starting.
  • How it’s gone so far. The payload carries the model’s error on the settled gameweeks and links to the full record.
  • One address per gameweek. Each gameweek has its own URL and latest redirects to the current one. I only keep the current gameweek. Once the feed moves on, the old address returns a 404, so you can’t end up pulling this week’s numbers thinking they’re last week’s.

Columns

Every field the feed publishes, and what it means. Rows are at fixture grain: a player with two fixtures in the gameweek has two rows.

FieldMeaning
player_idFPL element id. Stable across the season; join key to the official game.
fixture_idFPL fixture id. Rows are at fixture grain, so a double gameweek is two rows.
gameweekFPL gameweek number.
nameFull player name.
web_nameShort display name, as FPL renders it.
clubPlayer's club.
teamPlayer's club (same value as `club`).
positionGK, DEF, MID or FWD.
price_tenthsCurrent FPL price in tenths of a million (96 = £9.6m).
kickoff_timeFixture kickoff, ISO 8601 UTC.
opponentOpposition club in this fixture.
was_homeTrue when the player's club is at home.
xPExpected FPL points for this fixture. An expectation over simulated minutes states, not a per-90 rate scaled by expected minutes.
sigmaStandard deviation of this fixture's simulated points.
gw_sigmaStandard deviation of the player's gameweek points total, summed across their fixtures in the gameweek.
gw_p1010th percentile of the simulated gameweek points total (a realistic floor).
gw_p9090th percentile of the simulated gameweek points total (a realistic ceiling).
horizon_sigmaStandard deviation of the player's points total summed over every gameweek the model currently covers (not just this one).
horizon_p1010th percentile of the simulated points total over the whole horizon.
horizon_p9090th percentile of the simulated points total over the whole horizon.
xp_cond_start60Expected points if the player starts and plays 60+ minutes.
xp_cond_start_lt60Expected points if the player starts but goes off before 60 minutes.
xp_cond_cameoExpected points if the player comes off the bench.
e_minsExpected minutes.
p_startProbability the player starts.
p_start60Probability the player starts and plays at least 60 minutes.
p_start_subProbability the player starts but is substituted before 60 minutes.
p_cameoProbability the player appears as a substitute.
p_unusedProbability the player does not appear at all.
startsub_meanModel's fitted average minutes for a start that ends before 60 minutes (this export's own estimate).
cameo_meanModel's fitted average minutes for an appearance off the bench.
statusFPL's own availability flag (a available, d doubtful, i injured, s suspended, …).
chance_of_playing_next_roundFPL's own percentage chance of playing the next round, when FPL has set one.
newsFPL's own news text for the player, when there is any.
p_goalProbability of scoring at least one goal.
p_goals_2plusProbability of scoring two or more goals.
p_assistProbability of at least one assist.
p_csProbability of a clean sheet for this player (conditional on playing 60+ minutes).
p_returnProbability of a goal or an assist.
p_defconProbability of hitting the defensive-contribution points threshold.
p_ge_6Probability the gameweek points total is 6 or more.
p_ge_10Probability the gameweek points total is 10 or more (a haul).
bonus_meanExpected bonus points.
xbps_meanExpected BPS (the score bonus points are awarded from).
xg_meanExpected goals for the player in this fixture (mean over the simulation).
xa_meanExpected assists for the player in this fixture (mean over the simulation).
total_pointsFPL points actually scored so far this season.
xp_appearanceExpected points from minutes played (the appearance points).
xp_goalsExpected points from goals scored.
xp_assistsExpected points from assists.
xp_clean_sheetExpected points from clean sheets.
xp_concededExpected points lost to goals conceded (zero or negative).
xp_savesExpected points from saves.
xp_penalty_saveExpected points from penalty saves.
xp_penalty_missExpected points lost to missed penalties (zero or negative).
xp_defconExpected points from defensive contributions.
xp_cardsExpected points lost to yellow and red cards (zero or negative).
xp_own_goalExpected points lost to own goals (zero or negative).
p_cardProbability of at least one yellow or red card.
formMean points over the player's last four gameweeks. Not FPL's own 30-day form.
l4_gwsHow many gameweeks form and the other last-four fields cover (four or fewer).
starts_l4Starts over those gameweeks (a double gameweek can count two).
mins_l4Minutes played over those gameweeks.
xp_l4_gwsHow many of those gameweeks have the model's last pre-deadline prediction.
xp_l4The model's pre-deadline expected points summed over those covered gameweeks.
pts_vs_xp_l4FPL points actually scored minus xp_l4, over the same covered gameweeks.
owned_pctPercentage of all FPL managers owning the player.
elite_10k_owned_pctPercentage of a stratified sample of overall top-10k managers owning the player.
elite_10k_eo_pctEffective ownership in that top-10k sample: owned plus captained, as a percentage. A triple captain counts as a captain: the chip was played in the sampled gameweek, not this row's.
elite_10k_captain_pctPercentage of that top-10k sample captaining the player.
elite_1k_owned_pctPercentage of the sampled overall top-1k managers owning the player.
elite_1k_captain_pctPercentage of the sampled overall top-1k managers captaining the player.
elite_delta_pctelite_10k_owned_pct minus owned_pct, in percentage points.
price_change_percentFPL's own progress towards the player's next price change, as a signed percent.
price_change_as_ofWhen that price state was captured, ISO 8601 UTC.
price_change_directionWhich way the counter is heading: rise or fall.
price_change_expectedTrue when the counter is past the change threshold tonight.
price_change_lockedTrue when FPL has price-locked the player (new to the game).
price_change_season_tenthsPrice change since the season started, in tenths of a million.
price_change_per_hour_pctCaptured net-transfer rate, in the same percent units as price_change_percent, per hour.
price_change_projected_pctWhere the counter is projected to stand at tonight's change point, assuming the current rate holds (FPL's own assumption).
price_change_projected_tenthsThe model's expected price change over the next three change points, in tenths of a million. An expectation, so fractional.
lambda_homeModel expected goals for the home side in this fixture.
lambda_awayModel expected goals for the away side in this fixture.
p_cs_homeModel clean-sheet probability for the home side.
p_cs_awayModel clean-sheet probability for the away side.
d_lambda_homeChange in lambda_home over the odds-drift window.
d_lambda_awayChange in lambda_away over the odds-drift window.
d_p_cs_homeChange in p_cs_home over the odds-drift window.
d_p_cs_awayChange in p_cs_away over the odds-drift window.
drift_from_tsStart of the odds-drift window, ISO 8601 UTC.
drift_to_tsEnd of the odds-drift window, ISO 8601 UTC.
pen_takerTrue when the player is first-choice penalty taker.
corner_takerTrue when the player is first-choice corner / indirect free-kick taker.
fk_takerTrue when the player is first-choice direct free-kick taker.
rates_sourceWhere this fixture's team rates came from: market odds, or the team model.
has_unseen_teamTrue when a club in this fixture has no played matches to fit on yet.
shrinkage_weightHow much the player's scoring rates lean on the prior rather than his own minutes: near 1 is mostly prior (little data), near 0 his own record.

Licence and use

Licensed CC BY 4.0. Free to use, quote and redistribute, including commercially, with attribution to Sideline Quant and a link to https://sidelinequant.com. Please cache rather than poll: the payload carries an ETag, which only changes when a model refresh lands.

Everything the model predicts is free on the site, for every player and gameweek it covers, along with the whole-season view. This feed is the next gameweek of that, with all the columns, in a form a script can read. The optimiser’s free with an account, and supporters help pay for the site (see support).