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.

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

Attack (0 = league average)Defense ↑Melbourne City -- attack -0.085 (1458 Elo), defense 0.194 (1597 Elo), 113 matchesMelbourne CityWestern United -- attack 0.132 (1566 Elo), defense -0.007 (1497 Elo), 82 matchesWestern UnitedBrisbane Roar -- attack -0.258 (1371 Elo), defense -0.047 (1476 Elo), 105 matchesMacarthur -- attack 0.031 (1515 Elo), defense -0.138 (1431 Elo), 106 matchesSydney -- attack -0.151 (1424 Elo), defense 0.281 (1641 Elo), 115 matchesSydneyMelbourne Victory -- attack 0.070 (1535 Elo), defense 0.172 (1586 Elo), 114 matchesWellington Phoenix -- attack -0.157 (1422 Elo), defense -0.132 (1434 Elo), 108 matchesAdelaide United -- attack 0.121 (1561 Elo), defense -0.019 (1491 Elo), 111 matchesAdelaide UnitedWestern Sydney Wanderers -- attack -0.124 (1438 Elo), defense -0.097 (1451 Elo), 107 matchesPerth Glory -- attack -0.183 (1409 Elo), defense -0.042 (1479 Elo), 105 matchesNewcastle Jets -- attack 0.229 (1615 Elo), defense 0.060 (1530 Elo), 107 matchesNewcastle JetsCentral Coast Mariners -- attack -0.111 (1445 Elo), defense -0.080 (1460 Elo), 111 matchesAuckland -- attack 0.054 (1527 Elo), defense 0.285 (1643 Elo), 58 matchesAuckland

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
Newcastle Jets0.2290.060161515301.811.36107
Western United0.132-0.007156614971.641.4582
Adelaide United0.121-0.019156114911.631.47111
Melbourne Victory0.0700.172153515861.541.21114
Auckland0.0540.285152716431.521.0858
Macarthur0.031-0.138151514311.481.65106
Melbourne City-0.0850.194145815971.321.19113
Central Coast Mariners-0.111-0.080144514601.291.56111
Western Sydney Wanderers-0.124-0.097143814511.271.59107
Sydney-0.1510.281142416411.241.09115
Wellington Phoenix-0.157-0.132142214341.231.64108
Perth Glory-0.183-0.042140914791.201.50105
Brisbane Roar-0.258-0.047137114761.111.51105

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 — Australia - A-League (104)

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

DateMatchScoreP(over)ActualCall
2026-05-23Auckland v Sydney1-068%under
2026-05-16Newcastle Jets v Sydney1-178%over
2026-05-15Adelaide United v Auckland0-380%over
2026-05-09Auckland v Adelaide United1-182%over
2026-05-09Sydney v Newcastle Jets1-178%over
2026-05-02Auckland v Melbourne City1-172%over
2026-05-02Melbourne Victory v Sydney0-173%under
2026-04-26Sydney v Auckland2-268%over
2026-04-26Melbourne City v Adelaide United1-280%over
2026-04-25Newcastle Jets v Central Coast Mariners4-086%over
2026-04-25Western Sydney Wanderers v Melbourne Victory0-281%over
2026-04-25Perth Glory v Brisbane Roar2-173%over
2026-04-24Macarthur v Wellington Phoenix4-084%over
2026-04-19Auckland v Central Coast Mariners0-181%under
2026-04-19Adelaide United v Macarthur3-188%over
2026-04-18Wellington Phoenix v Western Sydney Wanderers2-181%over
2026-04-18Brisbane Roar v Melbourne City2-367%over
2026-04-18Sydney v Perth Glory0-074%under
2026-04-17Melbourne Victory v Newcastle Jets2-284%over
2026-04-12Melbourne City v Wellington Phoenix2-075%over
2026-04-12Perth Glory v Macarthur3-182%over
2026-04-11Auckland v Melbourne Victory2-276%over
2026-04-11Newcastle Jets v Adelaide United1-190%over
2026-04-11Western Sydney Wanderers v Sydney0-276%over
2026-04-10Central Coast Mariners v Brisbane Roar2-274%over
2026-04-07Melbourne City v Central Coast Mariners2-174%over
2026-04-05Melbourne Victory v Wellington Phoenix0-184%under
2026-04-04Central Coast Mariners v Perth Glory2-278%over
2026-04-04Melbourne City v Western Sydney Wanderers3-074%over
2026-04-03Adelaide United v Auckland1-184%over
2026-04-02Macarthur v Newcastle Jets3-288%over
2026-04-02Brisbane Roar v Sydney0-071%under
2026-03-22Sydney v Newcastle Jets1-281%over
2026-03-22Perth Glory v Melbourne City1-171%over
2026-03-21Auckland v Macarthur1-283%over
2026-03-21Brisbane Roar v Wellington Phoenix1-276%over
2026-03-21Melbourne Victory v Central Coast Mariners4-178%over
2026-03-20Western Sydney Wanderers v Adelaide United2-484%over
2026-03-17Sydney v Melbourne City0-171%under
2026-03-15Melbourne Victory v Macarthur4-181%over
2026-03-14Wellington Phoenix v Perth Glory2-081%over
2026-03-14Central Coast Mariners v Adelaide United1-184%over
2026-03-14Newcastle Jets v Auckland1-283%over
2026-03-13Brisbane Roar v Western Sydney Wanderers2-272%over
2026-03-08Auckland v Perth Glory2-279%over
2026-03-07Newcastle Jets v Western Sydney Wanderers2-185%over
2026-03-07Sydney v Melbourne Victory2-273%over
2026-03-06Adelaide United v Wellington Phoenix1-190%over
2026-03-04Macarthur v Central Coast Mariners1-380%over
2026-03-01Wellington Phoenix v Sydney0-182%under
2026-02-28Auckland v Melbourne City3-072%over
2026-02-28Central Coast Mariners v Newcastle Jets0-087%under
2026-02-28Brisbane Roar v Perth Glory1-172%over
2026-02-28Macarthur v Western Sydney Wanderers0-479%over
2026-02-27Melbourne Victory v Adelaide United1-185%over
2026-02-22Central Coast Mariners v Western Sydney Wanderers3-276%over
2026-02-22Newcastle Jets v Macarthur1-090%under
2026-02-21Wellington Phoenix v Auckland0-579%over
2026-02-21Sydney v Brisbane Roar1-075%under
2026-02-21Melbourne City v Melbourne Victory1-370%over
2026-02-20Adelaide United v Perth Glory4-085%over
2026-02-17Sydney v Auckland1-175%over
2026-02-14Melbourne Victory v Brisbane Roar1-174%over
2026-02-14Sydney v Adelaide United1-286%over
2026-02-13Western Sydney Wanderers v Wellington Phoenix2-280%over
2026-02-13Perth Glory v Newcastle Jets1-387%over
2026-02-08Adelaide United v Newcastle Jets2-392%over
2026-02-07Auckland v Sydney1-077%under
2026-02-07Brisbane Roar v Central Coast Mariners1-274%over
2026-02-07Western Sydney Wanderers v Melbourne City1-169%over
2026-02-06Wellington Phoenix v Melbourne Victory2-378%over
2026-02-06Macarthur v Perth Glory2-280%over
2026-02-01Central Coast Mariners v Melbourne Victory1-077%under
2026-01-31Newcastle Jets v Brisbane Roar4-183%over
2026-01-31Sydney v Western Sydney Wanderers4-174%over
2026-01-31Perth Glory v Auckland2-174%over
2026-01-30Wellington Phoenix v Melbourne City2-273%over
2026-01-30Adelaide United v Macarthur1-189%over
2026-01-26Melbourne Victory v Sydney4-074%over
2026-01-25Western Sydney Wanderers v Perth Glory1-075%under
2026-01-24Auckland v Central Coast Mariners2-278%over
2026-01-24Brisbane Roar v Adelaide United2-380%over
2026-01-24Macarthur v Melbourne City6-268%over
2026-01-23Newcastle Jets v Wellington Phoenix4-187%over
2026-01-18Central Coast Mariners v Macarthur1-180%over
2026-01-18Sydney v Wellington Phoenix0-281%over
2026-01-17Western Sydney Wanderers v Newcastle Jets1-283%over
2026-01-17Adelaide United v Melbourne Victory2-183%over
2026-01-16Melbourne City v Auckland2-163%over
2026-01-16Perth Glory v Brisbane Roar1-270%over
2026-01-11Wellington Phoenix v Adelaide United2-286%over
2026-01-11Melbourne City v Newcastle Jets0-179%under
2026-01-10Melbourne Victory v Western Sydney Wanderers0-175%under
2026-01-10Macarthur v Sydney0-379%over
2026-01-10Perth Glory v Central Coast Mariners3-077%over
2026-01-09Brisbane Roar v Auckland0-268%over
2026-01-06Melbourne City v Brisbane Roar1-064%under
2026-01-05Macarthur v Auckland1-177%over
2026-01-04Adelaide United v Central Coast Mariners0-486%over
2026-01-03Brisbane Roar v Wellington Phoenix0-374%over
2026-01-03Melbourne City v Sydney0-072%under
2026-01-02Melbourne Victory v Perth Glory3-274%over
2026-01-01Auckland v Newcastle Jets1-385%over
2026-01-01Western Sydney Wanderers v Macarthur0-180%under