Commit 98c6fe3
feat(worldcup): goals forecast (xG + scoreline) + knockout penalties/advance
The card now answers "what's the score, and who goes through?":
- expected goals per side + most likely scoreline, from a fast iterative
attack/defence Poisson on recent internationals (neutral-aware home advantage;
a global statsmodels GLM over ~200 nations was too slow for the cron).
- knockout: chance to advance (win in 90'/ET, or win the shootout) + the penalty
split (shrunk toward a coin-flip — shootouts are near-random).
- fixes an off-by-one date bug (UTC parse rolled fixtures back a day).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>1 parent bca8bb0 commit 98c6fe3
4 files changed
Lines changed: 248 additions & 23 deletions
File tree
- site/src
- data
- pages
- study
- analysis
- skewlib
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
27 | 34 | | |
28 | 35 | | |
29 | 36 | | |
| |||
43 | 50 | | |
44 | 51 | | |
45 | 52 | | |
46 | | - | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
47 | 61 | | |
48 | 62 | | |
49 | 63 | | |
| |||
62 | 76 | | |
63 | 77 | | |
64 | 78 | | |
65 | | - | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
66 | 87 | | |
67 | 88 | | |
68 | 89 | | |
| |||
81 | 102 | | |
82 | 103 | | |
83 | 104 | | |
84 | | - | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
85 | 113 | | |
86 | 114 | | |
87 | 115 | | |
| |||
100 | 128 | | |
101 | 129 | | |
102 | 130 | | |
103 | | - | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
104 | 139 | | |
105 | 140 | | |
106 | 141 | | |
| |||
119 | 154 | | |
120 | 155 | | |
121 | 156 | | |
122 | | - | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
123 | 165 | | |
124 | 166 | | |
125 | 167 | | |
| |||
138 | 180 | | |
139 | 181 | | |
140 | 182 | | |
141 | | - | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
142 | 191 | | |
143 | 192 | | |
144 | 193 | | |
| |||
157 | 206 | | |
158 | 207 | | |
159 | 208 | | |
160 | | - | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
161 | 217 | | |
162 | 218 | | |
163 | 219 | | |
| |||
176 | 232 | | |
177 | 233 | | |
178 | 234 | | |
179 | | - | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
180 | 243 | | |
181 | 244 | | |
182 | 245 | | |
| |||
195 | 258 | | |
196 | 259 | | |
197 | 260 | | |
198 | | - | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
199 | 269 | | |
200 | 270 | | |
201 | 271 | | |
| |||
214 | 284 | | |
215 | 285 | | |
216 | 286 | | |
217 | | - | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
218 | 295 | | |
219 | 296 | | |
220 | 297 | | |
| |||
233 | 310 | | |
234 | 311 | | |
235 | 312 | | |
236 | | - | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
237 | 321 | | |
238 | 322 | | |
239 | 323 | | |
| |||
252 | 336 | | |
253 | 337 | | |
254 | 338 | | |
255 | | - | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
256 | 347 | | |
257 | 348 | | |
258 | 349 | | |
| |||
271 | 362 | | |
272 | 363 | | |
273 | 364 | | |
274 | | - | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
275 | 373 | | |
276 | 374 | | |
277 | 375 | | |
| |||
290 | 388 | | |
291 | 389 | | |
292 | 390 | | |
293 | | - | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
294 | 399 | | |
295 | 400 | | |
296 | 401 | | |
| |||
309 | 414 | | |
310 | 415 | | |
311 | 416 | | |
312 | | - | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
313 | 425 | | |
314 | 426 | | |
315 | 427 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
103 | 103 | | |
104 | 104 | | |
105 | 105 | | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
106 | 123 | | |
107 | 124 | | |
108 | 125 | | |
| |||
312 | 329 | | |
313 | 330 | | |
314 | 331 | | |
315 | | - | |
| 332 | + | |
316 | 333 | | |
317 | 334 | | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
318 | 349 | | |
319 | 350 | | |
320 | 351 | | |
| |||
423 | 454 | | |
424 | 455 | | |
425 | 456 | | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
426 | 472 | | |
427 | 473 | | |
428 | 474 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
46 | | - | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
52 | 65 | | |
53 | 66 | | |
54 | 67 | | |
| |||
0 commit comments