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.

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

Attack (0 = league average)Defense ↑Volos NFC -- attack -0.171 (1415 Elo), defense -0.263 (1368 Elo), 137 matchesAsteras Tripolis -- attack -0.183 (1409 Elo), defense -0.021 (1489 Elo), 134 matchesAtromitos -- attack 0.093 (1546 Elo), defense 0.073 (1537 Elo), 134 matchesOFI -- attack 0.066 (1533 Elo), defense -0.182 (1409 Elo), 130 matchesLamia -- attack -0.287 (1356 Elo), defense -0.286 (1357 Elo), 105 matchesAEK Athens FC -- attack 0.378 (1689 Elo), defense 0.513 (1757 Elo), 136 matchesAEK Athens FCPAOK -- attack 0.407 (1703 Elo), defense 0.346 (1673 Elo), 136 matchesPAOKPanetolikos -- attack -0.274 (1363 Elo), defense -0.011 (1495 Elo), 138 matchesPanathinaikos -- attack 0.193 (1597 Elo), defense 0.292 (1646 Elo), 136 matchesIonikos -- attack -0.097 (1451 Elo), defense -0.053 (1473 Elo), 33 matchesAris Thessalonikis -- attack -0.059 (1470 Elo), defense 0.264 (1632 Elo), 136 matchesLevadiakos -- attack 0.297 (1648 Elo), defense -0.112 (1444 Elo), 101 matchesLevadiakosOlympiakos Piraeus -- attack 0.214 (1607 Elo), defense 0.612 (1806 Elo), 136 matchesOlympiakos PiraeusPAS Giannina -- attack -0.102 (1449 Elo), defense -0.159 (1420 Elo), 66 matchesKifisia -- attack -0.167 (1416 Elo), defense -0.094 (1453 Elo), 69 matchesPanserraikos -- attack -0.347 (1326 Elo), defense -0.381 (1309 Elo), 105 matchesKallithea -- attack -0.101 (1449 Elo), defense -0.064 (1468 Elo), 36 matchesLarisa -- attack -0.181 (1409 Elo), defense -0.152 (1424 Elo), 36 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
PAOK0.4070.346170316731.750.82136
AEK Athens FC0.3780.513168917571.700.70136
Levadiakos0.297-0.112164814441.571.30101
Olympiakos Piraeus0.2140.612160718061.440.63136
Panathinaikos0.1930.292159716461.410.87136
Atromitos0.0930.073154615371.281.08134
OFI0.066-0.182153314091.241.40130
Aris Thessalonikis-0.0590.264147016321.100.89136
Ionikos-0.097-0.053145114731.061.2333
Kallithea-0.101-0.064144914681.051.2436
PAS Giannina-0.102-0.159144914201.051.3766
Kifisia-0.167-0.094141614530.991.2869
Volos NFC-0.171-0.263141513680.981.52137
Larisa-0.181-0.152140914240.971.3636
Asteras Tripolis-0.183-0.021140914890.971.19134
Panetolikos-0.274-0.011136314950.891.18138
Lamia-0.287-0.286135613570.871.55105
Panserraikos-0.347-0.381132613090.821.71105

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 — Greece - Super League (160)

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

DateMatchScoreP(over)ActualCall
2026-09-13Kalamata v Volos NFC3-175%over
2026-09-13Asteras Tripolis v AEK Athens FC1-174%over
2026-09-13PAOK v Aris Thessalonikis2-076%over
2026-09-13Kifisia v Levadiakos0-078%under
2026-09-13Panathinaikos v Panetolikos3-071%over
2026-09-12Olympiakos Piraeus v OFI0-171%under
2026-09-12Iraklis 1908 v Atromitos1-172%over
2026-09-10Panathinaikos v Kifisia3-174%over
2026-09-07Asteras Tripolis v Iraklis 19080-271%over
2026-09-06Atromitos v Kalamata1-175%over
2026-09-06OFI v Kifisia2-076%over
2026-09-06Levadiakos v Panetolikos0-277%over
2026-09-06Panathinaikos v PAOK3-172%over
2026-09-05Volos NFC v Olympiakos Piraeus1-168%over
2026-09-05AEK Athens FC v Aris Thessalonikis5-070%over
2026-08-31Levadiakos v Panathinaikos0-278%over
2026-08-30Aris Thessalonikis v OFI2-174%over
2026-08-30Atromitos v PAOK1-274%over
2026-08-30Asteras Tripolis v Olympiakos Piraeus0-165%under
2026-08-30Kifisia v AEK Athens FC1-173%over
2026-08-29Volos NFC v Iraklis 19081-175%over
2026-08-29Panetolikos v Kalamata2-071%over
2026-08-23OFI v Volos NFC2-080%over
2026-08-23PAOK v Levadiakos4-082%over
2026-08-23Panetolikos v Asteras Tripolis3-165%over
2026-08-22AEK Athens FC v Iraklis 19084-075%over
2026-08-22Kalamata v Aris Thessalonikis2-367%over
2026-08-22Olympiakos Piraeus v Atromitos1-069%under
2026-05-21Atromitos v Panserraikos6-074%over
2026-05-21Panetolikos v Asteras Tripolis1-260%over
2026-05-21Kifisia v Larisa3-267%over
2026-05-17Panserraikos v Panetolikos1-164%over
2026-05-17Aris Thessalonikis v Levadiakos3-074%over
2026-05-17OFI v Volos NFC3-181%over
2026-05-17AEK Athens FC v Olympiakos Piraeus1-159%over
2026-05-17Panathinaikos v PAOK2-270%over
2026-05-16Larisa v Atromitos2-168%over
2026-05-16Asteras Tripolis v Kifisia0-068%under
2026-05-13Levadiakos v OFI3-287%over
2026-05-13Volos NFC v Aris Thessalonikis1-265%over
2026-05-13Olympiakos Piraeus v Panathinaikos1-062%under
2026-05-13PAOK v AEK Athens FC1-170%over
2026-05-12Panetolikos v Larisa1-163%over
2026-05-12Asteras Tripolis v Panserraikos1-072%under
2026-05-12Kifisia v Atromitos0-368%over
2026-05-10Aris Thessalonikis v OFI3-167%over
2026-05-10Volos NFC v Levadiakos0-383%over
2026-05-10Olympiakos Piraeus v PAOK1-165%over
2026-05-10AEK Athens FC v Panathinaikos2-168%over
2026-05-09Panserraikos v Kifisia1-269%over
2026-05-09Larisa v Asteras Tripolis1-168%over
2026-05-09Atromitos v Panetolikos1-264%over
2026-05-03Levadiakos v Volos NFC5-280%over
2026-05-03OFI v Aris Thessalonikis0-267%over
2026-05-03PAOK v Olympiakos Piraeus3-162%over
2026-05-03Panathinaikos v AEK Athens FC0-069%under
2026-05-02Panetolikos v Kifisia0-164%under
2026-05-02Panserraikos v Larisa1-170%over
2026-05-02Asteras Tripolis v Atromitos4-263%over
2026-04-26Kifisia v Panetolikos0-067%under
2026-04-26Atromitos v Asteras Tripolis2-163%over
2026-04-26Larisa v Panserraikos0-174%under
2026-04-22Panserraikos v Atromitos0-466%over
2026-04-22Larisa v Kifisia1-172%over
2026-04-22Asteras Tripolis v Panetolikos2-161%over
2026-04-19AEK Athens FC v PAOK3-070%over
2026-04-19Panathinaikos v Olympiakos Piraeus0-260%over
2026-04-18Kifisia v Asteras Tripolis0-070%under
2026-04-18Atromitos v Larisa3-262%over
2026-04-18OFI v Levadiakos2-084%over
2026-04-18Aris Thessalonikis v Volos NFC3-259%over
2026-04-18Panetolikos v Panserraikos2-365%over
2026-04-08Larisa v Panetolikos1-261%over
2026-04-08Panserraikos v Asteras Tripolis0-070%under
2026-04-08Atromitos v Kifisia0-069%under
2026-04-05Levadiakos v Aris Thessalonikis1-170%over
2026-04-05Volos NFC v OFI1-175%over
2026-04-05PAOK v Panathinaikos0-075%under
2026-04-05Olympiakos Piraeus v AEK Athens FC0-161%under
2026-04-04Kifisia v Panserraikos1-277%over
2026-04-04Asteras Tripolis v Larisa3-164%over
2026-04-04Panetolikos v Atromitos1-156%over
2026-03-22Olympiakos Piraeus v Larisa0-072%under
2026-03-22AEK Athens FC v Kifisia3-081%over
2026-03-22Panetolikos v Panserraikos0-069%under
2026-03-22Asteras Tripolis v Panathinaikos1-271%over
2026-03-22Levadiakos v Atromitos1-076%under
2026-03-22Aris Thessalonikis v OFI0-268%over
2026-03-22Volos NFC v PAOK2-176%over
2026-03-15Kifisia v Volos NFC2-074%over
2026-03-15PAOK v Levadiakos3-085%over
2026-03-15Atromitos v AEK Athens FC2-264%over
2026-03-15Panathinaikos v Panetolikos0-075%under
2026-03-14OFI v Olympiakos Piraeus0-373%over
2026-03-14Panserraikos v Aris Thessalonikis0-067%under
2026-03-14Larisa v Asteras Tripolis1-167%over
2026-03-09Panetolikos v Kifisia2-170%over
2026-03-08Asteras Tripolis v Panserraikos0-175%under
2026-03-08Volos NFC v OFI1-176%over
2026-03-08Levadiakos v Panathinaikos1-480%over
2026-03-08Olympiakos Piraeus v PAOK0-069%under
2026-03-07Aris Thessalonikis v Atromitos0-058%under
2026-03-07AEK Athens FC v Larisa1-079%under
2026-03-04Panathinaikos v OFI4-179%over
2026-03-04Kifisia v PAOK1-478%over
2026-03-01Panserraikos v Olympiakos Piraeus1-280%over
2026-03-01Volos NFC v AEK Athens FC2-272%over
2026-03-01PAOK v Asteras Tripolis2-081%over
2026-03-01Panathinaikos v Aris Thessalonikis3-162%over
2026-02-28OFI v Larisa3-075%over
2026-02-28Atromitos v Panetolikos1-063%under
2026-02-28Kifisia v Levadiakos1-084%under
2026-02-22OFI v Panathinaikos0-276%over
2026-02-22Panserraikos v Volos NFC2-173%over
2026-02-22Larisa v PAOK1-178%over
2026-02-22Aris Thessalonikis v Kifisia1-168%over
2026-02-22AEK Athens FC v Levadiakos4-080%over
2026-02-21Olympiakos Piraeus v Panetolikos2-071%over
2026-02-21Asteras Tripolis v Atromitos1-264%over
2026-02-16Atromitos v Panserraikos2-274%over
2026-02-15Kifisia v OFI2-279%over
2026-02-15PAOK v AEK Athens FC0-076%under
2026-02-15Panathinaikos v Larisa1-175%over
2026-02-14Panetolikos v Asteras Tripolis3-163%over
2026-02-14Levadiakos v Olympiakos Piraeus0-079%under
2026-02-14Volos NFC v Aris Thessalonikis1-160%over
2026-02-08Panserraikos v AEK Athens FC0-480%over
2026-02-08OFI v Levadiakos3-285%over
2026-02-08Aris Thessalonikis v PAOK0-072%under
2026-02-08Olympiakos Piraeus v Panathinaikos0-172%under
2026-02-07Larisa v Panetolikos1-463%over
2026-02-07Asteras Tripolis v Volos NFC2-066%over
2026-02-07Kifisia v Atromitos0-170%under
2026-02-04Asteras Tripolis v Olympiakos Piraeus0-369%over
2026-02-01Levadiakos v Asteras Tripolis3-181%over
2026-02-01Panathinaikos v Kifisia3-077%over
2026-02-01PAOK v Panserraikos4-191%over
2026-02-01AEK Athens FC v Olympiakos Piraeus1-167%over
2026-01-31Panetolikos v Aris Thessalonikis0-158%under
2026-01-31Atromitos v OFI1-270%over
2026-01-31Volos NFC v Larisa0-268%over
2026-01-25Aris Thessalonikis v Levadiakos2-273%over
2026-01-25OFI v Panetolikos1-071%under
2026-01-25Atromitos v Panathinaikos0-069%under
2026-01-24Olympiakos Piraeus v Volos NFC1-077%under
2026-01-24Asteras Tripolis v AEK Athens FC0-171%under
2026-01-24Larisa v Panserraikos1-077%under
2026-01-19Panetolikos v Levadiakos1-375%over
2026-01-19Volos NFC v Atromitos0-365%over
2026-01-18Larisa v Aris Thessalonikis1-065%under
2026-01-18PAOK v OFI3-087%over
2026-01-18AEK Athens FC v Panathinaikos4-072%over
2026-01-17Panserraikos v Kifisia2-179%over
2026-01-11Levadiakos v Volos NFC3-179%over
2026-01-11OFI v Asteras Tripolis4-071%over
2026-01-11Aris Thessalonikis v AEK Athens FC1-164%over
2026-01-11Panathinaikos v Panserraikos3-084%over
2026-01-10Kifisia v Larisa1-177%over
2026-01-10Panetolikos v PAOK0-374%over
2026-01-10Atromitos v Olympiakos Piraeus0-268%over