Roster compliance
15 men plus 1 on IR. Going into a game week with more than 16 scores zero for that week, so this is worth checking on a Thursday morning rather than finding out on Sunday night.
python3 -m afl compliance.
Historic oversize rosters — 34
These are not confirmed breaches, and the difference matters.
The rule tests the roster before Thursday night football; what is
stored per week is matchups.players, a snapshot taken when the
week was scored, and it counts IR. A team legal on Thursday that claimed a
player on Sunday lands in this table looking guilty.
Which is very likely what happened, because
not one of these 34 scored zero.
Either the rule went unenforced for six seasons, or — far more plausibly —
the snapshot is simply taken at the wrong moment to answer the question.
That gap is the reason the check above captures rosters on a schedule instead
of being reconstructed after the fact.
| Season | Week | Manager | Roster | Over by | Scored | Penalised |
|---|---|---|---|---|---|---|
| 2025 | 5 | JohnnyLime | 17 | +1 | 113.34 | no |
| 2025 | 5 | SaschaLime | 18 | +2 | 148.22 | no |
| 2025 | 8 | hlougher | 17 | +1 | 138.36 | no |
| 2025 | 8 | FurstyFerret | 17 | +1 | 117.78 | no |
| 2025 | 9 | JamieRS | 17 | +1 | 96.42 | no |
| 2025 | 9 | JohnnyLime | 17 | +1 | 53.86 | no |
| 2025 | 12 | jallison | 17 | +1 | 135.86 | no |
| 2025 | 14 | Hackland11 | 17 | +1 | 143.24 | no |
| 2024 | 5 | hlougher | 17 | +1 | 110.54 | no |
| 2024 | 6 | alistairc | 17 | +1 | 108.32 | no |
| 2024 | 7 | FurstyFerret | 17 | +1 | 114.24 | no |
| 2024 | 10 | JamieRS | 17 | +1 | 71.34 | no |
| 2023 | 5 | alistairc | 17 | +1 | 131.84 | no |
| 2023 | 7 | TimMarzenell | 17 | +1 | 88.26 | no |
| 2023 | 10 | jallison | 17 | +1 | 106.80 | no |
| 2023 | 10 | JohnnyLime | 17 | +1 | 108.82 | no |
| 2023 | 10 | SaschaLime | 17 | +1 | 104.06 | no |
| 2023 | 13 | alistairc | 17 | +1 | 142.60 | no |
| 2022 | 8 | FurstyFerret | 17 | +1 | 93.82 | no |
| 2022 | 9 | nateg94 | 17 | +1 | 105.12 | no |
| 2022 | 10 | JohnnyLime | 17 | +1 | 88.54 | no |
| 2022 | 11 | nateg94 | 17 | +1 | 148.62 | no |
| 2021 | 6 | JamieRS | 17 | +1 | 159.62 | no |
| 2021 | 7 | jallison | 17 | +1 | 99.04 | no |
| 2021 | 8 | nateg94 | 17 | +1 | 121.70 | no |
| 2021 | 8 | jallison | 17 | +1 | 92.76 | no |
| 2021 | 10 | JohnnyLime | 17 | +1 | 47.30 | no |
| 2021 | 11 | jallison | 17 | +1 | 110.38 | no |
| 2021 | 13 | BrookeyT | 17 | +1 | 76.96 | no |
| 2021 | 14 | TimMarzenell | 17 | +1 | 102.88 | no |
| 2021 | 16 bracket | PaddyTynes | 17 | +1 | 84.52 | no |
| 2021 | 16 bracket | JamieRS | 17 | +1 | 133.06 | no |
| 2021 | 16 bracket | TimMarzenell | 17 | +1 | 80.76 | no |
| 2021 | 16 bracket | JohnnyLime | 17 | +1 | 115.24 | no |
python3 -m afl compliance captures
every roster and exits non-zero when somebody is over, so cron can stay quiet
until there is something to say:
0 8 * * 4 cd /home/andy/afl && .venv/bin/python -m afl compliance --quiet