From e49f74e8cd6d553f35e15dee68cf44221159851a Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 8 Jul 2026 22:17:42 +0000 Subject: [PATCH 1/2] Refresh live Elo and regenerate projected bracket Runs the daily pipeline: refreshes live Elo from eloratings.net and regenerates the Monte Carlo simulation, projected bracket and README block. Knockout ties remain model projections (no real Round-of-32 / Round-of-16 results are recorded in the repo yet). Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01GmtcBGn7eopeUJMJ41KC9S --- .../prediccion-mundial-2026/data/2026.tsv | 128 +++++++------- .../data/backtest-matches.json | 8 +- .../data/elo-mundial-2026.json | 2 +- README.md | 6 +- predicciones/PREDICCIONES.md | 10 +- predicciones/simulacion.json | 160 +++++++++--------- 6 files changed, 157 insertions(+), 157 deletions(-) diff --git a/.claude/skills/prediccion-mundial-2026/data/2026.tsv b/.claude/skills/prediccion-mundial-2026/data/2026.tsv index 811da49..161b21c 100644 --- a/.claude/skills/prediccion-mundial-2026/data/2026.tsv +++ b/.claude/skills/prediccion-mundial-2026/data/2026.tsv @@ -1,30 +1,30 @@ − 1 ES 2177 1 2189 7 1947 19 1805 0 +12 0 +5 0 +20 +1 +65 +6 +154 +7 +239 787 341 302 144 466 138 183 1604 699 0 +5 − 2 AR 2156 1 2172 5 1987 26 1751 0 +43 0 +43 0 +24 −1 +13 +4 +132 −1 +47 1116 381 419 316 617 228 271 2131 1141 0 +43 − 3 FR 2143 1 2143 16 1795 40 1514 0 +62 0 +81 0 +88 0 +75 +1 +70 0 +123 945 475 341 129 480 270 195 1724 1277 0 +81 -− 4 EN 2076 1 2213 4 1983 17 1810 0 +56 0 +34 +2 +92 +4 +106 +1 +37 +7 +164 1167 509 525 133 689 215 263 2734 1123 0 +34 +− 4 EN 2076 1 2213 4 1983 17 1810 0 +56 0 +34 +2 +92 +4 +106 +1 +36 +7 +164 1167 509 525 133 689 215 263 2734 1123 0 +34 − 5 CO 2003 3 2069 48 1621 102 1304 +2 +28 0 +5 +3 +53 −1 −42 +9 +98 +1 +51 655 185 229 241 270 205 180 852 743 0 +5 -− 6 PT 1995 2 2060 19 1797 41 1623 −1 +11 +1 +19 −2 −35 +3 +36 +2 −11 +4 +75 701 322 262 117 350 190 161 1234 784 +1 +19 +− 6 PT 1995 2 2060 19 1797 41 1623 −1 +11 +1 +19 −2 −35 +3 +36 +2 −11 +4 +74 701 322 262 117 350 190 161 1234 784 +1 +19 − 7 BR 1993 1 2195 4 1998 20 1805 −2 +9 −1 +15 −2 −8 −1 −27 −6 −160 −2 +16 1072 373 346 353 675 173 224 2312 961 −1 +15 − 8 NO 1972 6 1972 38 1623 85 1364 +4 +60 +3 +50 +6 +106 +27 +238 +28 +234 +44 +337 892 425 409 58 339 355 198 1389 1450 +3 +50 − 9 NL 1971 1 2153 15 1848 55 1552 −1 +10 −1 +12 −2 −4 −2 −18 +2 +50 0 +47 906 430 358 118 467 240 199 1904 1149 −1 +12 -− 10 BE 1961 1 2157 24 1755 71 1503 +9 +94 +9 +111 +8 +114 0 +27 −8 −164 +4 +72 883 416 377 90 395 302 186 1619 1364 +9 +111 +− 10 BE 1961 1 2157 24 1755 70 1503 +9 +94 +9 +111 +8 +114 0 +27 −8 −164 +4 +72 883 416 377 90 395 302 186 1619 1364 +9 +111 − 11 CH 1949 9 1949 27 1689 56 1485 +5 +60 +2 +52 +9 +105 +2 +46 +2 +35 +9 +147 901 426 392 83 322 373 206 1347 1487 +2 +52 -− 12 MA 1921 11 1923 43 1657 86 1510 +12 +100 +8 +79 +13 +109 +16 +148 +29 +240 +50 +346 735 319 219 197 368 165 202 1118 619 +8 +81 +− 12 MA 1921 11 1923 43 1658 86 1510 +12 +100 +8 +79 +13 +109 +16 +148 +29 +240 +50 +346 735 319 219 197 368 165 202 1118 619 +8 +81 − 13 MX 1913 4 1985 20 1784 48 1498 +7 +56 +8 +79 +3 +52 +12 +128 +2 +19 −1 +6 1034 302 273 459 539 258 237 1839 1057 +8 +79 − 14 DE 1907 1 2222 8 1910 25 1637 −3 −16 −2 −3 −4 −6 −3 −26 −2 −8 −10 −108 1051 470 416 165 608 225 218 2369 1238 −2 −3 -− 15 JP 1888 9 1925 61 1468 114 1126 −2 −16 +1 +10 +2 +31 +2 +31 +14 +117 +13 +134 840 332 207 301 410 258 172 1526 990 +1 +10 -− 16 HR 1882 4 2015 12 1881 28 1780 −6 −49 −7 −51 −7 −45 −4 −33 +3 +57 0 +34 404 158 167 79 212 86 106 702 411 −7 −51 +− 15 JP 1888 9 1925 61 1468 114 1126 −2 −16 +1 +10 +2 +30 +2 +31 +14 +117 +13 +134 840 332 207 301 410 258 172 1526 990 +1 +10 +− 16 HR 1881 4 2015 12 1881 28 1780 −6 −49 −6 −51 −7 −45 −4 −34 +3 +56 0 +33 404 158 167 79 212 86 106 702 411 −6 −51 − 17 EC 1871 9 1938 64 1526 121 1183 −8 −62 −8 −62 −6 −34 −1 +1 +10 +89 −2 +12 604 183 212 209 186 256 162 726 908 −8 −62 − 18 DK 1869 1 2074 20 1799 59 1541 0 −1 −1 +4 −3 +4 +1 +53 −9 −96 +11 +125 905 414 396 95 420 298 187 1652 1221 −1 +4 − 18 IT 1869 1 2134 8 1915 23 1607 +3 +13 0 +10 −5 −13 −4 −21 −15 −219 −11 −80 903 407 325 171 481 177 245 1581 894 0 +10 -− 20 TR 1852 9 1910 43 1610 77 1358 −6 −50 −5 −28 +3 +16 +2 +48 +18 +122 −1 +37 673 290 301 82 265 252 156 953 975 −5 −28 -− 21 UY 1841 1 2104 12 1876 44 1636 −6 −51 −7 −49 −9 −60 −16 −185 −11 −93 −8 −53 1022 336 432 254 446 322 254 1613 1258 −7 −49 +− 20 TR 1852 9 1910 43 1610 77 1358 −6 −50 −5 −28 +3 +16 +2 +47 +18 +122 −1 +37 673 290 301 82 265 252 156 953 975 −5 −28 +− 21 UY 1841 1 2104 12 1877 44 1636 −6 −51 −7 −49 −9 −60 −16 −185 −11 −94 −8 −53 1022 336 432 254 446 322 254 1613 1258 −7 −49 − 22 AT 1821 1 2070 20 1809 73 1549 +1 −6 +1 +3 −3 −24 −7 −55 +6 +44 +18 +108 870 432 383 55 372 312 186 1567 1330 +1 +3 -− 23 SN 1816 17 1879 56 1591 107 1387 −6 −63 +1 +4 +6 +31 +7 +49 +17 +122 +22 +142 710 221 260 229 320 196 194 979 681 +1 +9 +− 23 SN 1816 17 1879 56 1591 107 1386 −6 −63 +1 +4 +6 +31 +7 +49 +17 +122 +22 +142 710 221 260 229 320 196 194 979 681 +1 +9 − 24 PY 1814 5 1956 23 1755 51 1619 −2 −19 −2 −19 0 −11 +26 +152 −3 +4 +11 +90 794 215 366 213 278 305 211 1009 1121 −2 −19 − 25 AU 1795 11 1875 35 1671 77 1469 +1 +13 +6 +22 +5 +20 +2 +20 +10 +56 +17 +88 642 272 224 146 327 182 133 1294 724 +5 +22 -− 26 UA 1780 14 1872 31 1745 66 1561 +3 +13 −1 −22 +1 −19 −7 −36 −2 −15 +6 +42 340 134 146 60 154 91 95 478 358 −1 −22 -− 27 RU 1772 1 2083 24 1742 50 1449 0 −4 +2 −10 +1 −21 −1 −9 +10 +41 +16 +80 815 313 383 119 432 174 209 1482 779 +2 −10 +− 26 UA 1780 14 1873 31 1745 66 1561 +3 +13 −1 −22 +1 −19 −7 −36 −2 −15 +6 +42 340 134 146 60 154 91 95 478 358 −1 −22 +− 27 RU 1772 1 2083 24 1742 50 1449 0 −4 +2 −10 +1 −21 −1 −9 +10 +41 +16 +79 815 313 383 119 432 174 209 1482 779 +2 −10 − 28 NG 1767 16 1826 38 1669 74 1500 +4 +15 +22 +83 +39 +191 +35 +181 +16 +105 +26 +142 717 241 264 212 332 180 205 1081 725 +22 +98 − 29 IR 1764 13 1853 40 1658 79 1450 +2 +4 +5 +9 −3 −37 −8 −44 −7 −40 0 +20 673 223 195 255 384 132 157 1278 528 +5 +9 − 30 DZ 1756 18 1807 48 1621 110 1386 +5 +13 0 −19 +13 +52 +22 +115 +1 −6 +17 +100 694 261 234 199 312 198 184 1062 712 +3 −1 @@ -39,52 +39,52 @@ − 39 CI 1727 15 1863 45 1640 76 1476 +13 +51 +13 +63 +25 +140 +19 +104 +8 +84 −4 +3 697 241 238 218 351 168 178 1137 700 +20 +100 − 40 KR 1723 16 1845 35 1687 84 1445 −8 −29 −12 −61 −9 −51 −7 −17 −10 −41 −19 −74 1055 353 256 446 574 223 258 1915 967 −12 −61 − 41 CL 1717 2 2040 28 1678 59 1384 +3 +7 −2 −14 +6 +28 −1 −6 −16 −77 −39 −323 854 328 308 218 319 347 188 1197 1219 −2 −14 -− 42 KO 1714 37 1737 102 1421 119 1363 0 −6 +1 +1 +17 +105 +39 +209 +45 +232 +68 +315 109 49 40 20 43 43 23 156 147 +1 +1 +− 42 KO 1714 37 1737 102 1421 119 1363 0 −6 +1 +1 +17 +105 +39 +209 +44 +232 +68 +315 109 49 40 20 43 43 23 156 147 +1 +1 − 43 HU 1710 1 2234 20 1835 74 1529 +2 +7 +2 +12 +1 +9 −20 −90 −10 −44 −6 −13 1035 469 492 74 489 324 222 2074 1527 +2 +12 − 43 PL 1710 2 2084 30 1712 63 1521 −6 −19 −6 −25 +5 +28 −4 −19 −11 −51 −25 −113 921 397 410 114 400 296 225 1564 1243 −6 −25 -− 45 CD 1704 20 1782 62 1557 114 1387 +9 +49 +13 +65 +21 +121 +26 +151 +43 +228 +30 +172 553 166 225 162 227 174 152 841 648 +9 +47 -− 46 PE 1699 10 1916 35 1679 76 1485 +1 +4 −2 −8 −8 −44 −5 −10 −28 −129 −29 −142 710 266 253 191 229 305 176 860 991 −2 −8 -− 46 IE 1699 4 1918 24 1626 64 1237 +3 +8 +2 +11 +8 +66 +13 +80 +7 +77 −20 −60 743 378 305 60 262 287 194 979 1161 +2 +11 +− 45 CD 1704 20 1782 62 1557 114 1387 +9 +49 +13 +65 +21 +121 +26 +151 +42 +228 +30 +172 553 166 225 162 227 174 152 841 648 +9 +47 +− 46 PE 1700 10 1916 35 1679 76 1485 +1 +4 −2 −8 −8 −44 −5 −10 −28 −128 −29 −141 710 266 253 191 229 305 176 860 991 −2 −8 +− 47 IE 1699 4 1918 24 1626 64 1237 +2 +8 +1 +11 +7 +66 +12 +80 +6 +77 −21 −60 743 378 305 60 262 287 194 979 1161 +1 +11 − 48 WA 1682 3 1909 22 1670 85 1403 −2 −16 −7 −33 −9 −44 −4 −1 −28 −140 −25 −96 735 346 357 32 236 332 167 919 1176 −7 −33 − 48 SI 1682 26 1777 54 1625 77 1518 0 −12 −2 −13 −13 −70 −19 −89 +7 +65 +8 +69 321 145 146 30 116 118 87 401 381 −2 −13 -− 50 CZ 1680 1 2032 13 1854 50 1669 −10 −46 −11 −51 −14 −69 −13 −52 −33 −156 −11 −37 887 361 417 109 426 263 198 1631 1105 −11 −51 +− 50 CZ 1680 1 2032 13 1854 50 1669 −10 −46 −11 −51 −14 −69 −13 −51 −33 −156 −11 −37 887 361 417 109 426 263 198 1631 1105 −11 −51 − 51 SK 1667 17 1775 40 1682 67 1567 +2 −6 −2 −20 0 +2 −8 −17 −8 −3 −24 −91 368 158 166 44 150 131 87 521 460 −2 −20 -− 52 PA 1658 27 1773 99 1363 143 1155 −16 −79 −16 −84 −19 −103 −14 −72 +19 +109 −6 −12 597 201 228 168 197 255 145 743 919 −16 −84 -− 53 GE 1654 31 1754 70 1553 104 1434 +2 +1 +2 +4 −12 −56 −11 −50 +22 +127 +34 +169 321 141 148 32 107 146 68 415 444 +2 +4 +− 52 PA 1658 27 1773 99 1363 143 1155 −16 −79 −16 −84 −19 −103 −14 −72 +19 +110 −6 −12 597 201 228 168 197 255 145 743 919 −16 −84 +− 53 GE 1654 31 1754 70 1554 104 1434 +2 +1 +2 +4 −12 −56 −11 −50 +22 +127 +34 +169 321 141 148 32 107 146 68 415 444 +2 +4 − 54 IL 1647 23 1776 49 1621 83 1427 +5 +13 +6 +16 +1 +18 +12 +80 +3 +41 +11 +79 524 249 213 62 197 207 120 804 764 +4 +16 -− 55 RO 1639 5 1944 29 1717 65 1501 +5 +12 +1 −3 −6 −42 −10 −43 −6 +10 −17 −79 802 333 377 92 355 247 200 1306 1020 +1 −3 -− 56 UZ 1631 25 1766 59 1596 93 1428 −18 −96 −19 −104 −14 −76 −10 −50 +14 +81 −8 −19 370 130 129 111 180 115 75 638 413 −19 −104 -− 57 JO 1628 40 1701 111 1324 153 1095 −7 −62 −10 −61 0 +4 −4 −7 +32 +158 +17 +93 588 201 193 194 207 223 158 733 725 −10 −61 -− 58 BO 1621 21 1798 60 1509 93 1244 −1 −24 −7 −45 −6 −43 +16 +71 +5 +41 +6 +48 538 189 205 144 122 295 121 551 1060 −7 −45 +− 55 RO 1639 5 1945 29 1717 65 1501 +5 +12 +1 −3 −6 −42 −10 −43 −6 +10 −17 −79 802 333 377 92 355 247 200 1306 1020 +1 −3 +− 56 UZ 1631 25 1766 60 1596 93 1428 −18 −96 −19 −104 −14 −76 −10 −50 +14 +82 −8 −18 370 130 129 111 180 115 75 638 413 −19 −104 +− 57 JO 1628 40 1701 111 1323 153 1094 −7 −62 −10 −61 0 +4 −4 −7 +31 +158 +17 +93 588 201 193 194 207 223 158 733 725 −10 −61 +− 58 BO 1621 21 1798 60 1509 92 1244 −1 −24 −7 −45 −6 −43 +16 +71 +5 +41 +6 +48 538 189 205 144 122 295 121 551 1060 −7 −45 − 59 CV 1619 58 1625 120 1302 146 1172 +13 +70 +13 +58 +19 +101 +9 +59 +35 +181 +25 +117 257 80 91 86 96 98 63 277 283 +14 +58 -− 60 AL 1616 38 1675 72 1504 116 1363 −4 −30 −8 −48 −4 −11 −4 −14 +9 +60 −7 −17 410 192 185 33 116 209 85 396 604 −8 −48 -− 61 CM 1613 14 1849 53 1604 80 1442 +1 0 0 −3 +2 +20 +3 +29 +5 +48 −5 0 661 184 247 230 287 172 202 952 712 +3 +19 -− 62 CR 1609 9 1866 36 1690 76 1479 −1 −5 −3 −24 −16 −84 −11 −52 −10 −17 −40 −177 789 259 280 250 355 243 191 1366 919 −5 −24 +− 60 AL 1616 38 1675 72 1504 116 1363 −4 −30 −8 −48 −4 −11 −4 −14 +9 +60 −7 −16 410 192 185 33 116 209 85 396 604 −8 −48 +− 61 CM 1613 14 1849 53 1604 80 1442 0 0 0 −3 +2 +20 +3 +29 +5 +48 −5 0 661 184 247 230 287 172 202 952 712 +3 +19 +− 62 CR 1608 9 1866 36 1690 76 1479 −1 −5 −3 −24 −16 −84 −11 −52 −10 −18 −40 −178 789 259 280 250 355 243 191 1366 919 −5 −24 − 63 EI 1605 13 1852 40 1654 111 1396 +1 +5 0 +3 +6 +44 +15 +88 +2 +39 −14 −37 612 276 298 38 172 290 150 645 928 −1 +3 − 63 BA 1605 20 1806 53 1626 90 1469 +3 +11 +6 +33 +14 +82 +26 +129 −12 −23 −38 −156 285 118 138 29 105 113 67 399 394 +6 +33 − 65 SA 1596 29 1736 76 1499 125 1253 +6 +28 0 +4 +3 +28 −4 +8 −8 −10 +11 +69 842 324 151 367 396 248 198 1284 901 0 +4 − 66 NM 1589 40 1667 74 1534 110 1401 +1 0 −1 −3 −13 −45 +9 +43 +2 +26 +36 +159 305 141 134 30 95 131 79 364 411 −1 −3 − 67 ML 1588 42 1650 70 1523 129 1302 −2 −8 −3 −12 −5 −13 −7 −12 +6 +47 +1 +31 625 195 234 196 249 206 170 824 718 −4 −11 − 68 GH 1570 10 1877 42 1650 101 1424 +14 +65 +12 +61 +17 +93 +8 +32 −7 −27 −18 −70 783 247 298 238 371 215 197 1250 826 +12 +61 -− 68 HN 1570 23 1789 63 1501 110 1331 +1 −1 +2 +3 −3 −15 +12 +60 −11 −36 +9 +44 668 212 217 239 263 232 173 964 859 +3 +3 +− 68 HN 1570 23 1789 63 1501 110 1331 +1 −1 +2 +3 −3 −15 +12 +60 −11 −36 +9 +45 668 212 217 239 263 232 173 964 859 +3 +3 − 70 IS 1568 18 1841 81 1425 127 1258 −1 −3 +1 +2 +1 +18 −3 +7 −14 −44 −39 −174 527 216 251 60 160 263 104 635 885 +2 +2 − 71 TN 1562 24 1757 47 1616 87 1438 −13 −74 −9 −52 −13 −51 −23 −109 −23 −75 0 +11 780 337 253 190 330 234 216 1107 857 −10 −53 -− 72 IQ 1561 24 1740 47 1622 96 1456 −9 −46 −4 −21 −1 +11 −23 −102 −19 −61 +10 +57 765 139 232 394 360 193 212 1205 722 −4 −21 -− 73 ZA 1560 7 1847 32 1707 99 1448 +6 +35 +4 +31 +3 +36 −4 +1 +9 +69 −15 −46 530 276 162 92 232 143 155 722 547 +1 +9 -− 74 AO 1542 52 1629 86 1456 161 1213 −1 −1 −1 −1 −14 −65 −2 −9 +39 +174 +83 +324 475 166 184 125 176 140 159 579 490 +1 −1 -− 75 AE 1540 37 1692 98 1396 163 981 0 0 0 0 −1 +3 +7 +38 +7 +49 −14 −43 674 287 141 246 263 238 173 933 831 +2 0 -− 76 FI 1536 14 1757 63 1500 120 1246 −2 −6 +4 +27 −6 −20 −19 −91 −37 −169 −14 −39 825 337 430 58 217 441 167 972 1699 +4 +27 -− 77 NZ 1534 29 1642 66 1500 102 1334 −9 −51 −10 −51 −16 −68 −12 −36 +9 +49 −5 −7 444 135 189 120 181 183 80 771 660 −10 −51 -− 78 BF 1529 56 1617 98 1402 137 1265 0 −1 −2 −5 +3 +27 +9 +46 −6 −16 +17 +69 493 154 188 151 170 192 131 614 677 −8 −42 +− 72 IQ 1561 19 1740 46 1629 96 1456 −9 −46 −4 −21 −1 +11 −23 −102 −19 −61 +10 +57 763 138 231 394 359 192 212 1200 717 −4 −21 +− 73 ZA 1560 7 1847 32 1707 99 1448 +6 +35 +4 +31 +3 +36 −4 +1 +9 +65 −15 −46 530 276 162 92 232 143 155 722 547 +1 +9 +− 74 AO 1542 52 1628 86 1456 161 1213 −1 −1 −1 −1 −14 −65 −2 −9 +39 +174 +83 +324 475 166 184 125 176 140 159 579 490 +1 −1 +− 75 AE 1540 37 1692 98 1396 163 981 0 0 0 0 −1 +3 +7 +38 +8 +49 −14 −43 674 287 141 246 263 238 173 933 831 +2 0 +− 76 FI 1536 14 1757 63 1500 120 1246 −2 −6 +4 +27 −6 −20 −19 −91 −37 −168 −14 −39 825 337 430 58 217 441 167 972 1699 +4 +27 +− 77 NZ 1534 29 1642 66 1500 103 1334 −9 −51 −10 −51 −16 −68 −12 −36 +8 +49 −5 −7 444 135 189 120 181 183 80 771 660 −10 −51 +− 78 BF 1529 56 1617 98 1403 137 1265 0 −1 −2 −5 +3 +27 +9 +46 −6 −16 +17 +69 493 154 188 151 170 192 131 614 677 −8 −42 − 79 JM 1527 38 1700 83 1414 133 1222 −3 −8 −1 −1 −6 −19 −18 −61 −15 −52 −9 −26 719 272 268 179 280 272 167 961 942 −1 −1 -− 80 BY 1522 44 1666 80 1505 120 1349 +1 +9 +2 +26 +3 +30 +16 +89 +2 +31 −21 −62 308 105 158 45 91 137 80 348 445 +2 +26 +− 80 BY 1522 44 1665 80 1505 120 1349 +1 +9 +2 +26 +3 +30 +16 +89 +3 +31 −21 −62 308 105 158 45 91 137 80 348 445 +2 +26 − 81 HT 1517 36 1674 81 1418 129 1265 −4 −15 −7 −25 +5 +50 +2 +16 −7 −21 +9 +41 566 181 196 189 247 201 118 964 769 −5 −25 -− 82 GT 1504 30 1642 68 1486 108 1382 −2 −10 −4 −24 −7 −21 +4 +19 −3 +4 +4 +15 628 205 180 243 225 237 166 878 858 −4 −24 +− 82 GT 1504 30 1642 68 1486 108 1382 −2 −10 −4 −24 −7 −21 +4 +19 −3 +4 +4 +14 628 205 180 243 225 237 166 878 858 −4 −24 − 83 SY 1479 53 1618 86 1428 124 1253 0 −12 +1 −7 +10 +36 +17 +60 +8 +30 −2 −35 598 125 224 249 223 227 148 859 760 +1 −7 − 83 OM 1479 53 1634 127 1212 181 782 +1 −11 0 −11 −1 −22 −6 −52 −5 −25 +8 +8 594 230 145 219 223 219 152 757 784 0 −11 -− 85 PS 1465 66 1483 121 1255 159 1156 +1 −4 +1 −4 +2 +5 +18 +57 +7 +17 +31 +113 292 19 113 160 84 128 80 370 446 +1 −4 +− 85 PS 1465 66 1483 121 1254 159 1154 +1 −4 +1 −4 +2 +5 +18 +57 +7 +17 +31 +113 292 19 113 160 84 128 80 370 446 +1 −4 − 86 GN 1463 21 1772 72 1516 128 1302 0 −6 −1 −22 +5 +12 +2 −19 +9 +26 −6 −57 646 172 263 211 251 211 184 953 804 −1 −22 -− 87 ME 1460 34 1720 61 1596 94 1439 +2 +21 +2 +17 −7 −53 −17 −94 −11 −57 −18 −96 174 91 78 5 58 73 43 205 239 +2 +17 +− 87 ME 1461 34 1720 61 1596 94 1440 +2 +21 +2 +17 −7 −53 −17 −93 −11 −56 −18 −95 174 91 78 5 58 73 43 205 239 +2 +17 − 88 BG 1458 7 1910 41 1632 98 1312 −3 −17 0 +5 +2 +6 −3 −30 −8 −41 −29 −126 781 299 400 82 286 300 195 1094 1152 0 +5 − 89 LU 1450 24 1520 108 1256 191 978 +1 +14 +14 +55 0 −5 −10 −61 +18 +64 +58 +211 474 258 201 15 55 357 62 309 1224 +14 +55 − 90 NS 1442 64 1486 87 1450 105 1426 −2 0 0 0 +4 0 +3 0 +3 0 +10 +1 16 5 3 8 8 6 2 28 22 0 0 @@ -95,38 +95,38 @@ − 94 KD 1424 94 1424 100 1424 108 1403 +2 0 0 0 +3 0 +4 0 +6 0 +10 0 4 2 0 2 3 0 1 12 3 +1 0 − 96 LY 1420 43 1617 82 1469 128 1321 +3 0 −4 −5 +13 +35 +8 +18 +31 +93 −7 −58 458 164 166 128 165 185 108 620 611 −3 −5 − 97 GM 1419 88 1454 118 1309 144 1190 0 −4 −3 −5 +10 +33 +25 +72 +14 +48 +42 +138 299 108 100 91 81 136 82 319 433 −2 −5 -− 98 BH 1414 51 1634 109 1349 155 1075 +2 −4 −2 −4 −6 −35 −7 −41 −32 −151 +5 −13 637 218 159 260 223 248 166 780 826 −1 −4 -− 99 QA 1411 26 1771 93 1416 164 964 −4 −14 −7 −14 −20 −106 −44 −220 −54 −249 −26 −127 702 328 148 226 289 235 178 995 836 −6 −14 -− 100 BJ 1405 58 1540 109 1356 168 1130 −6 −24 −3 −5 −2 −2 +6 +8 −4 −26 +9 −1 354 129 142 83 87 182 85 366 623 −8 −23 +− 98 BH 1414 51 1634 109 1349 155 1074 +2 −4 −2 −4 −6 −35 −7 −41 −32 −151 +5 −13 637 218 159 260 223 248 166 780 826 −1 −4 +− 99 QA 1411 26 1771 93 1416 164 963 −4 −14 −7 −14 −20 −106 −44 −220 −54 −249 −26 −127 702 328 148 226 289 235 178 995 836 −6 −14 +− 100 BJ 1405 58 1540 109 1356 168 1131 −6 −24 −3 −5 −2 −2 +6 +8 −4 −26 +9 −1 354 129 142 83 87 182 85 366 623 −8 −23 − 101 GA 1401 59 1593 95 1413 126 1268 0 0 −2 −4 −14 −59 −6 −34 −5 −30 −4 −45 462 184 154 124 159 174 129 551 567 −2 −4 − 102 UG 1394 29 1625 75 1482 130 1306 0 0 +2 0 +9 +13 +13 +33 −12 −56 −17 −106 736 251 257 228 304 238 194 1108 887 +2 0 − 103 TT 1386 11 1662 61 1505 125 1313 +1 −6 −2 −17 −5 −21 −1 −27 +16 +26 −38 −182 872 344 365 163 375 304 193 1446 1130 −2 −17 − 103 FO 1386 61 1386 122 1253 169 1154 +3 +4 +4 +5 +44 +111 +49 +140 +41 +124 +47 +154 283 119 141 23 51 195 37 213 641 +5 +5 -− 105 NE 1382 98 1409 133 1239 159 1082 −2 −11 −5 −22 +20 +45 +48 +144 +44 +152 +38 +119 292 100 117 75 65 158 69 287 517 −5 −22 +− 105 NE 1382 98 1409 133 1239 159 1082 −2 −11 −5 −22 +20 +45 +48 +145 +45 +152 +38 +119 292 100 117 75 65 158 69 287 517 −5 −22 − 106 MG 1380 68 1508 104 1366 167 1162 0 −2 +6 +12 +38 +96 +23 +54 +7 +12 +42 +144 357 120 121 116 136 143 78 494 536 +6 +12 − 106 GQ 1380 61 1604 151 1159 189 1007 −1 −11 0 −3 −22 −100 −34 −171 +15 +28 +17 +53 196 80 64 52 56 96 44 182 288 +1 −3 − 108 TG 1379 48 1603 90 1439 144 1263 +7 +20 +11 +36 +8 +8 +5 +9 +27 +91 0 −28 495 179 198 118 158 210 127 539 675 +11 +36 − 109 TH 1376 67 1547 112 1318 140 1125 0 0 +3 +8 +13 +25 −12 −52 +24 +85 −8 −61 935 389 200 346 366 358 211 1487 1408 +3 +8 − 110 KP 1375 17 1801 63 1566 131 1315 0 0 −2 0 +4 0 −4 −22 −2 −3 −28 −129 417 50 149 218 175 127 115 641 447 −1 0 -− 111 KM 1374 95 1434 186 942 206 830 +3 +11 −3 −1 −15 −52 +14 +31 +44 +158 +79 +407 159 29 35 95 41 81 37 145 246 −2 −1 +− 111 KM 1374 95 1434 185 942 206 830 +3 +11 −3 −1 −15 −52 +14 +31 +45 +158 +79 +407 159 29 35 95 41 81 37 145 246 −2 −1 − 112 AM 1373 62 1588 102 1418 143 1243 −4 −6 −7 −16 −6 −14 −22 −88 −50 −210 −34 −148 283 115 132 36 66 158 59 283 539 −7 −16 − 113 ZW 1372 43 1574 78 1462 146 1279 −1 +1 +7 +30 −12 −26 +23 +57 −8 −22 −3 −27 552 190 223 139 207 184 161 738 663 +7 +30 − 113 ID 1372 39 1578 101 1361 179 1103 +14 +41 +9 +31 +7 +15 +14 +39 +65 +269 +48 +161 784 252 192 340 299 332 153 1317 1269 +10 +31 -− 115 ZM 1371 31 1709 60 1551 124 1344 −3 0 −4 0 −5 −13 +4 +20 −33 −120 −17 −73 879 282 360 237 393 261 225 1389 954 −4 0 +− 115 ZM 1371 31 1709 60 1551 124 1344 −3 0 −4 0 −5 −13 +4 +20 −26 −87 −17 −73 879 282 360 237 393 261 225 1389 954 −4 0 − 116 KE 1363 53 1563 90 1379 140 1240 0 +7 +1 +19 −3 −13 −17 −59 −10 −24 +4 +23 781 291 283 207 294 293 194 1078 1062 +1 +19 − 117 EE 1360 32 1541 94 1353 174 1088 +6 +21 −3 +1 0 −6 −4 −10 −15 −44 −25 −107 541 231 255 55 134 287 120 533 962 −3 +1 − 118 VN 1351 62 1517 120 1298 177 1093 −1 0 +9 +22 +13 +30 +30 +79 −17 −70 +27 +95 525 174 131 220 222 200 103 922 771 +9 +22 -− 119 SD 1350 23 1707 90 1444 155 1226 −1 0 −4 0 −16 −46 −13 −47 −16 −51 +16 +61 553 154 204 195 187 225 141 628 730 −4 −5 +− 119 SD 1350 24 1707 90 1444 155 1226 −1 0 −4 0 −16 −46 −13 −47 −16 −51 +16 +61 553 154 204 195 187 225 141 628 730 −4 −5 − 120 RE 1345 72 1395 125 1184 159 1047 0 0 −4 0 +3 0 +3 0 −8 −24 −7 −36 139 53 38 48 55 55 29 237 252 −4 0 − 121 SV 1342 32 1607 72 1471 130 1322 0 0 +9 +18 −2 −20 −12 −46 −40 −154 −16 −79 685 208 209 268 226 305 154 860 1020 +9 +18 − 121 MZ 1342 83 1495 116 1332 152 1210 −10 −30 −11 −30 −26 −90 −20 −74 +18 +64 +4 +18 444 166 177 101 139 194 111 466 585 −15 −45 − 123 SL 1341 65 1552 104 1368 158 1185 −4 −7 −6 −3 +6 +16 +9 +20 +1 −5 −6 −10 337 116 141 80 98 150 89 331 474 −6 −3 − 124 GP 1338 50 1530 91 1408 166 1179 0 0 +1 0 0 0 +5 +12 +24 +92 +16 +59 293 92 89 112 128 114 51 507 410 +1 0 − 125 RW 1336 96 1461 144 1207 176 1035 0 0 +11 +28 +7 +16 +1 +1 +4 +11 +9 +45 290 107 100 83 90 126 74 298 364 +11 +28 -− 126 NI 1333 65 1373 146 1031 197 900 +3 +6 +2 +5 +3 +8 −6 −16 +24 +104 +18 +72 253 63 100 90 54 167 32 258 621 +2 +5 -− 127 KW 1332 27 1734 83 1468 143 1178 +1 +4 +1 +4 +13 +42 +1 +4 −18 −43 −34 −134 762 269 176 317 321 248 193 1198 880 +1 +4 +− 126 NI 1333 65 1373 146 1031 197 900 +3 +6 +2 +5 +3 +8 −6 −16 +25 +104 +18 +72 253 63 100 90 54 167 32 258 621 +2 +5 +− 127 KW 1332 27 1734 84 1467 143 1175 +1 +4 +1 +4 +13 +42 +1 +4 −18 −43 −34 −134 762 269 176 317 321 248 193 1198 880 +1 +4 − 128 MR 1329 98 1424 155 1116 181 911 +5 +18 +6 +18 −2 −4 −5 −16 −24 −68 +8 +41 300 91 103 106 56 173 71 217 527 +6 +18 -− 129 AZ 1322 63 1551 107 1397 143 1257 −7 −18 −5 −17 −11 −43 −45 −169 −20 −53 −17 −67 324 116 152 56 67 176 81 265 545 −5 −17 +− 129 AZ 1322 63 1551 107 1396 143 1257 −7 −18 −5 −17 −11 −43 −45 −169 −20 −53 −17 −67 324 116 152 56 67 176 81 265 545 −5 −17 − 130 ZN 1320 101 1366 145 1119 168 936 0 0 +1 0 +2 0 +4 0 0 −2 +7 +35 217 37 45 135 39 131 47 186 458 +1 0 − 131 CY 1314 63 1575 102 1377 141 1249 +4 +13 +6 +12 +5 +15 +5 −1 −16 −51 −25 −106 429 237 186 6 84 271 74 387 932 +6 +12 − 132 TZ 1313 65 1510 117 1295 169 1130 −1 0 −9 −27 −29 −83 −21 −64 0 +6 −8 −12 658 244 237 177 193 280 185 752 963 −12 −29 @@ -134,33 +134,33 @@ − 134 LR 1304 70 1518 112 1342 154 1218 +3 +7 +4 +4 +16 +41 +16 +39 −14 −50 −12 −25 342 146 144 52 91 175 76 318 521 +4 +4 − 135 NA 1303 97 1428 136 1272 168 1117 −1 0 −1 −8 −23 −77 −23 −69 −20 −62 −21 −73 304 102 121 81 77 135 92 295 424 −1 −8 − 136 KG 1295 127 1332 155 1203 178 1095 +4 +4 −4 −18 −9 −37 +9 +13 +9 +39 +24 +83 192 49 74 69 55 105 32 208 337 −4 −18 -− 137 MY 1293 58 1547 122 1290 185 1054 +1 0 −5 −20 +2 +2 +9 +17 +20 +87 +38 +162 925 390 240 295 362 352 211 1512 1339 −5 −20 +− 137 MY 1293 58 1548 122 1290 185 1054 +1 0 −5 −20 +2 +2 +9 +17 +20 +87 +38 +162 925 390 240 295 362 352 211 1512 1339 −5 −20 − 137 GY 1293 15 1525 104 1294 182 1043 +1 0 +10 +17 +11 +29 +10 +19 +34 +149 +17 +72 455 179 193 83 142 223 90 588 788 +10 +17 -− 139 LB 1288 77 1472 108 1333 164 1166 −13 −44 −13 −44 −11 −39 +1 −9 −22 −75 −24 −80 421 140 144 137 123 186 112 507 621 −13 −44 +− 139 LB 1288 79 1472 109 1328 164 1166 −13 −44 −13 −44 −11 −39 +1 −9 −22 −75 −24 −80 419 139 143 137 122 185 112 502 616 −13 −44 − 139 LV 1288 41 1575 87 1399 155 1217 −4 −13 +4 +2 −4 −13 −7 −33 −1 +7 −51 −192 459 193 213 53 128 220 111 536 754 +4 +2 -− 141 ET 1287 39 1639 99 1394 154 1238 +3 +2 +7 +23 +4 +8 +3 +3 −13 −39 −12 −13 474 216 163 95 171 199 104 657 691 +7 +23 +− 141 ET 1287 39 1638 99 1394 154 1238 +3 +2 +7 +23 +4 +8 +3 +3 −13 −39 −12 −13 474 216 163 95 171 199 104 657 691 +7 +23 − 142 NC 1286 50 1531 103 1356 176 1089 0 0 −2 −8 +1 +1 +13 +56 +1 +20 −10 −10 285 87 71 127 141 110 34 739 419 −2 −8 − 143 BI 1285 85 1465 125 1286 168 1163 −1 −1 +8 +46 −5 −7 0 −4 +4 +38 −22 −51 241 52 89 100 74 112 55 274 334 +8 +46 − 144 TJ 1284 75 1503 123 1334 164 1195 +1 0 −5 −12 −2 −3 −34 −96 −4 +15 +11 +64 212 57 84 71 80 86 46 305 297 −5 −12 − 145 DO 1283 138 1295 167 1061 188 931 0 −1 −4 −10 −4 −6 +14 +75 +18 +112 +14 +66 190 86 64 40 69 89 32 301 307 −4 −10 − 146 LT 1279 47 1662 92 1318 151 1050 −6 −12 0 +2 −9 −15 −29 −77 −15 −40 −47 −164 418 170 207 41 106 230 82 415 759 0 +2 -− 147 MD 1270 65 1556 110 1390 165 1169 +1 +8 −5 −18 −13 −49 −27 −79 +6 +51 −29 −80 302 115 146 41 60 172 70 247 523 −5 −18 -− 148 BW 1267 100 1438 150 1168 190 997 −1 0 −4 −18 −27 −85 −12 −48 −12 −20 −17 −31 368 166 136 66 98 166 104 311 490 −4 −18 -− 149 MT 1255 79 1435 118 1322 171 1155 +4 +18 −4 −23 +4 +5 +2 −1 +5 +37 +2 +24 456 246 183 27 66 314 76 298 1020 −4 −23 +− 147 MD 1270 65 1556 110 1390 165 1169 +1 +8 −5 −18 −13 −49 −27 −79 +7 +51 −29 −80 302 115 146 41 60 172 70 247 523 −5 −18 +− 148 BW 1267 100 1438 150 1167 190 996 −1 0 −4 −18 −27 −85 −12 −48 −12 −20 −17 −31 368 166 136 66 98 166 104 311 490 −4 −18 +− 149 MT 1255 79 1435 118 1322 171 1155 +4 +18 −4 −23 +4 +5 +2 −1 +6 +37 +2 +24 456 246 183 27 66 314 76 298 1020 −4 −23 − 150 GW 1248 84 1415 126 1282 163 1178 −1 0 0 +4 −2 −16 −34 −112 −28 −103 −12 −35 215 66 64 85 58 104 53 215 320 0 +4 − 151 CU 1239 21 1683 84 1439 161 1117 0 0 +2 +10 +4 +15 −10 −55 −11 −30 −24 −71 485 103 212 170 185 189 111 678 684 +2 +10 − 151 MW 1239 48 1590 115 1327 153 1093 −1 −2 −2 −13 0 −17 −12 −63 −25 −97 −25 −77 700 306 245 149 232 265 203 817 902 −2 −13 − 153 CF 1236 83 1417 124 1295 167 1177 −1 −2 −1 −2 −7 −42 −22 −88 −16 −47 −25 −65 164 32 67 65 36 94 34 181 326 −1 −2 − 154 GF 1223 71 1396 125 1246 172 1109 0 0 0 0 +2 0 −12 −67 −14 −46 −13 −53 190 66 67 57 57 92 41 280 328 0 0 -− 155 YT 1216 149 1233 157 1202 174 1124 0 0 +1 0 +4 0 +3 0 −3 −8 +2 −2 41 2 11 28 13 17 11 55 59 +1 0 +− 155 YT 1216 149 1233 157 1202 174 1124 0 0 +1 0 +4 0 +3 0 −2 −8 +2 −2 41 2 11 28 13 17 11 55 59 +1 0 − 156 TM 1209 67 1547 117 1358 161 1205 0 0 −1 −8 −4 −42 +4 +4 −23 −82 −23 −83 187 42 76 69 71 82 34 288 281 −1 −8 − 157 CG 1207 33 1690 83 1470 159 1207 0 0 +2 0 −1 −16 −8 −61 −40 −156 −61 −248 474 180 188 106 173 186 115 679 662 +2 0 − 158 ER 1201 142 1246 164 1158 185 1056 +1 0 +6 +62 +8 +62 +8 +62 +15 +62 +27 +127 86 20 28 38 17 50 19 61 137 +6 +62 -− 159 LS 1198 125 1325 151 1179 179 1102 −1 −7 −3 −18 −1 −24 −2 −29 −3 −10 −3 −21 354 113 147 94 70 180 104 280 580 −3 −18 +− 159 LS 1198 125 1325 151 1179 179 1102 −1 −7 −3 −18 −1 −24 −2 −29 −10 −43 −3 −21 354 113 147 94 70 180 104 280 580 −3 −18 − 160 YE 1195 109 1367 144 1212 178 1078 +2 +44 +3 +44 +12 +74 +12 +93 +5 +25 +3 −12 295 56 87 152 66 173 56 304 573 +3 +44 − 161 PH 1179 27 1355 135 1070 220 681 0 +11 +1 +23 +8 +46 +22 +143 +11 +38 −19 −89 396 110 126 160 99 237 60 431 1020 +1 +23 − 162 TI 1177 49 1591 103 1386 171 1137 −2 0 −2 0 −1 0 +1 −10 −2 −16 −10 −53 254 58 71 125 136 82 36 693 383 −2 0 -− 163 SW 1148 119 1347 153 1168 181 1062 0 0 −5 −62 −4 −68 −7 −80 −2 −37 −44 −199 324 123 131 70 71 158 95 297 542 −5 −62 +− 163 SW 1148 119 1347 153 1168 181 1062 0 0 −5 −62 −4 −68 −7 −80 −2 −33 −44 −199 324 123 131 70 71 158 95 297 542 −5 −62 − 164 VC 1141 58 1501 110 1322 185 1030 0 0 −3 −30 +3 +4 +15 +75 +9 +2 +14 +29 365 138 135 92 131 150 84 566 648 −3 −30 − 165 PG 1135 136 1223 165 1091 188 1017 +3 0 +1 0 +9 +31 +12 +56 +5 −15 +8 −1 165 30 43 92 54 80 31 352 356 +1 0 − 165 PR 1135 100 1167 169 937 203 829 0 −3 +2 +1 +3 +1 0 −13 +19 +77 +19 +50 196 73 67 56 46 121 29 229 491 +2 +1 @@ -169,14 +169,14 @@ − 169 BM 1117 91 1432 128 1284 177 1083 +1 −2 +3 −3 −7 −51 0 −7 −23 −131 −5 −89 236 106 82 48 79 112 45 375 417 +3 −3 − 169 VU 1117 111 1263 156 1104 191 960 +2 +4 +5 +4 +12 +72 +4 +26 −6 −54 −3 −70 227 54 51 122 71 124 32 404 485 +5 +4 − 171 SS 1109 163 1155 178 1088 188 1018 +1 0 −4 −25 −2 −24 −3 −18 +11 +30 +5 −14 81 18 29 34 13 52 16 55 145 −4 −25 -− 172 FJ 1104 78 1466 129 1246 175 1069 +1 −4 +3 −4 −18 −122 −11 −92 −21 −123 −23 −130 288 106 65 117 126 106 56 647 463 +3 −4 -− 173 HK 1101 60 1534 123 1288 180 1058 −4 −20 −8 −35 −9 −47 +5 +30 −6 −61 −7 −86 514 183 152 179 178 234 102 816 873 −8 −35 +− 172 FJ 1104 78 1466 129 1246 175 1069 +1 −4 +3 −4 −18 −122 −11 −92 −20 −123 −23 −130 288 106 65 117 126 106 56 647 463 +3 −4 +− 173 HK 1101 60 1534 123 1288 180 1058 −4 −20 −8 −35 −9 −46 +5 +30 −6 −61 −7 −86 514 183 152 179 178 234 102 816 873 −8 −35 − 174 GD 1098 46 1548 102 1370 186 1060 0 −1 −3 −24 −1 −8 0 +15 −5 −56 +3 −19 310 115 116 79 103 129 78 490 561 −3 −24 − 175 AD 1080 169 1130 182 1050 195 952 0 +3 +4 −3 +2 +14 −4 −30 +11 +52 +18 +120 231 92 106 33 15 184 32 77 543 +4 −3 − 176 MU 1073 36 1634 108 1334 195 930 0 0 +1 −18 −1 −22 +7 +37 +13 +66 +4 −30 359 124 151 84 100 174 85 450 572 +1 −18 − 176 TD 1073 107 1318 136 1243 176 1073 0 0 −4 −47 −13 −78 −12 −80 −14 −107 −30 −180 182 45 59 78 35 105 42 165 340 −4 −47 − 176 BZ 1073 61 1201 139 1114 183 1034 0 0 0 −32 +2 +15 +6 +31 +1 −52 −10 −114 129 44 44 41 32 74 23 138 245 0 −32 -− 179 SB 1054 110 1378 147 1183 179 1041 0 0 −1 −36 −8 −72 −25 −183 −11 −103 −7 −85 223 59 62 102 94 92 37 480 428 −1 −36 +− 179 SB 1054 110 1378 147 1183 179 1041 0 0 −1 −36 −8 −72 −26 −183 −11 −103 −7 −85 223 59 62 102 94 92 37 480 428 −1 −36 − 180 MF 1043 155 1120 187 983 214 755 0 0 +6 +39 +2 −1 +14 +102 +26 +190 +26 +178 86 18 36 32 33 44 9 136 191 +6 +39 − 181 ST 1035 153 1116 174 1056 190 985 0 0 −1 −21 +3 −3 0 −11 +2 −29 0 −66 82 24 36 22 11 60 11 59 213 −1 −21 − 182 KN 1030 88 1388 138 1174 186 1002 0 0 +2 +24 +3 +4 −6 −51 −24 −167 −52 −269 252 121 80 51 104 101 47 431 396 +2 +24 @@ -184,11 +184,11 @@ − 184 JS 1005 184 1005 188 1004 190 995 0 0 +1 0 +2 0 +3 0 +6 0 +3 0 2 0 0 2 1 0 1 4 3 +1 0 − 185 LC 1004 67 1353 126 1240 192 978 0 0 −2 −5 −2 −35 −10 −78 0 −27 −3 −93 264 89 108 67 90 132 42 361 485 −2 −5 − 186 EH 996 186 996 189 996 192 996 +1 0 +1 0 +1 0 +2 0 +5 0 +2 0 1 0 1 0 0 1 0 0 6 +1 0 -− 187 MM 984 34 1675 124 1244 199 896 +1 +2 +5 +39 +3 +33 +10 +66 +1 −27 −1 −83 555 120 139 296 219 232 104 899 962 +5 +39 +− 187 MM 984 34 1676 124 1244 199 896 +1 +2 +5 +39 +3 +33 +10 +66 +1 −27 −1 −83 555 120 139 296 219 232 104 899 962 +5 +39 − 188 AW 979 51 1444 125 1198 204 880 +1 −1 +3 +29 +8 +61 +1 −12 +9 +69 +10 +63 208 83 81 44 52 112 44 298 471 +3 +29 − 188 SO 979 132 1218 166 1072 207 835 +2 0 +1 +18 +9 +68 +13 +84 +10 +71 +19 +135 150 10 48 92 15 112 23 78 375 +1 +18 − 190 SX 975 164 977 187 909 213 758 +1 0 0 +19 +3 +43 +14 +122 +23 +211 +14 +95 75 16 25 34 23 39 13 107 194 0 +19 -− 191 MS 971 116 1021 191 642 236 526 +1 0 −3 0 −3 0 −6 −43 +5 +32 +36 +327 74 15 26 33 18 48 8 76 235 −3 0 +− 191 MS 972 116 1022 191 642 236 526 +1 0 −3 0 −3 0 −6 −43 +5 +32 +36 +328 74 15 26 33 18 48 8 76 235 −3 0 − 192 AF 961 96 1166 167 919 210 778 −9 −50 −11 −74 −13 −96 −25 −169 −16 −174 −21 −192 168 8 67 93 38 92 38 153 340 −11 −74 − 193 GL 945 163 1035 185 974 197 945 0 0 −1 0 −2 0 −1 0 −1 −17 −2 −17 22 2 7 13 5 16 1 35 50 −1 0 − 194 BD 942 150 1115 181 980 210 796 +2 +10 0 +2 +5 +35 +2 +18 +13 +93 +8 +58 327 92 97 138 88 166 73 300 584 0 +2 @@ -200,12 +200,12 @@ − 200 AG 895 102 1319 145 1178 201 895 0 0 +1 0 −2 −14 −10 −92 −34 −268 −47 −333 285 116 101 68 95 136 54 394 491 +1 0 − 200 LI 895 143 1242 167 1113 201 895 −3 −9 0 −5 0 −10 −9 −72 −21 −197 −35 −297 259 115 125 19 19 208 32 104 726 0 −5 − 202 NP 893 167 1008 190 889 209 729 −1 0 −5 −26 −7 −33 −4 −12 −7 −48 −2 −11 295 74 91 130 68 174 53 247 665 −5 −26 -− 203 KH 871 93 1390 157 1058 221 677 +1 +27 0 +27 +4 +36 +2 +28 +5 +33 +8 +101 318 82 93 143 73 200 45 367 816 0 +27 +− 203 KH 871 93 1390 157 1058 221 677 +1 +27 0 +27 +3 +36 +2 +28 +5 +33 +8 +101 318 82 93 143 73 200 45 367 816 0 +27 − 204 SC 853 157 1123 182 987 205 842 −2 0 0 +11 −1 +2 −1 −6 −4 −54 −13 −109 190 51 58 81 26 131 33 144 425 0 +11 − 205 LK 836 77 1045 161 933 227 648 +2 +9 +5 +53 +5 +54 +13 +142 +21 +172 +8 +76 285 70 89 126 58 177 50 278 693 +5 +53 -− 206 SM 825 165 1015 195 917 212 770 0 −11 0 −8 −2 −20 +6 +52 +3 −2 −3 −58 228 110 110 8 3 213 12 44 895 0 −8 +− 206 SM 825 165 1015 195 917 212 770 −1 −11 0 −8 −2 −20 +6 +52 +3 −2 −3 −58 228 110 110 8 3 213 12 44 895 0 −8 − 207 TW 822 15 1767 144 1169 213 760 +1 0 −5 −44 −5 −59 −7 −78 −9 −86 +1 +15 339 96 109 134 96 191 52 465 788 −5 −44 -− 208 BQ 817 81 1130 150 1036 208 817 −3 −20 0 −6 −2 −19 −2 −9 −15 −141 −19 −173 104 19 52 33 24 68 12 116 257 0 −6 +− 208 BQ 816 81 1130 150 1036 208 816 −3 −20 0 −6 −2 −19 −2 −10 −15 −142 −19 −174 104 19 52 33 24 68 12 116 257 0 −6 − 209 MV 801 162 1174 191 885 210 712 −6 −47 −4 −40 −4 −41 −7 −82 −15 −152 −12 −135 241 65 82 94 67 135 39 289 538 −4 −40 − 210 KY 800 153 1140 183 1000 210 795 0 −5 −1 −6 −2 −20 −2 −24 −7 −91 −14 −146 129 60 39 30 26 78 25 125 313 −1 −6 − 211 HG 782 208 805 211 783 213 773 0 0 0 0 −1 0 0 0 −1 +9 −2 −13 4 0 0 4 1 2 1 8 10 0 0 diff --git a/.claude/skills/prediccion-mundial-2026/data/backtest-matches.json b/.claude/skills/prediccion-mundial-2026/data/backtest-matches.json index 5d43f91..9614453 100644 --- a/.claude/skills/prediccion-mundial-2026/data/backtest-matches.json +++ b/.claude/skills/prediccion-mundial-2026/data/backtest-matches.json @@ -53,8 +53,8 @@ "exact": true, "predScore": "1-1", "p1": 0.5767237828343034, - "pX": 0.25832693095676523, - "p2": 0.1649492862089314 + "pX": 0.2583269309567652, + "p2": 0.16494928620893137 }, { "group": "A", @@ -168,7 +168,7 @@ "predScore": "2-0", "p1": 0.6397348695901068, "pX": 0.2371109633580704, - "p2": 0.1231541670518227 + "p2": 0.12315416705182271 }, { "group": "B", @@ -1344,7 +1344,7 @@ "hit": true, "exact": true, "predScore": "0-2", - "p1": 0.12196219514229964, + "p1": 0.12196219514229965, "pX": 0.23639331540889114, "p2": 0.6416444894488093 }, diff --git a/.claude/skills/prediccion-mundial-2026/data/elo-mundial-2026.json b/.claude/skills/prediccion-mundial-2026/data/elo-mundial-2026.json index 0ecc9a2..7bfefcd 100644 --- a/.claude/skills/prediccion-mundial-2026/data/elo-mundial-2026.json +++ b/.claude/skills/prediccion-mundial-2026/data/elo-mundial-2026.json @@ -474,7 +474,7 @@ "2026": 13 }, "in_index": true, - "elo_live": 1882, + "elo_live": 1881, "rank_live": 16, "en_name": "Croatia" }, diff --git a/README.md b/README.md index 48de703..cee1d85 100644 --- a/README.md +++ b/README.md @@ -22,16 +22,16 @@ _Last auto-update: **2026-06-28**. Backtest: the model gets the 1X2 right in **6 **🏆 Projected champion (most-likely bracket): Spain.** Projected final: **Spain 2-1 Argentina**. -**Most likely finalists (Monte Carlo):** Argentina vs Spain (16.5% of simulations). +**Most likely finalists (Monte Carlo):** Argentina vs Spain (16.4% of simulations). | Team | Reaches final | Champion | |---|---|---| | Argentina | 44.4% | 25.5% | | Spain | 37.1% | 23.4% | -| France | 34.2% | 20.3% | +| France | 34.2% | 20.4% | | England | 19.7% | 9.3% | | Colombia | 10.4% | 3.8% | -| Belgium | 6.5% | 2.3% | +| Belgium | 6.6% | 2.3% | Full detail (our group-stage predictions vs the results, the match-by-match bracket) in [**predicciones/PREDICCIONES.md**](predicciones/PREDICCIONES.md). diff --git a/predicciones/PREDICCIONES.md b/predicciones/PREDICCIONES.md index cfba193..20ebce2 100644 --- a/predicciones/PREDICCIONES.md +++ b/predicciones/PREDICCIONES.md @@ -256,24 +256,24 @@ Probability of reaching the Round of 32 (top 2 per group + 8 best third-placed t From 50,000 simulations of the whole tournament (official bracket, live Elo). -**Most likely final: Argentina vs Spain** (occurs in 16.5% of simulations). +**Most likely final: Argentina vs Spain** (occurs in 16.4% of simulations). | Team | Reaches final | Champion | |---|---|---| | Argentina | 44.4% | 25.5% | | Spain | 37.1% | 23.4% | -| France | 34.2% | 20.3% | +| France | 34.2% | 20.4% | | England | 19.7% | 9.3% | | Colombia | 10.4% | 3.8% | -| Belgium | 6.5% | 2.3% | +| Belgium | 6.6% | 2.3% | | Brazil | 6.5% | 2.3% | -| Norway | 6.5% | 2.2% | +| Norway | 6.5% | 2.3% | | Netherlands | 6.1% | 2.2% | | Portugal | 5.9% | 2.3% | **Most likely finals:** -- Argentina vs Spain — 16.5% +- Argentina vs Spain — 16.4% - Argentina vs France — 15.2% - England vs Spain — 7.3% - England vs France — 6.8% diff --git a/predicciones/simulacion.json b/predicciones/simulacion.json index 8f11b54..8810997 100644 --- a/predicciones/simulacion.json +++ b/predicciones/simulacion.json @@ -653,8 +653,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 37.144, - "champ": 23.366 + "final": 37.116, + "champ": 23.35 }, { "iso": "ARG", @@ -664,8 +664,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 44.412, - "champ": 25.546 + "final": 44.38, + "champ": 25.498 }, { "iso": "FRA", @@ -675,8 +675,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 34.212, - "champ": 20.338 + "final": 34.208, + "champ": 20.352 }, { "iso": "GBR", @@ -687,7 +687,7 @@ "p2": 0, "p3": 0, "final": 19.732, - "champ": 9.314 + "champ": 9.326 }, { "iso": "BRA", @@ -697,8 +697,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 6.538, - "champ": 2.336 + "final": 6.542, + "champ": 2.346 }, { "iso": "PRT", @@ -708,8 +708,8 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 5.854, - "champ": 2.312 + "final": 5.872, + "champ": 2.31 }, { "iso": "COL", @@ -719,8 +719,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 10.43, - "champ": 3.836 + "final": 10.428, + "champ": 3.84 }, { "iso": "NLD", @@ -730,8 +730,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 6.142, - "champ": 2.222 + "final": 6.134, + "champ": 2.228 }, { "iso": "ECU", @@ -741,8 +741,8 @@ "p1": 0, "p2": 0, "p3": 100, - "final": 1.078, - "champ": 0.258 + "final": 1.072, + "champ": 0.252 }, { "iso": "DEU", @@ -752,8 +752,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 2.446, - "champ": 0.714 + "final": 2.45, + "champ": 0.718 }, { "iso": "NOR", @@ -763,8 +763,8 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 6.49, - "champ": 2.232 + "final": 6.522, + "champ": 2.252 }, { "iso": "HRV", @@ -774,8 +774,8 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 1.076, - "champ": 0.29 + "final": 1.068, + "champ": 0.288 }, { "iso": "JPN", @@ -785,8 +785,8 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 1.414, - "champ": 0.348 + "final": 1.412, + "champ": 0.354 }, { "iso": "BEL", @@ -796,8 +796,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 6.546, - "champ": 2.274 + "final": 6.552, + "champ": 2.302 }, { "iso": "CHE", @@ -807,8 +807,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 4.398, - "champ": 1.452 + "final": 4.39, + "champ": 1.45 }, { "iso": "MEX", @@ -818,8 +818,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 4.416, - "champ": 1.504 + "final": 4.42, + "champ": 1.486 }, { "iso": "SEN", @@ -829,8 +829,8 @@ "p1": 0, "p2": 0, "p3": 100, - "final": 0.744, - "champ": 0.146 + "final": 0.754, + "champ": 0.152 }, { "iso": "PRY", @@ -840,8 +840,8 @@ "p1": 0, "p2": 0, "p3": 100, - "final": 0.544, - "champ": 0.08 + "final": 0.546, + "champ": 0.082 }, { "iso": "AUT", @@ -851,7 +851,7 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 0.338, + "final": 0.336, "champ": 0.07 }, { @@ -862,8 +862,8 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 3.23, - "champ": 0.932 + "final": 3.216, + "champ": 0.908 }, { "iso": "CAN", @@ -873,8 +873,8 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 0.756, - "champ": 0.146 + "final": 0.764, + "champ": 0.15 }, { "iso": "AUS", @@ -884,8 +884,8 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 0.568, - "champ": 0.084 + "final": 0.572, + "champ": 0.086 }, { "iso": "DZA", @@ -895,7 +895,7 @@ "p1": 0, "p2": 0, "p3": 100, - "final": 0.18, + "final": 0.184, "champ": 0.018 }, { @@ -906,8 +906,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 0.864, - "champ": 0.13 + "final": 0.878, + "champ": 0.132 }, { "iso": "SWE", @@ -917,7 +917,7 @@ "p1": 0, "p2": 0, "p3": 100, - "final": 0.086, + "final": 0.09, "champ": 0.014 }, { @@ -928,8 +928,8 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 0.188, - "champ": 0.028 + "final": 0.19, + "champ": 0.026 }, { "iso": "CIV", @@ -939,7 +939,7 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 0.084, + "final": 0.082, "champ": 0.004 }, { @@ -950,7 +950,7 @@ "p1": 0, "p2": 0, "p3": 100, - "final": 0.064, + "final": 0.066, "champ": 0.006 }, { @@ -983,7 +983,7 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 0.004, + "final": 0.002, "champ": 0 }, { @@ -1007,8 +1007,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 44.412, - "champ": 25.546 + "final": 44.38, + "champ": 25.498 }, { "iso": "ESP", @@ -1018,8 +1018,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 37.144, - "champ": 23.366 + "final": 37.116, + "champ": 23.35 }, { "iso": "FRA", @@ -1029,8 +1029,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 34.212, - "champ": 20.338 + "final": 34.208, + "champ": 20.352 }, { "iso": "GBR", @@ -1041,7 +1041,7 @@ "p2": 0, "p3": 0, "final": 19.732, - "champ": 9.314 + "champ": 9.326 }, { "iso": "COL", @@ -1051,8 +1051,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 10.43, - "champ": 3.836 + "final": 10.428, + "champ": 3.84 }, { "iso": "BEL", @@ -1062,8 +1062,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 6.546, - "champ": 2.274 + "final": 6.552, + "champ": 2.302 }, { "iso": "BRA", @@ -1073,8 +1073,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 6.538, - "champ": 2.336 + "final": 6.542, + "champ": 2.346 }, { "iso": "NOR", @@ -1084,8 +1084,8 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 6.49, - "champ": 2.232 + "final": 6.522, + "champ": 2.252 }, { "iso": "NLD", @@ -1095,8 +1095,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 6.142, - "champ": 2.222 + "final": 6.134, + "champ": 2.228 }, { "iso": "PRT", @@ -1106,8 +1106,8 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 5.854, - "champ": 2.312 + "final": 5.872, + "champ": 2.31 }, { "iso": "MEX", @@ -1117,8 +1117,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 4.416, - "champ": 1.504 + "final": 4.42, + "champ": 1.486 }, { "iso": "CHE", @@ -1128,34 +1128,34 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 4.398, - "champ": 1.452 + "final": 4.39, + "champ": 1.45 } ], "final_mas_probable": [ { "final": "Argentina vs Spain", - "prob": 16.464 + "prob": 16.448 }, { "final": "Argentina vs France", - "prob": 15.216 + "prob": 15.198 }, { "final": "England vs Spain", - "prob": 7.338 + "prob": 7.336 }, { "final": "England vs France", - "prob": 6.79 + "prob": 6.794 }, { "final": "Colombia vs Spain", - "prob": 3.946 + "prob": 3.93 }, { "final": "Colombia vs France", - "prob": 3.482 + "prob": 3.492 } ], "prediccion_finalistas": "Argentina vs Spain" From ec5c810df1a21b5f849d11ff3b663ff4452672d6 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 8 Jul 2026 23:53:31 +0000 Subject: [PATCH 2/2] Record real Round-of-32 and Round-of-16 results; predict quarter-finals The knockout stage through the Round of 16 has been played. Add the real results in a new data/knockout-resultados-2026.json (24 ties, verified against the official bracket topology and the final group tables) and make the projection and Monte Carlo condition on them: - proyeccion.mjs: real winners advance, so the projected bracket now starts from the eight real quarter-finalists (France, Morocco, Spain, Belgium, Norway, England, Argentina, Switzerland). Each played tie also records the model's pre-match pick and whether it hit. - simular.mjs: fixed rounds are no longer sampled, so finalist/champion probabilities reflect the real bracket (eliminated teams drop to 0%). - genera-predicciones.mjs: new "knockout so far: predictions vs results" section (19/24 correct) and a projected-rest-of-bracket section from the quarter-finals; finalist table lists only teams still alive. Projected quarter-finals: France-Morocco, Spain-Belgium, Norway-England, Argentina-Switzerland. Projected champion: Spain. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01GmtcBGn7eopeUJMJ41KC9S --- .../skills/prediccion-mundial-2026/SKILL.md | 8 +- .../data/knockout-resultados-2026.json | 37 +++ .../genera-predicciones.mjs | 69 ++++-- .../prediccion-mundial-2026/proyeccion.mjs | 38 ++- .../prediccion-mundial-2026/simular.mjs | 15 +- README.es.md | 7 +- README.md | 25 +- predicciones/PREDICCIONES.md | 109 +++++---- predicciones/simulacion.json | 224 +++++++++--------- 9 files changed, 336 insertions(+), 196 deletions(-) create mode 100644 .claude/skills/prediccion-mundial-2026/data/knockout-resultados-2026.json diff --git a/.claude/skills/prediccion-mundial-2026/SKILL.md b/.claude/skills/prediccion-mundial-2026/SKILL.md index 766431a..e789d2f 100644 --- a/.claude/skills/prediccion-mundial-2026/SKILL.md +++ b/.claude/skills/prediccion-mundial-2026/SKILL.md @@ -17,6 +17,10 @@ World Cup, using the **Elo rating** of each team plus a **recent-form** adjustme - `data/grupos-resultados-2026.json` — the 12 groups, played results and the remaining fixtures. - `data/knockout-2026.json` — official Round-of-32 to Final bracket structure. +- `data/knockout-resultados-2026.json` — real results of the knockout rounds already + played (Round of 32, Round of 16, …). When present, the projection and the Monte + Carlo condition on them: the real winners advance and only the unplayed rounds are + predicted/simulated. Add new results here as each round finishes. - `data/elo-series-completo-1901-2026.js` — full historical series (195 teams). **Source:** World Football Elo Ratings (eloratings.net), via the El Atlas chart. @@ -95,4 +99,6 @@ recent results via `--formA/--formB`. Tested: it does not improve accuracy. ## Updating the data `bash scripts/actualizar.sh` (from repo root) refreshes the live Elo and regenerates -everything. New match results go into `data/grupos-resultados-2026.json`. +everything. New group-stage results go into `data/grupos-resultados-2026.json`; new +knockout results go into `data/knockout-resultados-2026.json` (keyed by bracket match +id, e.g. `M97`). diff --git a/.claude/skills/prediccion-mundial-2026/data/knockout-resultados-2026.json b/.claude/skills/prediccion-mundial-2026/data/knockout-resultados-2026.json new file mode 100644 index 0000000..ed0a9ad --- /dev/null +++ b/.claude/skills/prediccion-mundial-2026/data/knockout-resultados-2026.json @@ -0,0 +1,37 @@ +{ + "meta": { + "descripcion": "Resultados REALES de la fase eliminatoria del Mundial 2026 (32avos y octavos jugados).", + "fuente": "Recopilado y cruzado multi-fuente (Yahoo Sports, Al Jazeera, Olympics.com, Wikipedia). Verificado contra la topologia oficial del bracket (knockout-2026.json) y las tablas finales de grupos.", + "as_of": "2026-07-08", + "generado": "2026-07-08", + "nota": "home/away = orientacion real del partido; 'pens' = tanda de penales [local, visitante] cuando hubo empate en el tiempo reglamentario; 'winner' = ISO3 del equipo que avanzo. Cuartos, semis y final todavia no se jugaron.", + "rondas_jugadas": ["Round of 32", "Round of 16"] + }, + "played": [ + { "id": "M73", "round": "Round of 32", "home": "CAN", "away": "ZAF", "home_goals": 1, "away_goals": 0, "winner": "CAN" }, + { "id": "M74", "round": "Round of 32", "home": "PRY", "away": "DEU", "home_goals": 1, "away_goals": 1, "pens": [4, 3], "winner": "PRY" }, + { "id": "M75", "round": "Round of 32", "home": "MAR", "away": "NLD", "home_goals": 1, "away_goals": 1, "pens": [3, 2], "winner": "MAR" }, + { "id": "M76", "round": "Round of 32", "home": "BRA", "away": "JPN", "home_goals": 2, "away_goals": 1, "winner": "BRA" }, + { "id": "M77", "round": "Round of 32", "home": "FRA", "away": "SWE", "home_goals": 3, "away_goals": 0, "winner": "FRA" }, + { "id": "M78", "round": "Round of 32", "home": "NOR", "away": "CIV", "home_goals": 2, "away_goals": 1, "winner": "NOR" }, + { "id": "M79", "round": "Round of 32", "home": "MEX", "away": "ECU", "home_goals": 2, "away_goals": 0, "winner": "MEX" }, + { "id": "M80", "round": "Round of 32", "home": "GBR", "away": "COD", "home_goals": 2, "away_goals": 1, "winner": "GBR" }, + { "id": "M81", "round": "Round of 32", "home": "USA", "away": "BIH", "home_goals": 2, "away_goals": 0, "winner": "USA" }, + { "id": "M82", "round": "Round of 32", "home": "BEL", "away": "SEN", "home_goals": 3, "away_goals": 2, "winner": "BEL" }, + { "id": "M83", "round": "Round of 32", "home": "PRT", "away": "HRV", "home_goals": 2, "away_goals": 1, "winner": "PRT" }, + { "id": "M84", "round": "Round of 32", "home": "ESP", "away": "AUT", "home_goals": 3, "away_goals": 0, "winner": "ESP" }, + { "id": "M85", "round": "Round of 32", "home": "CHE", "away": "DZA", "home_goals": 2, "away_goals": 0, "winner": "CHE" }, + { "id": "M86", "round": "Round of 32", "home": "ARG", "away": "CPV", "home_goals": 3, "away_goals": 2, "winner": "ARG" }, + { "id": "M87", "round": "Round of 32", "home": "COL", "away": "GHA", "home_goals": 1, "away_goals": 0, "winner": "COL" }, + { "id": "M88", "round": "Round of 32", "home": "EGY", "away": "AUS", "home_goals": 1, "away_goals": 1, "pens": [4, 2], "winner": "EGY" }, + + { "id": "M89", "round": "Round of 16", "home": "FRA", "away": "PRY", "home_goals": 1, "away_goals": 0, "winner": "FRA" }, + { "id": "M90", "round": "Round of 16", "home": "MAR", "away": "CAN", "home_goals": 3, "away_goals": 0, "winner": "MAR" }, + { "id": "M91", "round": "Round of 16", "home": "NOR", "away": "BRA", "home_goals": 2, "away_goals": 1, "winner": "NOR" }, + { "id": "M92", "round": "Round of 16", "home": "GBR", "away": "MEX", "home_goals": 3, "away_goals": 2, "winner": "GBR" }, + { "id": "M93", "round": "Round of 16", "home": "ESP", "away": "PRT", "home_goals": 1, "away_goals": 0, "winner": "ESP" }, + { "id": "M94", "round": "Round of 16", "home": "BEL", "away": "USA", "home_goals": 4, "away_goals": 1, "winner": "BEL" }, + { "id": "M95", "round": "Round of 16", "home": "ARG", "away": "EGY", "home_goals": 3, "away_goals": 2, "winner": "ARG" }, + { "id": "M96", "round": "Round of 16", "home": "CHE", "away": "COL", "home_goals": 0, "away_goals": 0, "pens": [4, 3], "winner": "CHE" } + ] +} diff --git a/.claude/skills/prediccion-mundial-2026/genera-predicciones.mjs b/.claude/skills/prediccion-mundial-2026/genera-predicciones.mjs index a1a7f6e..ead1dfc 100755 --- a/.claude/skills/prediccion-mundial-2026/genera-predicciones.mjs +++ b/.claude/skills/prediccion-mundial-2026/genera-predicciones.mjs @@ -30,7 +30,7 @@ const eloOf = (iso) => byIso[iso].elo_live ?? byIso[iso].elo_2026; const en = (iso) => byIso[iso].en_name ?? byIso[iso].name; const pct = (x) => x.toFixed(1) + "%"; -const date = fix.meta.generado; +const date = proj.koMeta?.as_of ?? fix.meta.generado; // Predicted scoreline + pick for an upcoming match (live Elo). function predRow(homeIso, awayIso) { @@ -89,23 +89,60 @@ if (fix.remaining_fixtures.length === 0 && existsSync(btMatchesPath)) { } } -// 2) Projected knockout bracket (match by match) -md += `## 2) Projected knockout bracket (match by match)\n\n`; const groupsDone = fix.remaining_fixtures.length === 0; -md += `Single most-likely path: ${groupsDone ? "the **final** group standings" : "real group results + the most-likely score for the remaining group games"} `; -md += `${groupsDone ? "set the bracket" : "decide the standings"}; then every knockout tie is predicted with a decisive `; -md += `score and a winner (in reality many ties go to extra time/penalties; "(tight)" marks the `; -md += `near coin-flips).\n\n`; +const realTies = proj.ties.filter((t) => t.real); +const predTies = proj.ties.filter((t) => !t.real); + +// 2) Knockout stage so far: our predictions vs the real results +let secNum = 2; +if (realTies.length) { + const koHits = realTies.filter((t) => t.hit).length; + md += `## ${secNum}) Knockout stage so far: our predictions vs the results\n\n`; + md += `The rounds already played are shown with their **real result** and the model's `; + md += `pre-match **pick** (favourite by live Elo; knockout ties have no draw). The **Hit** `; + md += `column marks where the pick matched who actually advanced. Penalty shootouts are noted `; + md += `as _(pens x-y)_.\n\n`; + md += `**Scoreboard: the model called ${koHits} of ${realTies.length} knockout ties right `; + md += `(${((100 * koHits) / realTies.length).toFixed(1)}%)** so far. ✓ = correct, ✗ = miss.\n\n`; + let cr = ""; + for (const t of realTies) { + if (t.round !== cr) { + md += `\n### ${t.round}\n\n`; + md += `| Match | Result | Advanced | Our pick | Hit |\n|---|---|---|---|---|\n`; + cr = t.round; + } + const score = `${t.score}${t.pens ? ` (pens ${t.pens})` : ""}`; + md += `| ${t.home} vs ${t.away} | **${score}** | ${t.winner} | ${t.pick} | ${t.hit ? "✓" : "✗"} |\n`; + } + md += `\n`; + secNum++; +} + +// 3) Projected rest of the bracket (match by match) +const projTitle = realTies.length ? "Projected rest of the bracket (from the quarter-finals)" : "Projected knockout bracket (match by match)"; +md += `## ${secNum}) ${projTitle}\n\n`; +if (realTies.length) { + md += `Single most-likely path from the **eight real quarter-finalists**: every remaining tie is `; + md += `predicted with live Elo (decisive score + winner; in reality many go to extra time/penalties, `; + md += `"(tight)" marks the near coin-flips).\n\n`; +} else { + md += `Single most-likely path: ${groupsDone ? "the **final** group standings" : "real group results + the most-likely score for the remaining group games"} `; + md += `${groupsDone ? "set the bracket" : "decide the standings"}; then every knockout tie is predicted with a decisive `; + md += `score and a winner (in reality many ties go to extra time/penalties; "(tight)" marks the `; + md += `near coin-flips).\n\n`; +} let curRound = ""; -for (const t of proj.ties) { +for (const t of predTies) { if (t.round !== curRound) { md += `\n### ${t.round}\n\n`; curRound = t.round; } md += `- **${t.home} ${t.score} ${t.away}** → advances **${t.winner}**${t.tight ? " _(tight)_" : ""}\n`; } md += `\n### 🏆 Projected champion: **${proj.champion}**\n\n`; md += `Projected final: ${proj.final.home} ${proj.final.score} ${proj.final.away} (winner ${proj.final.winner}, without the actual result).\n\n`; +secNum++; -// 3) Who advances (Monte Carlo probabilities) -md += `## 3) Who advances? Group probabilities\n\n`; +// Who advances (Monte Carlo probabilities) +md += `## ${secNum}) Who advances? Group probabilities\n\n`; +secNum++; md += `Probability of reaching the Round of 32 (top 2 per group + 8 best third-placed teams), `; md += `from ${sim.meta.simulaciones.toLocaleString("en")} Monte Carlo runs. ✓ = group already decided.\n\n`; for (const g of Object.keys(sim.grupos)) { @@ -118,13 +155,14 @@ for (const g of Object.keys(sim.grupos)) { md += `\n`; } -// 4) Finalist probabilities -md += `## 4) Finalist probabilities (Monte Carlo)\n\n`; -md += `From ${sim.meta.simulaciones.toLocaleString("en")} simulations of the whole tournament (official bracket, live Elo).\n\n`; +// Finalist probabilities +md += `## ${secNum}) Finalist probabilities (Monte Carlo)\n\n`; +md += `From ${sim.meta.simulaciones.toLocaleString("en")} simulations${realTies.length ? " conditioned on the real results so far (the eight real quarter-finalists)" : " of the whole tournament (official bracket, live Elo)"}.\n\n`; md += `**Most likely final: ${sim.prediccion_finalistas}** `; md += `(occurs in ${pct(sim.final_mas_probable[0].prob)} of simulations).\n\n`; md += `| Team | Reaches final | Champion |\n|---|---|---|\n`; -for (const r of sim.finalistas.slice(0, 10)) md += `| ${r.name} | ${pct(r.final)} | ${pct(r.champ)} |\n`; +const finalistRows = sim.finalistas.filter((r) => r.final > 0); +for (const r of (finalistRows.length ? finalistRows : sim.finalistas).slice(0, 10)) md += `| ${r.name} | ${pct(r.final)} | ${pct(r.champ)} |\n`; md += `\n**Most likely finals:**\n\n`; for (const p of sim.final_mas_probable) md += `- ${p.final} — ${pct(p.prob)}\n`; md += `\n> Finalist probabilities are low and tightly bunched: the model has NO strong favorite, `; @@ -142,7 +180,8 @@ resumen += `Projected final: **${proj.final.home} ${proj.final.score} ${proj.fin resumen += `**Most likely finalists (Monte Carlo):** ${sim.prediccion_finalistas} `; resumen += `(${pct(sim.final_mas_probable[0].prob)} of simulations).\n\n`; resumen += `| Team | Reaches final | Champion |\n|---|---|---|\n`; -for (const r of sim.finalistas.slice(0, 6)) resumen += `| ${r.name} | ${pct(r.final)} | ${pct(r.champ)} |\n`; +const resumenRows = sim.finalistas.filter((r) => r.final > 0); +for (const r of (resumenRows.length ? resumenRows : sim.finalistas).slice(0, 6)) resumen += `| ${r.name} | ${pct(r.final)} | ${pct(r.champ)} |\n`; resumen += `\nFull detail (${groupsDone ? "our group-stage predictions vs the results" : "every group, every upcoming match"}, the match-by-match bracket) in `; resumen += `[**predicciones/PREDICCIONES.md**](predicciones/PREDICCIONES.md).\n`; resumen += ``; diff --git a/.claude/skills/prediccion-mundial-2026/proyeccion.mjs b/.claude/skills/prediccion-mundial-2026/proyeccion.mjs index 71869f7..14db18e 100644 --- a/.claude/skills/prediccion-mundial-2026/proyeccion.mjs +++ b/.claude/skills/prediccion-mundial-2026/proyeccion.mjs @@ -7,7 +7,7 @@ * This is the "predicted bracket" (one concrete path). For probabilities * (who is LIKELY to reach the final), see simular.mjs (Monte Carlo). */ -import { readFileSync } from "node:fs"; +import { readFileSync, existsSync } from "node:fs"; import { fileURLToPath } from "node:url"; import { dirname, join } from "node:path"; import { loadData, predictFromEff, PARAMS } from "./model.mjs"; @@ -18,6 +18,16 @@ export function proyectar() { const elo = loadData(); const fix = JSON.parse(readFileSync(join(__dir, "data", "grupos-resultados-2026.json"), "utf8")); const bracket = JSON.parse(readFileSync(join(__dir, "data", "knockout-2026.json"), "utf8")); + // Resultados REALES de eliminatorias ya jugadas (opcional). Si existen, se usan + // para avanzar de ronda (la proyeccion continua desde los equipos verdaderos). + const koPath = join(__dir, "data", "knockout-resultados-2026.json"); + const koResults = {}; + let koMeta = null; + if (existsSync(koPath)) { + const ko = JSON.parse(readFileSync(koPath, "utf8")); + koMeta = ko.meta || null; + for (const r of ko.played || []) koResults[r.id] = r; + } const byIso = Object.fromEntries(elo.equipos.map((t) => [t.iso3, t])); const HOSTS = new Set(["MEX", "CAN", "USA"]); const ha = (iso) => (HOSTS.has(iso) ? PARAMS.HOME_ADV : 0); @@ -114,10 +124,32 @@ export function proyectar() { const home = /^M\d+$/.test(m.home) ? winners[m.home] : resolveSlot(m.home); const away = /^M\d+$/.test(m.away) ? winners[m.away] : resolveSlot(m.away); if (home == null || away == null) { winners[m.id] = home || away; continue; } + + // Partido ya jugado: usar resultado REAL y comparar con lo que el modelo + // habria predicho (pick pre-partido con Elo en vivo). + const res = koResults[m.id]; + if (res) { + const real = new Set([res.home, res.away]); + if (!real.has(home) || !real.has(away)) { + throw new Error(`Resultado real de ${m.id} (${res.home} vs ${res.away}) no coincide con el bracket (${home} vs ${away}).`); + } + winners[m.id] = res.winner; + const pick = predKO(res.home, res.away).winner; // favorito del modelo + ties.push({ + round: roundNames[ri], id: m.id, real: true, + home: name(res.home), away: name(res.away), + score: `${res.home_goals}-${res.away_goals}`, + pens: res.pens ? `${res.pens[0]}-${res.pens[1]}` : null, + winner: name(res.winner), + pick: name(pick), hit: pick === res.winner, + }); + continue; + } + const r = predKO(home, away); winners[m.id] = r.winner; ties.push({ - round: roundNames[ri], id: m.id, + round: roundNames[ri], id: m.id, real: false, home: name(home), away: name(away), score: `${r.a}-${r.b}`, tight: r.tight, winner: name(r.winner), @@ -133,5 +165,5 @@ export function proyectar() { equipos: tables[g].map((t, i) => ({ pos: i + 1, name: t.name, pts: t.pts, gd: t.gd })), }; - return { standings, projectedGroupMatches, ties, roundNames, final: finalTie, champion }; + return { standings, projectedGroupMatches, ties, roundNames, final: finalTie, champion, koMeta }; } diff --git a/.claude/skills/prediccion-mundial-2026/simular.mjs b/.claude/skills/prediccion-mundial-2026/simular.mjs index 9cdebdd..aeb68c3 100755 --- a/.claude/skills/prediccion-mundial-2026/simular.mjs +++ b/.claude/skills/prediccion-mundial-2026/simular.mjs @@ -12,7 +12,7 @@ * * Usa elo_live (eloratings.net) para los partidos futuros. Heurística orientativa. */ -import { readFileSync, writeFileSync, mkdirSync } from "node:fs"; +import { readFileSync, writeFileSync, mkdirSync, existsSync } from "node:fs"; import { fileURLToPath } from "node:url"; import { dirname, join } from "node:path"; import { loadData, predictFromEff, autoForm, PARAMS } from "./model.mjs"; @@ -22,6 +22,15 @@ const ROOT = join(__dir, "..", "..", ".."); const elo = loadData(); const fix = JSON.parse(readFileSync(join(__dir, "data", "grupos-resultados-2026.json"), "utf8")); const bracket = JSON.parse(readFileSync(join(__dir, "data", "knockout-2026.json"), "utf8")); +// Resultados REALES de eliminatorias ya jugadas: si existen, la simulacion se +// condiciona a ellos (los ganadores reales avanzan; solo se muestrean las rondas +// aun no jugadas), de modo que las probabilidades reflejen el bracket verdadero. +const KO_RESULTS = (() => { + const p = join(__dir, "data", "knockout-resultados-2026.json"); + if (!existsSync(p)) return {}; + const ko = JSON.parse(readFileSync(p, "utf8")); + return Object.fromEntries((ko.played || []).map((r) => [r.id, r.winner])); +})(); const byIso = Object.fromEntries(elo.equipos.map((t) => [t.iso3, t])); const HOSTS = new Set(["MEX", "CAN", "USA"]); const ha = (iso) => (HOSTS.has(iso) ? PARAMS.HOME_ADV : 0); @@ -161,8 +170,10 @@ function simulate(rnd) { for (const m of round) { const a = winnerOf(m.home, rnd), b = winnerOf(m.away, rnd); if (a == null || b == null) { alive[m.id] = a || b; continue; } - alive[m.id] = knockoutWinner(a, b, rnd); if (m.id === bracket.final_id) finalists = [a, b]; + // Ronda ya jugada: el ganador real avanza (no se muestrea). + if (KO_RESULTS[m.id]) { alive[m.id] = KO_RESULTS[m.id]; continue; } + alive[m.id] = knockoutWinner(a, b, rnd); } } return { tables, thirds, bestThirdGroups, finalists, champion: alive[bracket.final_id] }; diff --git a/README.es.md b/README.es.md index 5841fd8..98597da 100644 --- a/README.es.md +++ b/README.es.md @@ -82,8 +82,11 @@ bash scripts/actualizar.sh ``` Baja el Elo en vivo de eloratings.net, refresca todo y regenera las predicciones. -Un **GitHub Action** lo corre **todos los días**. Los resultados de partidos nuevos -se agregan a `data/grupos-resultados-2026.json` (único paso manual). +Un **GitHub Action** lo corre **todos los días**. Los resultados nuevos se agregan +a mano: los de fase de grupos en `data/grupos-resultados-2026.json` y los de +eliminatorias en `data/knockout-resultados-2026.json` (por id de llave del cuadro). +Cuando hay resultados de eliminatorias, la proyección y el Monte Carlo se condicionan +a ellos y solo predicen las rondas que faltan jugar. --- diff --git a/README.md b/README.md index cee1d85..6115da7 100644 --- a/README.md +++ b/README.md @@ -18,20 +18,20 @@ The point of the case study isn't "beating the World Cup": it's showing, with da ## 🔮 Current predictions -_Last auto-update: **2026-06-28**. Backtest: the model gets the 1X2 right in **61.1%** of 72 matches played (random ≈ 33%)._ +_Last auto-update: **2026-07-08**. Backtest: the model gets the 1X2 right in **61.1%** of 72 matches played (random ≈ 33%)._ **🏆 Projected champion (most-likely bracket): Spain.** Projected final: **Spain 2-1 Argentina**. -**Most likely finalists (Monte Carlo):** Argentina vs Spain (16.4% of simulations). +**Most likely finalists (Monte Carlo):** Argentina vs Spain (23.4% of simulations). | Team | Reaches final | Champion | |---|---|---| -| Argentina | 44.4% | 25.5% | -| Spain | 37.1% | 23.4% | -| France | 34.2% | 20.4% | -| England | 19.7% | 9.3% | -| Colombia | 10.4% | 3.8% | -| Belgium | 6.6% | 2.3% | +| Argentina | 49.9% | 26.3% | +| Spain | 46.5% | 28.4% | +| France | 39.8% | 22.4% | +| England | 29.3% | 12.4% | +| Norway | 11.7% | 3.5% | +| Switzerland | 9.2% | 2.6% | Full detail (our group-stage predictions vs the results, the match-by-match bracket) in [**predicciones/PREDICCIONES.md**](predicciones/PREDICCIONES.md). @@ -131,10 +131,13 @@ the predictions and this README. A **GitHub Action** ([`.github/workflows/actualizar.yml`](.github/workflows/actualizar.yml)) runs it **every day** during the World Cup and commits the changes. -**New match results:** add them to +**New match results:** group-stage games go in [`data/grupos-resultados-2026.json`](.claude/skills/prediccion-mundial-2026/data/grupos-resultados-2026.json) -(`played_matches` field), moving them out of `remaining_fixtures`. That's the only -manual step; the rest is automatic. +(`played_matches` field, moving them out of `remaining_fixtures`); knockout games go in +[`data/knockout-resultados-2026.json`](.claude/skills/prediccion-mundial-2026/data/knockout-resultados-2026.json) +(`played` field, keyed by bracket match id). When knockout results are present, the +projection and the Monte Carlo condition on them, predicting only the rounds not yet +played. That's the only manual step; the rest is automatic. --- diff --git a/predicciones/PREDICCIONES.md b/predicciones/PREDICCIONES.md index 20ebce2..2b45bc0 100644 --- a/predicciones/PREDICCIONES.md +++ b/predicciones/PREDICCIONES.md @@ -1,6 +1,6 @@ # Predictions · 2026 FIFA World Cup -> Auto-generated on 2026-06-28. **This is an experiment, do NOT bet.** See [DISCLAIMER](../DISCLAIMER.md). +> Auto-generated on 2026-07-08. **This is an experiment, do NOT bet.** See [DISCLAIMER](../DISCLAIMER.md). **Model reliability (backtest over 72 matches already played):** the model gets the 1X2 result right **61.1%** of the time (random ≈ 33%, "higher-Elo team wins" ≈ 61.1%). Exact scoreline 13.9%. Everything below inherits that margin of error, which **grows every round** (the finalist predictions are low-confidence). The most likely scoreline is shown for every match: useful as an "expected result", not a certainty. @@ -85,47 +85,58 @@ The group stage is over: all **72 matches** have been played. Each one was predi | 2026-06-27 | L | Panama vs England | **0-2** | England | 0-2 | ✓ | | 2026-06-27 | L | Croatia vs Ghana | **2-1** | Croatia | 2-0 | ✓ | -## 2) Projected knockout bracket (match by match) +## 2) Knockout stage so far: our predictions vs the results -Single most-likely path: the **final** group standings set the bracket; then every knockout tie is predicted with a decisive score and a winner (in reality many ties go to extra time/penalties; "(tight)" marks the near coin-flips). +The rounds already played are shown with their **real result** and the model's pre-match **pick** (favourite by live Elo; knockout ties have no draw). The **Hit** column marks where the pick matched who actually advanced. Penalty shootouts are noted as _(pens x-y)_. + +**Scoreboard: the model called 19 of 24 knockout ties right (79.2%)** so far. ✓ = correct, ✗ = miss. ### Round of 32 -- **South Africa 0-2 Canada** → advances **Canada** -- **Germany 2-1 Paraguay** → advances **Germany** -- **Netherlands 2-1 Morocco** → advances **Netherlands** -- **Brazil 2-1 Japan** → advances **Brazil** -- **France 2-0 Sweden** → advances **France** -- **Ivory Coast 0-2 Norway** → advances **Norway** -- **Mexico 1-0 Ecuador** → advances **Mexico** -- **England 2-0 DR Congo** → advances **England** -- **United States 1-0 Bosnia and Herzegovina** → advances **United States** -- **Belgium 1-0 Senegal** → advances **Belgium** -- **Portugal 1-0 Croatia** → advances **Portugal** -- **Spain 2-0 Austria** → advances **Spain** -- **Switzerland 1-0 Algeria** → advances **Switzerland** -- **Argentina 2-0 Cape Verde** → advances **Argentina** -- **Colombia 2-0 Ghana** → advances **Colombia** -- **Australia 2-1 Egypt** → advances **Australia** +| Match | Result | Advanced | Our pick | Hit | +|---|---|---|---|---| +| Canada vs South Africa | **1-0** | Canada | Canada | ✓ | +| Paraguay vs Germany | **1-1 (pens 4-3)** | Paraguay | Germany | ✗ | +| Morocco vs Netherlands | **1-1 (pens 3-2)** | Morocco | Netherlands | ✗ | +| Brazil vs Japan | **2-1** | Brazil | Brazil | ✓ | +| France vs Sweden | **3-0** | France | France | ✓ | +| Norway vs Ivory Coast | **2-1** | Norway | Norway | ✓ | +| Mexico vs Ecuador | **2-0** | Mexico | Mexico | ✓ | +| England vs DR Congo | **2-1** | England | England | ✓ | +| United States vs Bosnia and Herzegovina | **2-0** | United States | United States | ✓ | +| Belgium vs Senegal | **3-2** | Belgium | Belgium | ✓ | +| Portugal vs Croatia | **2-1** | Portugal | Portugal | ✓ | +| Spain vs Austria | **3-0** | Spain | Spain | ✓ | +| Switzerland vs Algeria | **2-0** | Switzerland | Switzerland | ✓ | +| Argentina vs Cape Verde | **3-2** | Argentina | Argentina | ✓ | +| Colombia vs Ghana | **1-0** | Colombia | Colombia | ✓ | +| Egypt vs Australia | **1-1 (pens 4-2)** | Egypt | Australia | ✗ | ### Round of 16 -- **Germany 0-2 France** → advances **France** -- **Canada 0-1 Netherlands** → advances **Netherlands** -- **Brazil 2-1 Norway** → advances **Brazil** _(tight)_ -- **Mexico 1-2 England** → advances **England** -- **Portugal 0-1 Spain** → advances **Spain** -- **United States 0-1 Belgium** → advances **Belgium** -- **Argentina 2-0 Australia** → advances **Argentina** -- **Switzerland 1-2 Colombia** → advances **Colombia** +| Match | Result | Advanced | Our pick | Hit | +|---|---|---|---|---| +| France vs Paraguay | **1-0** | France | France | ✓ | +| Morocco vs Canada | **3-0** | Morocco | Morocco | ✓ | +| Norway vs Brazil | **2-1** | Norway | Brazil | ✗ | +| England vs Mexico | **3-2** | England | England | ✓ | +| Spain vs Portugal | **1-0** | Spain | Spain | ✓ | +| Belgium vs United States | **4-1** | Belgium | Belgium | ✓ | +| Argentina vs Egypt | **3-2** | Argentina | Argentina | ✓ | +| Switzerland vs Colombia | **0-0 (pens 4-3)** | Switzerland | Colombia | ✗ | + +## 3) Projected rest of the bracket (from the quarter-finals) + +Single most-likely path from the **eight real quarter-finalists**: every remaining tie is predicted with live Elo (decisive score + winner; in reality many go to extra time/penalties, "(tight)" marks the near coin-flips). + ### Quarter-finals -- **France 1-0 Netherlands** → advances **France** +- **France 1-0 Morocco** → advances **France** - **Spain 1-0 Belgium** → advances **Spain** -- **Brazil 1-2 England** → advances **England** -- **Argentina 1-0 Colombia** → advances **Argentina** +- **Norway 1-2 England** → advances **England** +- **Argentina 1-0 Switzerland** → advances **Argentina** ### Semi-finals @@ -140,7 +151,7 @@ Single most-likely path: the **final** group standings set the bracket; then eve Projected final: Spain 2-1 Argentina (winner Spain, without the actual result). -## 3) Who advances? Group probabilities +## 4) Who advances? Group probabilities Probability of reaching the Round of 32 (top 2 per group + 8 best third-placed teams), from 50,000 Monte Carlo runs. ✓ = group already decided. @@ -252,32 +263,30 @@ Probability of reaching the Round of 32 (top 2 per group + 8 best third-placed t | 3 | Ghana | 3 | 4 | +0 | 100.0% | 0.0% | 0.0% | | 4 | Panama | 3 | 0 | -4 | 0.0% | 0.0% | 0.0% | -## 4) Finalist probabilities (Monte Carlo) +## 5) Finalist probabilities (Monte Carlo) -From 50,000 simulations of the whole tournament (official bracket, live Elo). +From 50,000 simulations conditioned on the real results so far (the eight real quarter-finalists). -**Most likely final: Argentina vs Spain** (occurs in 16.4% of simulations). +**Most likely final: Argentina vs Spain** (occurs in 23.4% of simulations). | Team | Reaches final | Champion | |---|---|---| -| Argentina | 44.4% | 25.5% | -| Spain | 37.1% | 23.4% | -| France | 34.2% | 20.4% | -| England | 19.7% | 9.3% | -| Colombia | 10.4% | 3.8% | -| Belgium | 6.6% | 2.3% | -| Brazil | 6.5% | 2.3% | -| Norway | 6.5% | 2.3% | -| Netherlands | 6.1% | 2.2% | -| Portugal | 5.9% | 2.3% | +| Argentina | 49.9% | 26.3% | +| Spain | 46.5% | 28.4% | +| France | 39.8% | 22.4% | +| England | 29.3% | 12.4% | +| Norway | 11.7% | 3.5% | +| Switzerland | 9.2% | 2.6% | +| Belgium | 7.9% | 2.7% | +| Morocco | 5.8% | 1.7% | **Most likely finals:** -- Argentina vs Spain — 16.4% -- Argentina vs France — 15.2% -- England vs Spain — 7.3% -- England vs France — 6.8% -- Colombia vs Spain — 3.9% -- Colombia vs France — 3.5% +- Argentina vs Spain — 23.4% +- Argentina vs France — 19.7% +- England vs Spain — 13.4% +- England vs France — 11.8% +- Norway vs Spain — 5.5% +- France vs Norway — 4.7% > Finalist probabilities are low and tightly bunched: the model has NO strong favorite, and the exact bracket pairings after the Round of 32 are the least certain part. Treat as indicative. diff --git a/predicciones/simulacion.json b/predicciones/simulacion.json index 8810997..d563946 100644 --- a/predicciones/simulacion.json +++ b/predicciones/simulacion.json @@ -653,8 +653,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 37.116, - "champ": 23.35 + "final": 46.512, + "champ": 28.436 }, { "iso": "ARG", @@ -664,8 +664,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 44.38, - "champ": 25.498 + "final": 49.85, + "champ": 26.264 }, { "iso": "FRA", @@ -675,8 +675,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 34.208, - "champ": 20.352 + "final": 39.77, + "champ": 22.368 }, { "iso": "GBR", @@ -686,8 +686,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 19.732, - "champ": 9.326 + "final": 29.324, + "champ": 12.42 }, { "iso": "BRA", @@ -697,8 +697,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 6.542, - "champ": 2.346 + "final": 0, + "champ": 0 }, { "iso": "PRT", @@ -708,8 +708,8 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 5.872, - "champ": 2.31 + "final": 0, + "champ": 0 }, { "iso": "COL", @@ -719,8 +719,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 10.428, - "champ": 3.84 + "final": 0, + "champ": 0 }, { "iso": "NLD", @@ -730,8 +730,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 6.134, - "champ": 2.228 + "final": 0, + "champ": 0 }, { "iso": "ECU", @@ -741,8 +741,8 @@ "p1": 0, "p2": 0, "p3": 100, - "final": 1.072, - "champ": 0.252 + "final": 0, + "champ": 0 }, { "iso": "DEU", @@ -752,8 +752,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 2.45, - "champ": 0.718 + "final": 0, + "champ": 0 }, { "iso": "NOR", @@ -763,8 +763,8 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 6.522, - "champ": 2.252 + "final": 11.666, + "champ": 3.54 }, { "iso": "HRV", @@ -774,8 +774,8 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 1.068, - "champ": 0.288 + "final": 0, + "champ": 0 }, { "iso": "JPN", @@ -785,8 +785,8 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 1.412, - "champ": 0.354 + "final": 0, + "champ": 0 }, { "iso": "BEL", @@ -796,8 +796,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 6.552, - "champ": 2.302 + "final": 7.942, + "champ": 2.658 }, { "iso": "CHE", @@ -807,8 +807,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 4.39, - "champ": 1.45 + "final": 9.16, + "champ": 2.646 }, { "iso": "MEX", @@ -818,8 +818,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 4.42, - "champ": 1.486 + "final": 0, + "champ": 0 }, { "iso": "SEN", @@ -829,8 +829,8 @@ "p1": 0, "p2": 0, "p3": 100, - "final": 0.754, - "champ": 0.152 + "final": 0, + "champ": 0 }, { "iso": "PRY", @@ -840,8 +840,8 @@ "p1": 0, "p2": 0, "p3": 100, - "final": 0.546, - "champ": 0.082 + "final": 0, + "champ": 0 }, { "iso": "AUT", @@ -851,8 +851,8 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 0.336, - "champ": 0.07 + "final": 0, + "champ": 0 }, { "iso": "MAR", @@ -862,8 +862,8 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 3.216, - "champ": 0.908 + "final": 5.776, + "champ": 1.668 }, { "iso": "CAN", @@ -873,8 +873,8 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 0.764, - "champ": 0.15 + "final": 0, + "champ": 0 }, { "iso": "AUS", @@ -884,8 +884,8 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 0.572, - "champ": 0.086 + "final": 0, + "champ": 0 }, { "iso": "DZA", @@ -895,8 +895,8 @@ "p1": 0, "p2": 0, "p3": 100, - "final": 0.184, - "champ": 0.018 + "final": 0, + "champ": 0 }, { "iso": "USA", @@ -906,8 +906,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 0.878, - "champ": 0.132 + "final": 0, + "champ": 0 }, { "iso": "SWE", @@ -917,8 +917,8 @@ "p1": 0, "p2": 0, "p3": 100, - "final": 0.09, - "champ": 0.014 + "final": 0, + "champ": 0 }, { "iso": "EGY", @@ -928,8 +928,8 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 0.19, - "champ": 0.026 + "final": 0, + "champ": 0 }, { "iso": "CIV", @@ -939,8 +939,8 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 0.082, - "champ": 0.004 + "final": 0, + "champ": 0 }, { "iso": "COD", @@ -950,8 +950,8 @@ "p1": 0, "p2": 0, "p3": 100, - "final": 0.066, - "champ": 0.006 + "final": 0, + "champ": 0 }, { "iso": "BIH", @@ -961,7 +961,7 @@ "p1": 0, "p2": 0, "p3": 100, - "final": 0.014, + "final": 0, "champ": 0 }, { @@ -972,7 +972,7 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 0.008, + "final": 0, "champ": 0 }, { @@ -983,7 +983,7 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 0.002, + "final": 0, "champ": 0 }, { @@ -1007,8 +1007,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 44.38, - "champ": 25.498 + "final": 49.85, + "champ": 26.264 }, { "iso": "ESP", @@ -1018,8 +1018,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 37.116, - "champ": 23.35 + "final": 46.512, + "champ": 28.436 }, { "iso": "FRA", @@ -1029,8 +1029,8 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 34.208, - "champ": 20.352 + "final": 39.77, + "champ": 22.368 }, { "iso": "GBR", @@ -1040,63 +1040,63 @@ "p1": 100, "p2": 0, "p3": 0, - "final": 19.732, - "champ": 9.326 + "final": 29.324, + "champ": 12.42 }, { - "iso": "COL", - "name": "Colombia", - "confed": "CONMEBOL", + "iso": "NOR", + "name": "Norway", + "confed": "UEFA", "advance": 100, - "p1": 100, - "p2": 0, + "p1": 0, + "p2": 100, "p3": 0, - "final": 10.428, - "champ": 3.84 + "final": 11.666, + "champ": 3.54 }, { - "iso": "BEL", - "name": "Belgium", + "iso": "CHE", + "name": "Switzerland", "confed": "UEFA", "advance": 100, "p1": 100, "p2": 0, "p3": 0, - "final": 6.552, - "champ": 2.302 + "final": 9.16, + "champ": 2.646 }, { - "iso": "BRA", - "name": "Brazil", - "confed": "CONMEBOL", + "iso": "BEL", + "name": "Belgium", + "confed": "UEFA", "advance": 100, "p1": 100, "p2": 0, "p3": 0, - "final": 6.542, - "champ": 2.346 + "final": 7.942, + "champ": 2.658 }, { - "iso": "NOR", - "name": "Norway", - "confed": "UEFA", + "iso": "MAR", + "name": "Morocco", + "confed": "CAF", "advance": 100, "p1": 0, "p2": 100, "p3": 0, - "final": 6.522, - "champ": 2.252 + "final": 5.776, + "champ": 1.668 }, { - "iso": "NLD", - "name": "Netherlands", - "confed": "UEFA", + "iso": "BRA", + "name": "Brazil", + "confed": "CONMEBOL", "advance": 100, "p1": 100, "p2": 0, "p3": 0, - "final": 6.134, - "champ": 2.228 + "final": 0, + "champ": 0 }, { "iso": "PRT", @@ -1106,56 +1106,56 @@ "p1": 0, "p2": 100, "p3": 0, - "final": 5.872, - "champ": 2.31 + "final": 0, + "champ": 0 }, { - "iso": "MEX", - "name": "Mexico", - "confed": "CONCACAF", + "iso": "COL", + "name": "Colombia", + "confed": "CONMEBOL", "advance": 100, "p1": 100, "p2": 0, "p3": 0, - "final": 4.42, - "champ": 1.486 + "final": 0, + "champ": 0 }, { - "iso": "CHE", - "name": "Switzerland", + "iso": "NLD", + "name": "Netherlands", "confed": "UEFA", "advance": 100, "p1": 100, "p2": 0, "p3": 0, - "final": 4.39, - "champ": 1.45 + "final": 0, + "champ": 0 } ], "final_mas_probable": [ { "final": "Argentina vs Spain", - "prob": 16.448 + "prob": 23.424 }, { "final": "Argentina vs France", - "prob": 15.198 + "prob": 19.692 }, { "final": "England vs Spain", - "prob": 7.336 + "prob": 13.374 }, { "final": "England vs France", - "prob": 6.794 + "prob": 11.77 }, { - "final": "Colombia vs Spain", - "prob": 3.93 + "final": "Norway vs Spain", + "prob": 5.536 }, { - "final": "Colombia vs France", - "prob": 3.492 + "final": "France vs Norway", + "prob": 4.658 } ], "prediccion_finalistas": "Argentina vs Spain"