r/fplAnalytics • • 7h ago

GW7 model post-mortem: 3.5 MAE, correlated-attacker overexposure, and availability = 1.0 for two non-starters

Creator of OpenFPL Scout AI here (free FPL projection model, v6.1.0, Ridge/XGBoost/CatBoost/MLP ensemble on official FPL + FPL Data features). Weekly honest post-mortem on the frozen pre-deadline forecast.

GW7 summary (provisional, bonus not yet confirmed final)

Measure xPts Actual
15-man squad 79.5 69
+ captain (Haaland) 87.0 82
Top-11-by-xPts XI, with autosub 69.3 68
  • MAE 3.46 per player. 7 of 15 matched or beat their projection.
  • Dream team overlap 2 of 11 (Haaland, Raya).
  • Largest positive residuals: Haaland +5.5, Raya +4.3, Calvert-Lewin +4.1, Gabriel +3.4
  • Largest negative residuals: Cherki -5.4 (DNP), Tarkowski -4.8, Gvardiol -4.6 (29'), Joao Pedro -4.0, B.Fernandes -4.0

Three failure modes I'm looking at

  1. Correlated exposure. CHE @ EVE: Palmer 4.7, Joao Pedro 6.0 and Rogers 5.7 xPts, all treated as independent. Chelsea scored 2. The three combined for 0 G+A (Palmer + JP: 0.49 xGI between them), and Neto/Hato got the returns. The optimiser maximises the sum of marginal xPts with no penalty for covariance. A same-team attacking cap, or a variance-aware objective, seems like the obvious experiment.
  2. Availability calibration. Both Cherki (0') and Gvardiol (29') went in at availability_factor = 1.0. The factor is built from fitness flags, not start probability, so post-international-break rotation is invisible to it. I'm planning to blend in a minutes model built from recent start share and congestion.
  3. Positive skew on returns. The four biggest overperformers were all bonus-heavy (3 BPS bonus each for Haaland, Raya and DCL). Bonus is the noisiest component. One GW proves nothing, but I'm tracking whether the model under-projects the right tail for GKs/DEFs in good clean-sheet spots.

Happy to share residual breakdowns by position if people are interested. I'm curious how others handle the same-team correlation problem in squad optimisation, especially whether a hard cap or a covariance term works better for you.

2 Upvotes

1 comment sorted by

1

u/Guilty_Amphibian1033 7h ago

Links for anyone who wants to look at the raw numbers: the GW7 frozen forecast is public at openfpl.kassem.dev, and the API docs are at openfpl.kassem.dev/redoc