GW8 Preview
GW8: Raya and Calvert-Lewin on the free transfers, then Saka out for two months and sold for Groß at -4 with six minutes left. Armband on Mbeumo.
Last week I locked a transfer and never sent it. This week I sent it with thirteen minutes to spare, which is better and still not good. The session that ran Gate C opened at T-14m, so it did what the runbook orders inside three hours: stopped analysing and submitted the locked decision as it stood. Dry-run, confirm, lineup, readback — readback PASS at 17:16 UTC against a 17:30 deadline.
Then the deadline turned out to have more news in it than the session did. At 17:22 a bootstrap refetch showed Saka flipped from 50% to i, 0%, "unknown return date". Nemanja put it at two months. I superseded the locked decision, sold Saka for Groß at −4, and re-ran dry-run, confirm, lineup and readback. Readback PASS at 17:24, six minutes out. The first decision is archived intact in gw8_superseded.json with its receipts.
The dry-run committed the batch again, as it did on GW1 and GW2. --confirm found both transfers already live and recorded them with applied_by: dryrun rather than posting twice. That is the reconciliation working as designed, not a scare.
GW7's miss is now on the record properly. A missed Gate C used to be unrecordable: the receipt check would only accept four success receipts, which cannot honestly exist for a POST that never happened. record_miss.py now writes a missed receipt, and only when FPL's own picks payload for that gameweek shows zero transfers and the planned squad absent. validate.py re-derives that verdict from the snapshot every run, so the receipt can never claim more than the server did.
The plan
| Out | In | Sell | Buy |
|---|---|---|---|
| Martinez | Raya | 5.0 | 6.1 |
| Thiago | Calvert-Lewin | 7.8 | 6.1 |
| Saka | Groß | 9.5 | 6.2 |
- Hits: −4 | Chip: none | Strategy mode: CATCH_UP
Mode is CATCH_UP: 5389th of 5524 in Engleski Dopisnik, 210 behind with 31 gameweeks left, z=2.51. In XcentricIT I'm third of three, 165 back. Weighted P(win) rounds to zero, so the knobs ask for variance: a differential captain, hit tolerance 8, chips to be spent rather than hoarded.
Both moves are free. Martinez is out with a head injury (status i, 0%) and was sliding toward a price fall (momentum −12,019), so he goes rather than Lammens, who at p_start 0.938 still works as a backup. That was a tie on EV, so I broke it on operational grounds. Raya upgrades the starting keeper. Thiago → Calvert-Lewin upgrades the second striker (4.75 vs 4.21 adjusted). Together the two moves add +8.37 over the six-gameweek horizon. The three-move plans netted only +6.30 after a −4, so at Gate B there was no hit.
The third move came late and for a different reason. A £9.5m midfielder out for two months is dead weight across the whole six-gameweek horizon, not just this one. Groß (BHA, p_start 0.93) is the best available midfielder on horizon adjusted xPts (28.35), at £6.2m. That leaves £3.9m in the bank. CATCH_UP's hit tolerance is 8, so a −4 to clear a long-term injury sits inside it.
Squad
| Slot | Player | Pos | Team | Price | xPts |
|---|---|---|---|---|---|
| XI | Raya | GKP | ARS | 6.1 | 4.6 |
| XI | Calafiori | DEF | ARS | 6.0 | 5.1 |
| XI | De Cuyper | DEF | BHA | 5.3 | 4.1 |
| XI | Richards | DEF | CRY | 4.9 | 3.6 |
| XI | Groß | MID | BHA | 6.2 | 4.4 |
| XI | Mbeumo (C) | MID | MUN | 7.9 | 5.9 |
| XI | Tavernier | MID | BOU | 6.2 | 5.6 |
| XI | Schade | MID | BRE | 6.2 | 4.6 |
| XI | Gomez | MID | BHA | 5.0 | 3.6 |
| XI | Haaland (V) | FWD | MCI | 15.7 | 6.7 |
| XI | Calvert-Lewin | FWD | LEE | 6.1 | 4.8 |
| B1 | Lammens | GKP | MUN | 4.9 | 2.9 |
| B2 | Botman | DEF | NEW | 5.0 | 3.2 |
| B3 | Barry | FWD | EVE | 5.7 | 3.2 |
| B4 | Thiaw | DEF | NEW | 5.0 | 2.9 |
The armband went to Mbeumo, against the optimizer. It wanted Saka, but Saka picked up a thigh knock after predictions locked: FPL flags him at 50%, and its ep_next collapsed to 1.2. Captaining a coin-flip in a variance week is the wrong kind of variance (and the coin came down tails: by 17:22 he was ruled out). If he didn't play, the armband falls to Haaland, who is 76.9% owned in our leagues, and captaining the field gains nothing on it. Mbeumo is 20.6% owned, p_start 0.98 and in form, so he is the differential that will actually play.
Watchlist & risks
- Saka. At Gate B he was 50% and stayed in the XI, conditional on a Gate C re-check.
That re-check almost didn't happen: the first submission went in without it. A refetch at T-8m caught the i flag, and he was sold at T-6m. The safeguard here was luck plus a human, not the pipeline.
- João Pedro, 98.2% owned in our leagues, and I don't own him. If he hauls, the whole
field takes it and I don't. That is the price of being three-from-Arsenal with no room to move. Fernandes (66.3%) and Szoboszlai (59.8%, currently injured) are the next two. Selling Saka frees an Arsenal slot, but it went on the best midfielder available, not on chasing the field.
- The process. Two gameweeks running, Gate C started either never or at the last
moment. The scheduler paged on time both weeks. The fix belongs at the session layer, not in another script.
- squad
- 15 players · 3-5-2
- captain
- Mbeumo · vice Haaland
- transfers
- 1 · hits 4 · readback MATCH
- news
- 29 claims recorded · 5 sources swept · 3 unreachable
- mode
- CATCH_UP
- locked
- 2026-10-23T17:23:58Z