Goal Elo

monitoring only -- not used by any card's picks

An attack/defense Elo variant tracking goal-scoring and goal-conceding strength independently of win/loss. Each team's Attack and Defense sit on a log scale where 0 is exactly league average; ratings update after every match from the gap between actual and expected goals. See scripts/goal_elo/goal_elo.py for the model.

23 teams · K=0.025 · league avg 1.158 goals/team/match · home advantage +0.170 log-units (~19%) · seasons 2022, 2023, 2024, 2025 · generated 2026-09-19 10:32 UTC

Attack (0 = league average)Defense ↑Kawasaki Frontale -- attack 0.351 (1675 Elo), defense -0.273 (1363 Elo), 144 matchesKawasaki FrontaleFC Tokyo -- attack -0.065 (1467 Elo), defense 0.038 (1519 Elo), 144 matchesSanfrecce Hiroshima -- attack 0.074 (1537 Elo), defense 0.337 (1669 Elo), 144 matchesSanfrecce HiroshimaSagan Tosu -- attack 0.002 (1501 Elo), defense -0.158 (1421 Elo), 106 matchesShimizu S-pulse -- attack -0.112 (1444 Elo), defense -0.094 (1453 Elo), 72 matchesConsadole Sapporo -- attack 0.005 (1502 Elo), defense -0.137 (1431 Elo), 106 matchesGamba Osaka -- attack 0.162 (1581 Elo), defense -0.081 (1460 Elo), 144 matchesKashima -- attack 0.180 (1590 Elo), defense 0.325 (1662 Elo), 144 matchesKashimaYokohama F. Marinos -- attack 0.149 (1574 Elo), defense 0.031 (1516 Elo), 144 matchesCerezo Osaka -- attack 0.181 (1591 Elo), defense -0.143 (1428 Elo), 144 matchesKyoto Sanga -- attack 0.194 (1597 Elo), defense 0.134 (1567 Elo), 144 matchesKyoto SangaUrawa -- attack -0.059 (1470 Elo), defense 0.165 (1582 Elo), 144 matchesAvispa Fukuoka -- attack -0.292 (1354 Elo), defense 0.202 (1601 Elo), 144 matchesJubilo Iwata -- attack -0.048 (1476 Elo), defense -0.235 (1382 Elo), 72 matchesShonan Bellmare -- attack -0.115 (1442 Elo), defense -0.278 (1361 Elo), 144 matchesKashiwa Reysol -- attack 0.199 (1600 Elo), defense 0.217 (1609 Elo), 144 matchesKashiwa ReysolNagoya Grampus -- attack -0.088 (1456 Elo), defense -0.093 (1454 Elo), 144 matchesVissel Kobe -- attack 0.025 (1512 Elo), defense 0.294 (1647 Elo), 144 matchesVissel KobeAlbirex Niigata -- attack -0.199 (1401 Elo), defense -0.331 (1335 Elo), 110 matchesYokohama FC -- attack -0.317 (1342 Elo), defense 0.034 (1517 Elo), 72 matchesMachida Zelvia -- attack 0.076 (1538 Elo), defense 0.215 (1608 Elo), 76 matchesTokyo Verdy -- attack -0.376 (1312 Elo), defense 0.085 (1542 Elo), 76 matchesFagiano Okayama -- attack -0.198 (1401 Elo), defense 0.020 (1510 Elo), 38 matches

Dot size = matches played (a small dot is a partial-season sample -- promoted/relegated sides). Color is combined attack+defense strength, green (strong) to red (weak). Labeled: top 3 by attack, top 3 by defense.

TeamAttackDefenseAtk EloDef EloGF vs avg defenseGA vs avg attackMatches
Kawasaki Frontale0.351-0.273167513631.641.52144
Kashiwa Reysol0.1990.217160016091.410.93144
Kyoto Sanga0.1940.134159715671.411.01144
Cerezo Osaka0.181-0.143159114281.391.34144
Kashima0.1800.325159016621.390.84144
Gamba Osaka0.162-0.081158114601.361.26144
Yokohama F. Marinos0.1490.031157415161.341.12144
Machida Zelvia0.0760.215153816081.250.9376
Sanfrecce Hiroshima0.0740.337153716691.250.83144
Vissel Kobe0.0250.294151216471.190.86144
Consadole Sapporo0.005-0.137150214311.161.33106
Sagan Tosu0.002-0.158150114211.161.36106
Jubilo Iwata-0.048-0.235147613821.101.4772
Urawa-0.0590.165147015821.090.98144
FC Tokyo-0.0650.038146715191.091.12144
Nagoya Grampus-0.088-0.093145614541.061.27144
Shimizu S-pulse-0.112-0.094144414531.041.2772
Shonan Bellmare-0.115-0.278144213611.031.53144
Fagiano Okayama-0.1980.020140115100.951.1438
Albirex Niigata-0.199-0.331140113350.951.61110
Avispa Fukuoka-0.2920.202135416010.860.95144
Yokohama FC-0.3170.034134215170.841.1272
Tokyo Verdy-0.3760.085131215420.791.0676

Atk/Def Elo = 1500 + raw × 500 -- a cosmetic rescale for familiarity, not a real unit conversion. Chess Elo's 400-point gap has a specific meaning (10:1 win odds) that goal-scoring rate has no equivalent of. The Attack/Defense columns are what the model actually computes with.

2026 over 1.5 check

P(total goals ≥ 2) for every completed match since 2026-01-01 across all 38 tracked leagues -- the mu_home + mu_away → Poisson total construction, same as over-15-card's own math, just fed by Goal Elo's ratings instead. Each prediction used only ratings built from strictly earlier matches, compared against a baseline that knows just the league's average scoring rate and home advantage, no team identity at all.

7,770
Matches scored
75.8%
Actual over-1.5 rate
0.182
Model Brier score
-0.5%
Skill vs baseline

Honest read: over 1.5 is a low bar in football (the baseline alone already expects it 76% of the time), so knowing which specific teams are playing barely moves the needle here -- skill sits close to 0% pooled, unlike the real, consistent edge Attack/Defense showed on raw expected goals. The model is well calibrated (see below), it just isn't adding much information a viewer didn't already have from the league's baseline rate.

Reliability

0%0%25%25%50%50%75%75%100%100%Predicted P(over 1.5)Actual over-1.5 rateperfect calibrationpredicted ~50%, actually over 1.5 51% of the time (n=45)predicted ~55%, actually over 1.5 67% of the time (n=177)predicted ~60%, actually over 1.5 65% of the time (n=428)predicted ~65%, actually over 1.5 71% of the time (n=967)predicted ~70%, actually over 1.5 74% of the time (n=1564)predicted ~75%, actually over 1.5 76% of the time (n=1858)predicted ~80%, actually over 1.5 79% of the time (n=1593)predicted ~85%, actually over 1.5 84% of the time (n=835)predicted ~90%, actually over 1.5 87% of the time (n=243)predicted ~95%, actually over 1.5 95% of the time (n=44)

Matches bucketed by predicted P(over 1.5); dot = actual over-1.5 rate in that bucket (size = sample). On the dashed line means perfectly calibrated.

Skill vs no-team-identity baseline

Peru - Primera Division
5.0%
Bolivia - Primera Division
3.8%
South Africa - Premier Soccer League
3.2%
Turkey - Super Lig
2.2%
Portugal - Primeira Liga
2.1%
Ecuador - Liga Pro
1.8%
Russia - Premier League
1.1%
China - Super League
1.1%
USA - MLS
1.0%
Australia - A-League
0.9%
Brazil - Serie A
0.4%
Argentina - Liga Profesional
0.3%
Colombia - Primera A
0.1%
Costa Rica - Primera Division
0.0%
Chile - Primera Division
-0.2%
Norway - Eliteserien
-0.2%
France - Ligue 1
-0.3%
Greece - Super League
-0.5%
Guatemala - Liga Nacional
-0.6%
Spain - La Liga
-0.6%
Italy - Serie A
-1.1%
Netherlands - Eredivisie
-1.3%
El Salvador - Primera Division
-1.3%
Uruguay - Primera Division
-1.4%
Honduras - Liga Nacional
-1.6%
Sweden - Allsvenskan
-1.9%
Denmark - Superliga
-2.1%
Mexico - Liga MX
-2.4%
Paraguay - Division Profesional (Apertura)
-2.4%
Saudi Arabia - Pro League
-2.6%
England - Premier League
-2.7%
India - Indian Super League
-2.9%
Austria - Bundesliga
-2.9%
Scotland - Premiership
-3.0%
Venezuela - Primera Division
-3.3%
Japan - J1 League
-3.5%
Belgium - Jupiler Pro League
-4.1%
Germany - Bundesliga
-4.7%

1 − (model Brier / baseline Brier). 0% = no better than ignoring which teams are playing; a negative bar means Attack/Defense info actually hurt on that league's calls.

Biggest surprises

Lowest probability the model gave to what actually happened.

  • VfL Wolfsburg 0-1 Bayern München (Germany - Bundesliga, 2026-05-09)model said 96% over
  • CF Montreal 0-1 Inter Miami (USA - MLS, 2026-07-25)model said 93% over
  • Club Brugge KV 1-0 Cercle Brugge (Belgium - Jupiler Pro League, 2026-08-23)model said 92% over
  • Barcelona 1-0 Celta Vigo (Spain - La Liga, 2026-04-22)model said 92% over
  • FC Schalke 04 0-0 Bayern München (Germany - Bundesliga, 2026-09-05)model said 92% over
  • Sirius 0-1 Malmo FF (Sweden - Allsvenskan, 2026-08-31)model said 91% over
  • FC Midtjylland 0-1 FC Nordsjaelland (Denmark - Superliga, 2026-03-15)model said 91% over
  • Always Ready 1-0 Oriente Petrolero (Bolivia - Primera Division, 2026-04-22)model said 91% over
  • Newcastle Jets 1-0 Macarthur (Australia - A-League, 2026-02-22)model said 90% over
  • Al-Fateh 0-1 Al-Hilal Saudi FC (Saudi Arabia - Pro League, 2026-03-14)model said 90% over

All predictions — Japan - J1 League (200)

Switch leagues with the tabs above the ratings table; newest match first.

DateMatchScoreP(over)ActualCall
2026-06-06Kashima v Vissel Kobe2-068%over
2026-06-06FC Tokyo v Cerezo Osaka1-376%over
2026-06-06JEF United Chiba v Avispa Fukuoka1-270%over
2026-06-06Machida Zelvia v Nagoya Grampus2-178%over
2026-06-06Mito Hollyhock v V-varen Nagasaki0-175%under
2026-06-06Urawa v Fagiano Okayama0-268%over
2026-06-06Tokyo Verdy v Gamba Osaka2-469%over
2026-06-06Yokohama F. Marinos v Shimizu S-pulse3-076%over
2026-06-06Kashiwa Reysol v Kyoto Sanga0-180%under
2026-06-06Kawasaki Frontale v Sanfrecce Hiroshima0-179%under
2026-05-31Shimizu S-pulse v Yokohama F. Marinos1-176%over
2026-05-31Fagiano Okayama v Urawa1-167%over
2026-05-30Sanfrecce Hiroshima v Kawasaki Frontale2-180%over
2026-05-30Nagoya Grampus v Machida Zelvia2-275%over
2026-05-30Vissel Kobe v Kashima5-064%over
2026-05-30Cerezo Osaka v FC Tokyo2-274%over
2026-05-30Gamba Osaka v Tokyo Verdy1-171%over
2026-05-30Avispa Fukuoka v JEF United Chiba2-268%over
2026-05-30V-varen Nagasaki v Mito Hollyhock1-078%under
2026-05-30Kyoto Sanga v Kashiwa Reysol2-671%over
2026-05-24Fagiano Okayama v Cerezo Osaka2-374%over
2026-05-24Mito Hollyhock v Kawasaki Frontale1-382%over
2026-05-24Tokyo Verdy v Yokohama F. Marinos0-667%over
2026-05-24Shimizu S-pulse v Gamba Osaka1-273%over
2026-05-23Sanfrecce Hiroshima v Nagoya Grampus4-277%over
2026-05-23Avispa Fukuoka v Vissel Kobe0-166%under
2026-05-23Kashima v FC Tokyo1-066%under
2026-05-23Kashiwa Reysol v JEF United Chiba4-269%over
2026-05-23Kyoto Sanga v V-varen Nagasaki1-077%under
2026-05-22Machida Zelvia v Urawa1-064%under
2026-05-17V-varen Nagasaki v Vissel Kobe2-272%over
2026-05-17JEF United Chiba v Kashima0-268%over
2026-05-17Fagiano Okayama v Shimizu S-pulse2-068%over
2026-05-17Cerezo Osaka v Nagoya Grampus6-176%over
2026-05-17Kyoto Sanga v Sanfrecce Hiroshima0-469%over
2026-05-17Kawasaki Frontale v Machida Zelvia1-176%over
2026-05-16Mito Hollyhock v Tokyo Verdy0-168%under
2026-05-16Urawa v FC Tokyo0-070%under
2026-05-16Yokohama F. Marinos v Kashiwa Reysol0-175%under
2026-05-13Vissel Kobe v Kyoto Sanga1-073%under
2026-05-13Machida Zelvia v Tokyo Verdy0-064%under
2026-05-10Shimizu S-pulse v Avispa Fukuoka1-164%over
2026-05-10Vissel Kobe v Fagiano Okayama0-371%over
2026-05-10Yokohama F. Marinos v Kashima1-174%over
2026-05-10FC Tokyo v Tokyo Verdy2-166%over
2026-05-10Gamba Osaka v Sanfrecce Hiroshima0-174%under
2026-05-10Kashiwa Reysol v Kawasaki Frontale1-079%under
2026-05-10Nagoya Grampus v Kyoto Sanga3-076%over
2026-05-10JEF United Chiba v Machida Zelvia0-271%over
2026-05-09Mito Hollyhock v Urawa1-471%over
2026-05-09Cerezo Osaka v V-varen Nagasaki3-272%over
2026-05-06Shimizu S-pulse v Cerezo Osaka1-169%over
2026-05-06V-varen Nagasaki v Fagiano Okayama2-170%over
2026-05-06Nagoya Grampus v Gamba Osaka2-180%over
2026-05-06Avispa Fukuoka v Kyoto Sanga1-168%over
2026-05-06Sanfrecce Hiroshima v Vissel Kobe1-169%over
2026-05-06FC Tokyo v JEF United Chiba0-374%over
2026-05-06Kashima v Mito Hollyhock3-073%over
2026-05-06Machida Zelvia v Yokohama F. Marinos2-078%over
2026-05-06Kawasaki Frontale v Tokyo Verdy1-075%under
2026-05-06Kashiwa Reysol v Urawa0-169%under
2026-05-03Tokyo Verdy v Kashiwa Reysol1-067%under
2026-05-03Cerezo Osaka v Avispa Fukuoka1-167%over
2026-05-03Kashima v Machida Zelvia1-168%over
2026-05-03V-varen Nagasaki v Nagoya Grampus1-275%over
2026-05-02Fagiano Okayama v Sanfrecce Hiroshima1-070%under
2026-05-02FC Tokyo v Kawasaki Frontale2-083%over
2026-05-02Yokohama F. Marinos v Mito Hollyhock1-182%over
2026-05-02Kyoto Sanga v Shimizu S-pulse1-272%over
2026-05-02Gamba Osaka v Vissel Kobe5-073%over
2026-05-02Urawa v JEF United Chiba2-071%over
2026-04-29Shimizu S-pulse v V-varen Nagasaki1-269%over
2026-04-29Tokyo Verdy v Kashima2-162%over
2026-04-29Vissel Kobe v Cerezo Osaka0-074%under
2026-04-29JEF United Chiba v Yokohama F. Marinos2-377%over
2026-04-29Avispa Fukuoka v Sanfrecce Hiroshima2-263%over
2026-04-29Urawa v Kawasaki Frontale2-081%over
2026-04-29Nagoya Grampus v Fagiano Okayama1-176%over
2026-04-29Kyoto Sanga v Gamba Osaka1-178%over
2026-04-29Kashiwa Reysol v FC Tokyo1-371%over
2026-04-29Mito Hollyhock v Machida Zelvia2-273%over
2026-04-25Shimizu S-pulse v Nagoya Grampus0-274%over
2026-04-25Urawa v Yokohama F. Marinos2-373%over
2026-04-25Fagiano Okayama v Avispa Fukuoka2-065%over
2026-04-25Kawasaki Frontale v JEF United Chiba2-182%over
2026-04-25Sanfrecce Hiroshima v Cerezo Osaka2-170%over
2026-04-25V-varen Nagasaki v Gamba Osaka1-176%over
2026-04-24Kashiwa Reysol v Kashima0-167%under
2026-04-24FC Tokyo v Mito Hollyhock5-269%over
2026-04-22Gamba Osaka v Avispa Fukuoka1-271%over
2026-04-19Mito Hollyhock v Kashiwa Reysol2-073%over
2026-04-19Gamba Osaka v Fagiano Okayama2-275%over
2026-04-19Nagoya Grampus v Avispa Fukuoka2-268%over
2026-04-18Yokohama F. Marinos v Kawasaki Frontale1-286%over
2026-04-18Sanfrecce Hiroshima v V-varen Nagasaki2-071%over
2026-04-18Kashima v Urawa1-067%under
2026-04-18Tokyo Verdy v JEF United Chiba1-066%under
2026-04-18Cerezo Osaka v Kyoto Sanga3-074%over
2026-04-12Urawa v Tokyo Verdy1-165%over
2026-04-12Kawasaki Frontale v Kashima0-281%over
2026-04-11JEF United Chiba v Mito Hollyhock1-173%over
2026-04-11Sanfrecce Hiroshima v Shimizu S-pulse1-168%over
2026-04-11Machida Zelvia v Kashiwa Reysol1-073%under
2026-04-11Avispa Fukuoka v V-varen Nagasaki1-066%under
2026-04-11Vissel Kobe v Nagoya Grampus3-273%over
2026-04-11Yokohama F. Marinos v FC Tokyo1-371%over
2026-04-11Gamba Osaka v Cerezo Osaka0-178%under
2026-04-11Kyoto Sanga v Fagiano Okayama5-169%over
2026-04-05V-varen Nagasaki v Shimizu S-pulse0-371%over
2026-04-05Kashiwa Reysol v Yokohama F. Marinos3-077%over
2026-04-05Sanfrecce Hiroshima v Avispa Fukuoka0-167%under
2026-04-05Fagiano Okayama v Vissel Kobe1-463%over
2026-04-05FC Tokyo v Machida Zelvia0-070%under
2026-04-05Kawasaki Frontale v Urawa3-279%over
2026-04-04JEF United Chiba v Tokyo Verdy3-263%over
2026-04-04Mito Hollyhock v Kashima1-171%over
2026-04-04Nagoya Grampus v Cerezo Osaka3-074%over
2026-04-04Gamba Osaka v Kyoto Sanga2-077%over
2026-04-01Vissel Kobe v Shimizu S-pulse2-068%over
2026-04-01Machida Zelvia v FC Tokyo0-369%over
2026-03-28Machida Zelvia v Kawasaki Frontale1-184%over
2026-03-27Vissel Kobe v Sanfrecce Hiroshima2-166%over
2026-03-22Shimizu S-pulse v Sanfrecce Hiroshima3-166%over
2026-03-22Kyoto Sanga v Nagoya Grampus1-175%over
2026-03-22Tokyo Verdy v FC Tokyo0-064%under
2026-03-22Kashima v JEF United Chiba2-170%over
2026-03-22Cerezo Osaka v Vissel Kobe1-170%over
2026-03-22Kawasaki Frontale v Yokohama F. Marinos0-584%over
2026-03-22Kashiwa Reysol v Mito Hollyhock3-074%over
2026-03-22Urawa v Machida Zelvia1-268%over
2026-03-21Fagiano Okayama v V-varen Nagasaki0-169%under
2026-03-21Avispa Fukuoka v Gamba Osaka2-269%over
2026-03-18Cerezo Osaka v Fagiano Okayama1-269%over
2026-03-18V-varen Nagasaki v Kyoto Sanga1-273%over
2026-03-18Nagoya Grampus v Sanfrecce Hiroshima2-170%over
2026-03-18Vissel Kobe v Gamba Osaka2-271%over
2026-03-18JEF United Chiba v FC Tokyo1-267%over
2026-03-18Mito Hollyhock v Yokohama F. Marinos1-077%under
2026-03-18Tokyo Verdy v Kawasaki Frontale0-278%over
2026-03-18Avispa Fukuoka v Shimizu S-pulse1-161%over
2026-03-18Urawa v Kashiwa Reysol1-170%over
2026-03-18Machida Zelvia v Kashima0-368%over
2026-03-15V-varen Nagasaki v Avispa Fukuoka1-069%under
2026-03-14Yokohama F. Marinos v JEF United Chiba2-074%over
2026-03-14Kashiwa Reysol v Machida Zelvia0-176%under
2026-03-14Shimizu S-pulse v Fagiano Okayama1-164%over
2026-03-14Nagoya Grampus v Vissel Kobe0-367%over
2026-03-14Kyoto Sanga v Cerezo Osaka1-274%over
2026-03-14Mito Hollyhock v FC Tokyo1-171%over
2026-03-14Sanfrecce Hiroshima v Gamba Osaka2-073%over
2026-03-14Kashima v Kawasaki Frontale1-083%under
2026-03-14Tokyo Verdy v Urawa1-065%under
2026-03-08Fagiano Okayama v Kyoto Sanga1-069%under
2026-03-08Gamba Osaka v V-varen Nagasaki3-275%over
2026-03-07JEF United Chiba v Kashiwa Reysol2-172%over
2026-03-07FC Tokyo v Yokohama F. Marinos3-073%over
2026-03-07Urawa v Mito Hollyhock2-072%over
2026-03-07Cerezo Osaka v Shimizu S-pulse0-074%under
2026-03-07Kashima v Tokyo Verdy2-069%over
2026-03-07Avispa Fukuoka v Nagoya Grampus1-561%over
2026-03-01Fagiano Okayama v Nagoya Grampus1-167%over
2026-03-01Kawasaki Frontale v Mito Hollyhock2-285%over
2026-02-28Yokohama F. Marinos v Tokyo Verdy3-269%over
2026-02-28Urawa v Kashima2-363%over
2026-02-28FC Tokyo v Kashiwa Reysol0-272%over
2026-02-28Gamba Osaka v Shimizu S-pulse2-271%over
2026-02-28V-varen Nagasaki v Cerezo Osaka1-078%under
2026-02-27Sanfrecce Hiroshima v Kyoto Sanga1-269%over
2026-02-27Vissel Kobe v Avispa Fukuoka2-158%over
2026-02-27Machida Zelvia v JEF United Chiba2-171%over
2026-02-22Kyoto Sanga v Avispa Fukuoka2-065%over
2026-02-22Mito Hollyhock v JEF United Chiba1-172%over
2026-02-22Fagiano Okayama v Gamba Osaka1-268%over
2026-02-22Cerezo Osaka v Sanfrecce Hiroshima1-272%over
2026-02-21Yokohama F. Marinos v Urawa0-270%over
2026-02-21Tokyo Verdy v Machida Zelvia2-265%over
2026-02-21Shimizu S-pulse v Vissel Kobe1-065%under
2026-02-21Nagoya Grampus v V-varen Nagasaki1-370%over
2026-02-21Kawasaki Frontale v FC Tokyo1-282%over
2026-02-21Kashima v Kashiwa Reysol2-072%over
2026-02-15JEF United Chiba v Kawasaki Frontale0-085%under
2026-02-15Kashiwa Reysol v Tokyo Verdy1-269%over
2026-02-15Avispa Fukuoka v Cerezo Osaka0-267%over
2026-02-15Gamba Osaka v Nagoya Grampus0-074%under
2026-02-14Sanfrecce Hiroshima v Fagiano Okayama1-167%over
2026-02-14Shimizu S-pulse v Kyoto Sanga1-172%over
2026-02-14Machida Zelvia v Mito Hollyhock2-273%over
2026-02-14Kashima v Yokohama F. Marinos1-074%under
2026-02-14FC Tokyo v Urawa1-165%over
2026-02-13Vissel Kobe v V-varen Nagasaki2-069%over
2026-02-08Avispa Fukuoka v Fagiano Okayama1-159%over
2026-02-08Nagoya Grampus v Shimizu S-pulse1-072%under
2026-02-08Kawasaki Frontale v Kashiwa Reysol5-382%over
2026-02-08Tokyo Verdy v Mito Hollyhock3-163%over
2026-02-07JEF United Chiba v Urawa0-268%over
2026-02-07FC Tokyo v Kashima1-168%over
2026-02-07Cerezo Osaka v Gamba Osaka0-081%under
2026-02-06V-varen Nagasaki v Sanfrecce Hiroshima1-367%over
2026-02-06Yokohama F. Marinos v Machida Zelvia2-371%over
2026-02-06Kyoto Sanga v Vissel Kobe1-168%over