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.

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

Attack (0 = league average)Defense ↑Emelec -- attack -0.106 (1447 Elo), defense 0.058 (1529 Elo), 130 matchesMacara -- attack 0.086 (1543 Elo), defense 0.260 (1630 Elo), 100 matchesMacaraMushuc Runa SC -- attack -0.032 (1484 Elo), defense -0.094 (1453 Elo), 126 matchesUniversidad Catolica -- attack 0.290 (1645 Elo), defense 0.059 (1530 Elo), 130 matchesUniversidad CatolicaLDU de Quito -- attack 0.376 (1688 Elo), defense 0.246 (1623 Elo), 134 matchesLDU de QuitoGualaceo SC -- attack -0.122 (1439 Elo), defense -0.136 (1432 Elo), 60 matchesDelfin SC -- attack -0.326 (1337 Elo), defense -0.194 (1403 Elo), 129 matchesBarcelona SC -- attack 0.165 (1582 Elo), defense 0.150 (1575 Elo), 132 matchesOrense SC -- attack -0.088 (1456 Elo), defense 0.162 (1581 Elo), 130 matchesAucas -- attack 0.201 (1601 Elo), defense -0.046 (1477 Elo), 132 matchesGuayaquil City FC -- attack -0.163 (1418 Elo), defense -0.038 (1481 Elo), 60 matchesDeportivo Cuenca -- attack 0.063 (1531 Elo), defense 0.150 (1575 Elo), 130 matchesCumbayá -- attack -0.168 (1416 Elo), defense -0.228 (1386 Elo), 90 matchesIndependiente del Valle -- attack 0.233 (1616 Elo), defense 0.469 (1734 Elo), 134 matchesIndependiente del ValleTecnico Universitario -- attack -0.209 (1395 Elo), defense -0.072 (1464 Elo), 126 matches9 de Octubre -- attack -0.063 (1468 Elo), defense -0.074 (1463 Elo), 30 matchesEl Nacional -- attack -0.036 (1482 Elo), defense -0.310 (1345 Elo), 99 matchesLibertad -- attack 0.058 (1529 Elo), defense 0.085 (1543 Elo), 100 matchesImbabura -- attack -0.018 (1491 Elo), defense -0.253 (1373 Elo), 30 matchesManta FC -- attack 0.036 (1518 Elo), defense -0.157 (1421 Elo), 36 matchesCuniburo -- attack -0.135 (1432 Elo), defense -0.078 (1461 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
LDU de Quito0.3760.246168816231.510.81134
Universidad Catolica0.2900.059164515301.380.97130
Independiente del Valle0.2330.469161617341.310.65134
Aucas0.201-0.046160114771.271.08132
Barcelona SC0.1650.150158215751.220.89132
Macara0.0860.260154316301.130.80100
Deportivo Cuenca0.0630.150153115751.100.89130
Libertad0.0580.085152915431.100.95100
Manta FC0.036-0.157151814211.071.2136
Imbabura-0.018-0.253149113731.021.3330
Mushuc Runa SC-0.032-0.094148414531.001.14126
El Nacional-0.036-0.310148213451.001.4199
9 de Octubre-0.063-0.074146814630.971.1130
Orense SC-0.0880.162145615810.950.88130
Emelec-0.1060.058144715290.930.98130
Gualaceo SC-0.122-0.136143914320.921.1960
Cuniburo-0.135-0.078143214610.901.1236
Guayaquil City FC-0.163-0.038141814810.881.0860
Cumbayá-0.168-0.228141613860.871.3090
Tecnico Universitario-0.209-0.072139514640.841.11126
Delfin SC-0.326-0.194133714030.751.26129

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 — Ecuador - Liga Pro (241)

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

DateMatchScoreP(over)ActualCall
2026-09-19Aucas v Macara1-268%over
2026-09-15Universidad Catolica v Orense SC2-183%over
2026-09-13LDU de Quito v Deportivo Cuenca1-162%over
2026-09-13Leones del Norte v Tecnico Universitario0-171%under
2026-09-13Macara v Emelec1-069%under
2026-09-13Barcelona SC v Delfin SC1-158%over
2026-09-13Libertad v Independiente del Valle2-378%over
2026-09-12Manta FC v Aucas0-067%under
2026-09-12Guayaquil City FC v Mushuc Runa SC3-169%over
2026-09-08Emelec v Manta FC1-066%under
2026-09-08Mushuc Runa SC v Leones del Norte1-168%over
2026-09-08Orense SC v Guayaquil City FC4-367%over
2026-09-07Deportivo Cuenca v Libertad0-162%under
2026-09-07Aucas v Barcelona SC1-162%over
2026-09-06Delfin SC v Universidad Catolica0-167%under
2026-09-05Tecnico Universitario v LDU de Quito1-361%over
2026-09-05Independiente del Valle v Macara3-185%over
2026-09-04Libertad v Emelec1-164%over
2026-09-03Barcelona SC v Independiente del Valle2-175%over
2026-09-03Universidad Catolica v Aucas1-178%over
2026-09-03Leones del Norte v Orense SC1-072%under
2026-09-02LDU de Quito v Mushuc Runa SC0-068%under
2026-09-02Macara v Manta FC4-372%over
2026-09-02Deportivo Cuenca v Guayaquil City FC1-063%under
2026-09-01Delfin SC v Tecnico Universitario1-060%under
2026-08-30Manta FC v Barcelona SC2-061%over
2026-08-30Aucas v Libertad1-069%under
2026-08-30Orense SC v Macara1-269%over
2026-08-30Emelec v Leones del Norte2-162%over
2026-08-29Tecnico Universitario v Deportivo Cuenca3-163%over
2026-08-29Independiente del Valle v Universidad Catolica2-287%over
2026-08-29Guayaquil City FC v LDU de Quito2-158%over
2026-08-28Mushuc Runa SC v Delfin SC1-066%under
2026-08-25Libertad v Macara1-068%under
2026-08-24LDU de Quito v Emelec2-061%over
2026-08-23Barcelona SC v Orense SC3-066%over
2026-08-23Delfin SC v Aucas0-162%under
2026-08-22Deportivo Cuenca v Mushuc Runa SC0-071%under
2026-08-22Leones del Norte v Independiente del Valle2-377%over
2026-08-22Universidad Catolica v Manta FC5-177%over
2026-08-22Tecnico Universitario v Guayaquil City FC2-360%over
2026-08-18Macara v Universidad Catolica1-174%over
2026-08-17Aucas v LDU de Quito0-165%under
2026-08-16Mushuc Runa SC v Barcelona SC0-070%under
2026-08-16Orense SC v Deportivo Cuenca2-068%over
2026-08-16Emelec v Tecnico Universitario2-161%over
2026-08-15Independiente del Valle v Delfin SC3-283%over
2026-08-15Manta FC v Leones del Norte0-260%over
2026-08-15Guayaquil City FC v Libertad2-260%over
2026-08-11Deportivo Cuenca v Manta FC1-263%over
2026-08-10Guayaquil City FC v Emelec0-059%under
2026-08-10Tecnico Universitario v Mushuc Runa SC0-371%over
2026-08-10Libertad v Universidad Catolica2-171%over
2026-08-09Barcelona SC v Macara1-263%over
2026-08-09Delfin SC v Orense SC1-161%over
2026-08-08LDU de Quito v Independiente del Valle0-273%over
2026-08-08Aucas v Leones del Norte3-068%over
2026-08-04LDU de Quito v Delfin SC2-160%over
2026-08-02Emelec v Aucas0-266%over
2026-08-02Independiente del Valle v Deportivo Cuenca1-086%under
2026-08-02Macara v Guayaquil City FC2-165%over
2026-08-02Leones del Norte v Barcelona SC1-160%over
2026-08-01Libertad v Orense SC3-068%over
2026-08-01Manta FC v Mushuc Runa SC1-268%over
2026-08-01Universidad Catolica v Tecnico Universitario5-071%over
2026-07-28Deportivo Cuenca v Emelec2-162%over
2026-07-27Barcelona SC v LDU de Quito0-159%under
2026-07-27Mushuc Runa SC v Libertad0-273%over
2026-07-27Guayaquil City FC v Universidad Catolica0-069%under
2026-07-26Tecnico Universitario v Manta FC1-060%under
2026-07-26Delfin SC v Leones del Norte0-157%under
2026-07-26Aucas v Macara1-466%over
2026-07-26Orense SC v Independiente del Valle2-380%over
2026-07-24Emelec v Mushuc Runa SC1-171%over
2026-07-23Manta FC v LDU de Quito1-158%over
2026-07-23Orense SC v Aucas2-168%over
2026-07-23Leones del Norte v Guayaquil City FC1-164%over
2026-07-22Universidad Catolica v Barcelona SC2-169%over
2026-07-22Macara v Deportivo Cuenca3-064%over
2026-07-22Independiente del Valle v Tecnico Universitario3-083%over
2026-07-21Libertad v Delfin SC1-061%under
2026-07-20Independiente del Valle v Emelec6-176%over
2026-07-20Mushuc Runa SC v Orense SC2-174%over
2026-07-19Barcelona SC v Libertad1-067%under
2026-07-19Tecnico Universitario v Aucas0-165%under
2026-07-19Guayaquil City FC v Manta FC1-062%under
2026-07-18Delfin SC v Macara2-156%over
2026-07-18Deportivo Cuenca v Universidad Catolica0-270%over
2026-07-18LDU de Quito v Leones del Norte0-165%under
2026-07-17Orense SC v Emelec0-261%over
2026-07-16Barcelona SC v Guayaquil City FC1-165%over
2026-07-16Aucas v Independiente del Valle0-375%over
2026-07-15Manta FC v Delfin SC0-157%under
2026-07-15Libertad v Tecnico Universitario1-067%under
2026-07-15Universidad Catolica v LDU de Quito1-071%under
2026-07-15Leones del Norte v Deportivo Cuenca1-165%over
2026-07-14Macara v Mushuc Runa SC2-172%over
2026-07-12LDU de Quito v Libertad0-073%under
2026-07-12Deportivo Cuenca v Aucas0-168%under
2026-07-12Emelec v Barcelona SC0-059%under
2026-07-11Tecnico Universitario v Macara0-262%over
2026-07-11Manta FC v Orense SC0-067%under
2026-07-11Mushuc Runa SC v Independiente del Valle1-479%over
2026-07-11Guayaquil City FC v Delfin SC2-157%over
2026-07-10Leones del Norte v Universidad Catolica1-074%under
2026-07-08Aucas v Guayaquil City FC1-070%under
2026-07-07Orense SC v Tecnico Universitario1-267%over
2026-07-06Universidad Catolica v Mushuc Runa SC2-380%over
2026-07-05Barcelona SC v Deportivo Cuenca2-066%over
2026-07-05Macara v LDU de Quito1-064%under
2026-07-05Delfin SC v Emelec1-153%over
2026-07-04Independiente del Valle v Manta FC4-078%over
2026-07-04Libertad v Leones del Norte1-368%over
2026-07-01LDU de Quito v Orense SC3-069%over
2026-06-02Tecnico Universitario v Barcelona SC1-064%under
2026-06-01Leones del Norte v Macara1-164%over
2026-05-31Deportivo Cuenca v Delfin SC1-064%under
2026-05-31Mushuc Runa SC v Aucas0-077%under
2026-05-31Guayaquil City FC v Independiente del Valle2-466%over
2026-05-31Emelec v Universidad Catolica1-069%under
2026-05-30Manta FC v Libertad2-165%over
2026-05-26Aucas v Manta FC3-170%over
2026-05-24Deportivo Cuenca v LDU de Quito1-167%over
2026-05-24Tecnico Universitario v Leones del Norte2-164%over
2026-05-24Emelec v Macara2-059%over
2026-05-24Delfin SC v Barcelona SC1-257%over
2026-05-23Independiente del Valle v Libertad2-374%over
2026-05-23Mushuc Runa SC v Guayaquil City FC2-267%over
2026-05-23Orense SC v Universidad Catolica1-274%over
2026-05-19Guayaquil City FC v Orense SC0-163%under
2026-05-17Barcelona SC v Aucas3-069%over
2026-05-17Leones del Norte v Mushuc Runa SC3-169%over
2026-05-17Manta FC v Emelec0-061%under
2026-05-16Libertad v Deportivo Cuenca0-169%under
2026-05-16Macara v Independiente del Valle0-365%over
2026-05-16Universidad Catolica v Delfin SC2-271%over
2026-05-15LDU de Quito v Tecnico Universitario2-168%over
2026-05-12Mushuc Runa SC v LDU de Quito1-367%over
2026-05-10Independiente del Valle v Barcelona SC1-070%under
2026-05-10Emelec v Libertad1-165%over
2026-05-10Manta FC v Macara0-162%under
2026-05-09Orense SC v Leones del Norte2-067%over
2026-05-09Tecnico Universitario v Delfin SC4-053%over
2026-05-09Guayaquil City FC v Deportivo Cuenca0-165%under
2026-05-09Aucas v Universidad Catolica2-175%over
2026-05-03Barcelona SC v Manta FC1-169%over
2026-05-03Macara v Orense SC1-267%over
2026-05-03Delfin SC v Mushuc Runa SC1-060%under
2026-05-03Leones del Norte v Emelec2-063%over
2026-05-02Libertad v Aucas3-267%over
2026-05-02Deportivo Cuenca v Tecnico Universitario2-166%over
2026-05-02LDU de Quito v Guayaquil City FC1-066%under
2026-05-01Universidad Catolica v Independiente del Valle2-371%over
2026-04-28Aucas v Delfin SC1-064%under
2026-04-27Manta FC v Universidad Catolica1-072%under
2026-04-26Macara v Libertad3-063%over
2026-04-26Guayaquil City FC v Tecnico Universitario1-061%under
2026-04-26Orense SC v Barcelona SC1-167%over
2026-04-25Mushuc Runa SC v Deportivo Cuenca4-168%over
2026-04-25Independiente del Valle v Leones del Norte2-169%over
2026-04-25Emelec v LDU de Quito1-064%under
2026-04-24Universidad Catolica v Macara4-068%over
2026-04-23LDU de Quito v Aucas0-074%under
2026-04-22Tecnico Universitario v Emelec0-163%under
2026-04-22Leones del Norte v Manta FC3-064%over
2026-04-22Delfin SC v Independiente del Valle0-160%under
2026-04-22Deportivo Cuenca v Orense SC1-368%over
2026-04-22Barcelona SC v Mushuc Runa SC2-169%over
2026-04-21Libertad v Guayaquil City FC0-166%under
2026-04-19Orense SC v Delfin SC0-064%under
2026-04-19Manta FC v Deportivo Cuenca0-166%under
2026-04-19Independiente del Valle v LDU de Quito0-272%over
2026-04-19Macara v Barcelona SC3-159%over
2026-04-18Emelec v Guayaquil City FC1-362%over
2026-04-18Mushuc Runa SC v Tecnico Universitario1-068%under
2026-04-18Universidad Catolica v Libertad2-073%over
2026-04-17Leones del Norte v Aucas0-170%under
2026-04-12Orense SC v Libertad2-167%over
2026-04-12Tecnico Universitario v Universidad Catolica0-269%over
2026-04-12Deportivo Cuenca v Independiente del Valle2-363%over
2026-04-12Guayaquil City FC v Macara2-156%over
2026-04-12Aucas v Emelec2-071%over
2026-04-11Delfin SC v LDU de Quito1-064%under
2026-04-11Barcelona SC v Leones del Norte2-164%over
2026-04-11Mushuc Runa SC v Manta FC1-072%under
2026-04-09Universidad Catolica v Emelec1-174%over
2026-04-07Libertad v Mushuc Runa SC2-268%over
2026-04-05Emelec v Deportivo Cuenca0-263%over
2026-04-05Leones del Norte v Delfin SC1-062%under
2026-04-05Manta FC v Tecnico Universitario0-267%over
2026-04-05Macara v Aucas0-169%under
2026-04-04LDU de Quito v Barcelona SC0-269%over
2026-04-04Independiente del Valle v Orense SC2-072%over
2026-04-04Universidad Catolica v Guayaquil City FC4-168%over
2026-03-24Aucas v Orense SC3-272%over
2026-03-23Guayaquil City FC v Leones del Norte0-062%under
2026-03-22LDU de Quito v Manta FC1-077%under
2026-03-22Tecnico Universitario v Independiente del Valle1-264%over
2026-03-22Barcelona SC v Universidad Catolica1-168%over
2026-03-22Mushuc Runa SC v Emelec2-067%over
2026-03-21Delfin SC v Libertad0-062%under
2026-03-21Deportivo Cuenca v Macara1-159%over
2026-03-20Emelec v Independiente del Valle2-064%over
2026-03-19Libertad v Barcelona SC0-067%under
2026-03-19Aucas v Tecnico Universitario0-173%under
2026-03-19Orense SC v Mushuc Runa SC3-266%over
2026-03-18Leones del Norte v LDU de Quito0-271%over
2026-03-18Macara v Delfin SC1-064%under
2026-03-18Manta FC v Guayaquil City FC0-167%under
2026-03-17Universidad Catolica v Deportivo Cuenca1-071%under
2026-03-15LDU de Quito v Universidad Catolica1-177%over
2026-03-15Mushuc Runa SC v Macara0-065%under
2026-03-15Emelec v Orense SC2-162%over
2026-03-15Guayaquil City FC v Barcelona SC0-066%under
2026-03-14Deportivo Cuenca v Leones del Norte1-168%over
2026-03-14Independiente del Valle v Aucas2-274%over
2026-03-14Delfin SC v Manta FC0-168%under
2026-03-13Tecnico Universitario v Libertad2-165%over
2026-03-10Orense SC v Manta FC1-170%over
2026-03-08Libertad v LDU de Quito2-171%over
2026-03-08Aucas v Deportivo Cuenca0-173%under
2026-03-08Macara v Tecnico Universitario1-166%over
2026-03-08Universidad Catolica v Leones del Norte3-073%over
2026-03-07Delfin SC v Guayaquil City FC1-064%under
2026-03-07Barcelona SC v Emelec1-069%under
2026-03-07Independiente del Valle v Mushuc Runa SC3-171%over
2026-03-03Manta FC v Independiente del Valle0-269%over
2026-03-01Emelec v Delfin SC1-167%over
2026-03-01LDU de Quito v Macara0-271%over
2026-03-01Mushuc Runa SC v Universidad Catolica0-075%under
2026-03-01Deportivo Cuenca v Barcelona SC2-168%over
2026-02-28Tecnico Universitario v Orense SC1-163%over
2026-02-28Leones del Norte v Libertad1-168%over
2026-02-28Guayaquil City FC v Aucas1-172%over
2026-02-24Libertad v Manta FC1-075%under
2026-02-22Macara v Leones del Norte0-069%under
2026-02-22Delfin SC v Deportivo Cuenca1-067%under
2026-02-22Independiente del Valle v Guayaquil City FC2-070%over
2026-02-21Orense SC v LDU de Quito1-268%over
2026-02-21Aucas v Mushuc Runa SC1-178%over
2026-02-21Barcelona SC v Tecnico Universitario1-072%under