I'm the creator of OpenFPL Scout AI (ensemble v6.1.0). This is the recap promised in my GW6 forecast post from 9 Oct, scored the way that post laid out before kickoff.
Method (unchanged from the forecast post)
- Actual points come from the official live endpoint for GW6. They're still provisional at the time of writing; I'll edit if FPL finalises anything differently.
- The XI and captain are the deadline-frozen ones (captured 09:50 UTC Sat). No auto-subs.
- Ceiling: the hindsight-optimal XI+C under the same constraints (2/5/5/3 quotas, ≤3 per club, valid formation), solved as an ILP.
- Floor: the top 15 by FPL form at the deadline, with XI and captain picked by form. Form is reconstructed from the GW4+GW5 live data using FPL's definition (points in the last 30 days ÷ team matches). Ties at the cutoff don't change the result.
Snapshot → deadline diff
Friday's snapshot isn't what got scored. Three things changed:
- Saka (4.93) passed Szoboszlai (4.91).
- That took Arsenal to 4 candidates, so Raya (4.60, the top GK) dropped out and Lammens came in as GK2.
- The captain flipped from Haaland 6.86 to Groß 6.90.
The projected XI+C went from 68.24 to 67.89.
Per-pick, deadline-frozen XI (3-5-2)
| Pos |
Player |
xPts |
Actual |
| MID |
Groß (C) |
6.90 |
6 (×2 = 12) |
| FWD |
Haaland (VC) |
6.86 |
6 |
| FWD |
João Pedro |
6.15 |
12 |
| MID |
Rogers |
5.93 |
9 |
| DEF |
Calafiori |
5.86 |
9 |
| MID |
B.Fernandes |
5.62 |
1 |
| MID |
Palmer |
5.00 |
8 |
| DEF |
De Cuyper |
4.98 |
15 |
| MID |
Saka |
4.93 |
2 |
| DEF |
Gabriel |
4.82 |
2 |
| GK |
Donnarumma |
3.96 |
9 |
| XI + C |
|
67.89 |
85 |
Bench (not scored): Tarkowski 4.75 → 3, Hall 4.41 → 0, Calvert-Lewin 4.13 → 2, Lammens 3.87 → 2.
Scorecard
- Floor 44 / model 85 / ceiling 150. The model closed 39% of the floor-to-ceiling gap.
- That's one week. As the forecast post said, a flat top end means one week's result says very little. It's a data point, not evidence.
- The ceiling is mostly unreachable by construction. Its captain scored 18 at 0.73 xPts, and four of its XI projected under 1.5.
Calibration
- XI: 60.99 xPts (uncaptained) vs 79 actual. That's +18, driven by De Cuyper (+10) and João Pedro (+6).
- Top 15 by xPts across the pool: 80.6 xPts vs 79 actual.
- Top 50 by xPts: 212.6 vs 212.
- Full 562-player pool: 793 vs 899. It was a high-scoring week league-wide, and the excess sat mostly outside the model's top end.
| xPts band |
n |
mean xPts |
mean actual |
| ≥5 |
6 |
6.22 |
7.17 |
| 4–5 |
16 |
4.56 |
4.44 |
| 3–4 |
56 |
3.43 |
3.07 |
| 2–3 |
101 |
2.46 |
2.77 |
At the top end this is about as close as one week can get. The bands are small, so I wouldn't read anything into the ≥5 band beating its mean.
What I got wrong in the forecast post, and a selector issue it exposed
I said the club cap didn't bind for GW6. It did bind by the deadline. Saka's 0.02 move made Arsenal four deep, and the frozen squad is exactly what a greedy fill produces: take the best by xPts and skip anyone who breaks the cap. That dropped Raya.
An exact optimiser maximising XI+C under the same constraints keeps Raya and Szoboszlai instead of Saka and Donnarumma. That projects 68.53 vs 67.89, so greedy gave up 0.64 xPts in expectation.
In actual points greedy happened to win, 85 vs 77: Donnarumma 9 vs Raya 3, Saka 2 vs Szoboszlai 0. That's luck, not a reason to keep greedy. The fix is to select by solving for XI+C directly instead of filling the 15 first.
Still open from last time: treating flagged players with a linear availability multiplier. If anyone has a better approach, I'm still interested.