Goal Elo
monitoring only -- not used by any card's picksAn 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.
Ratings
16 teams · K=0.025 · league avg 1.292 goals/team/match · home advantage +0.141 log-units (~15%) · seasons 2022, 2023, 2024, 2025 · generated 2026-09-19 10:32 UTC
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.
| Team | Attack | Defense | Atk Elo | Def Elo | GF vs avg defense | GA vs avg attack | Matches |
|---|---|---|---|---|---|---|---|
| East Bengal II | 0.237 | 0.132 | 1619 | 1566 | 1.64 | 1.13 | 13 |
| ATK Mohun Bagan | 0.181 | 0.366 | 1590 | 1683 | 1.55 | 0.90 | 89 |
| Bengaluru | 0.066 | 0.168 | 1533 | 1584 | 1.38 | 1.09 | 87 |
| NorthEast United | 0.033 | -0.049 | 1517 | 1475 | 1.34 | 1.36 | 80 |
| Goa | 0.025 | 0.211 | 1512 | 1605 | 1.32 | 1.05 | 84 |
| Odisha | 0.009 | -0.068 | 1505 | 1466 | 1.30 | 1.38 | 83 |
| Minerva Punjab | -0.002 | 0.079 | 1499 | 1539 | 1.29 | 1.19 | 59 |
| Mumbai City | -0.010 | 0.259 | 1495 | 1629 | 1.28 | 1.00 | 85 |
| Jamshedpur | -0.038 | 0.112 | 1481 | 1556 | 1.24 | 1.15 | 82 |
| Kerala Blasters | -0.054 | 0.004 | 1473 | 1502 | 1.22 | 1.29 | 81 |
| East Bengal | -0.096 | 0.003 | 1452 | 1502 | 1.17 | 1.29 | 66 |
| SC Delhi | -0.101 | 0.033 | 1449 | 1517 | 1.17 | 1.25 | 13 |
| Inter Kashi | -0.132 | 0.036 | 1434 | 1518 | 1.13 | 1.25 | 13 |
| Chennaiyin | -0.170 | -0.128 | 1415 | 1436 | 1.09 | 1.47 | 80 |
| Hyderabad | -0.222 | -0.171 | 1389 | 1414 | 1.03 | 1.53 | 68 |
| Mohammedan | -0.396 | -0.314 | 1302 | 1343 | 0.87 | 1.77 | 37 |
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.
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
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
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 — India - Indian Super League (91)
Switch leagues with the tabs above the ratings table; newest match first.
| Date | Match | Score | P(over) | Actual | Call |
|---|---|---|---|---|---|
| 2026-05-21 | Minerva Punjab v Mumbai City | 0-2 | 68% | over | ✓ |
| 2026-05-21 | Jamshedpur v Odisha | 0-0 | 79% | under | ✗ |
| 2026-05-21 | ATK Mohun Bagan v SC Delhi | 2-1 | 71% | over | ✓ |
| 2026-05-21 | Inter Kashi v East Bengal II | 1-2 | 75% | over | ✓ |
| 2026-05-19 | NorthEast United v Mohammedan | 2-0 | 81% | over | ✓ |
| 2026-05-18 | Kerala Blasters v Goa | 2-1 | 70% | over | ✓ |
| 2026-05-17 | SC Delhi v Inter Kashi | 0-0 | 72% | under | ✗ |
| 2026-05-17 | ATK Mohun Bagan v East Bengal II | 1-1 | 76% | over | ✓ |
| 2026-05-16 | Chennaiyin v Bengaluru | 1-2 | 73% | over | ✓ |
| 2026-05-16 | Odisha v Minerva Punjab | 2-3 | 76% | over | ✓ |
| 2026-05-15 | Mohammedan v Mumbai City | 0-4 | 69% | over | ✓ |
| 2026-05-12 | ATK Mohun Bagan v Inter Kashi | 0-0 | 77% | under | ✗ |
| 2026-05-11 | East Bengal II v Minerva Punjab | 0-0 | 81% | under | ✗ |
| 2026-05-10 | Kerala Blasters v Mohammedan | 3-1 | 73% | over | ✓ |
| 2026-05-10 | NorthEast United v Chennaiyin | 4-1 | 75% | over | ✓ |
| 2026-05-09 | Goa v ATK Mohun Bagan | 1-1 | 69% | over | ✓ |
| 2026-05-09 | Jamshedpur v Bengaluru | 0-1 | 74% | under | ✗ |
| 2026-05-08 | SC Delhi v Odisha | 1-2 | 77% | over | ✓ |
| 2026-05-06 | Minerva Punjab v Chennaiyin | 1-0 | 76% | under | ✗ |
| 2026-05-05 | Mumbai City v East Bengal II | 1-2 | 73% | over | ✓ |
| 2026-05-04 | Odisha v Bengaluru | 1-1 | 78% | over | ✓ |
| 2026-05-02 | NorthEast United v Inter Kashi | 3-2 | 74% | over | ✓ |
| 2026-05-02 | SC Delhi v Minerva Punjab | 0-0 | 77% | under | ✗ |
| 2026-05-01 | Jamshedpur v Goa | 2-0 | 72% | over | ✓ |
| 2026-04-28 | East Bengal II v Odisha | 3-0 | 84% | over | ✓ |
| 2026-04-26 | SC Delhi v Mohammedan | 2-2 | 74% | over | ✓ |
| 2026-04-25 | Bengaluru v Mumbai City | 0-0 | 71% | under | ✗ |
| 2026-04-25 | Jamshedpur v Chennaiyin | 4-1 | 72% | over | ✓ |
| 2026-04-24 | NorthEast United v Goa | 0-2 | 73% | over | ✓ |
| 2026-04-23 | Kerala Blasters v Odisha | 2-1 | 76% | over | ✓ |
| 2026-04-21 | Chennaiyin v Mohammedan | 0-0 | 75% | under | ✗ |
| 2026-04-20 | Minerva Punjab v Inter Kashi | 3-0 | 75% | over | ✓ |
| 2026-04-19 | NorthEast United v ATK Mohun Bagan | 0-1 | 78% | under | ✗ |
| 2026-04-18 | Kerala Blasters v Jamshedpur | 2-0 | 72% | over | ✓ |
| 2026-04-18 | Goa v Mumbai City | 2-0 | 67% | over | ✓ |
| 2026-04-17 | Chennaiyin v SC Delhi | 1-0 | 76% | under | ✗ |
| 2026-04-17 | Odisha v Mohammedan | 1-1 | 82% | over | ✓ |
| 2026-04-16 | East Bengal II v Bengaluru | 3-3 | 78% | over | ✓ |
| 2026-04-15 | Kerala Blasters v NorthEast United | 1-1 | 76% | over | ✓ |
| 2026-04-12 | Inter Kashi v Mohammedan | 1-0 | 78% | under | ✗ |
| 2026-04-12 | ATK Mohun Bagan v Minerva Punjab | 3-2 | 77% | over | ✓ |
| 2026-04-11 | Chennaiyin v East Bengal II | 1-3 | 78% | over | ✓ |
| 2026-04-11 | Bengaluru v Kerala Blasters | 1-2 | 75% | over | ✓ |
| 2026-04-10 | NorthEast United v SC Delhi | 0-3 | 78% | over | ✓ |
| 2026-04-10 | Goa v Odisha | 3-1 | 75% | over | ✓ |
| 2026-04-09 | Jamshedpur v Mumbai City | 1-1 | 69% | over | ✓ |
| 2026-04-07 | Chennaiyin v Inter Kashi | 1-2 | 73% | over | ✓ |
| 2026-04-05 | SC Delhi v Kerala Blasters | 2-0 | 75% | over | ✓ |
| 2026-04-05 | Mumbai City v Odisha | 1-0 | 76% | under | ✗ |
| 2026-04-04 | Jamshedpur v ATK Mohun Bagan | 1-1 | 74% | over | ✓ |
| 2026-04-04 | Goa v Bengaluru | 0-2 | 71% | over | ✓ |
| 2026-04-03 | Minerva Punjab v Mohammedan | 2-1 | 80% | over | ✓ |
| 2026-03-23 | East Bengal II v Mohammedan | 7-0 | 76% | over | ✓ |
| 2026-03-22 | Chennaiyin v Goa | 1-1 | 72% | over | ✓ |
| 2026-03-22 | Inter Kashi v Bengaluru | 1-3 | 71% | over | ✓ |
| 2026-03-21 | Kerala Blasters v Minerva Punjab | 1-3 | 73% | over | ✓ |
| 2026-03-20 | NorthEast United v Odisha | 1-4 | 79% | over | ✓ |
| 2026-03-20 | ATK Mohun Bagan v Mumbai City | 0-1 | 74% | under | ✗ |
| 2026-03-19 | SC Delhi v Jamshedpur | 1-1 | 76% | over | ✓ |
| 2026-03-16 | Minerva Punjab v Goa | 1-1 | 72% | over | ✓ |
| 2026-03-15 | NorthEast United v Jamshedpur | 2-1 | 76% | over | ✓ |
| 2026-03-15 | Inter Kashi v Mumbai City | 1-2 | 69% | over | ✓ |
| 2026-03-14 | East Bengal II v Kerala Blasters | 1-1 | 75% | over | ✓ |
| 2026-03-14 | Bengaluru v ATK Mohun Bagan | 0-0 | 77% | under | ✗ |
| 2026-03-09 | Minerva Punjab v NorthEast United | 1-1 | 77% | over | ✓ |
| 2026-03-08 | Mumbai City v SC Delhi | 2-2 | 72% | over | ✓ |
| 2026-03-07 | Mohammedan v Bengaluru | 1-2 | 73% | over | ✓ |
| 2026-03-07 | Kerala Blasters v Chennaiyin | 0-1 | 75% | under | ✗ |
| 2026-03-06 | ATK Mohun Bagan v Odisha | 5-1 | 78% | over | ✓ |
| 2026-03-06 | Jamshedpur v Inter Kashi | 1-0 | 75% | under | ✗ |
| 2026-03-05 | East Bengal II v Goa | 0-0 | 76% | under | ✗ |
| 2026-03-01 | Odisha v Chennaiyin | 1-1 | 79% | over | ✓ |
| 2026-03-01 | Mumbai City v NorthEast United | 1-1 | 73% | over | ✓ |
| 2026-02-28 | Kerala Blasters v Inter Kashi | 1-2 | 73% | over | ✓ |
| 2026-02-28 | ATK Mohun Bagan v Mohammedan | 5-1 | 74% | over | ✓ |
| 2026-02-27 | East Bengal II v Jamshedpur | 1-2 | 78% | over | ✓ |
| 2026-02-27 | Bengaluru v Minerva Punjab | 0-2 | 77% | over | ✓ |
| 2026-02-26 | Goa v SC Delhi | 1-0 | 78% | under | ✗ |
| 2026-02-24 | Odisha v Inter Kashi | 0-0 | 79% | under | ✗ |
| 2026-02-23 | ATK Mohun Bagan v Chennaiyin | 2-0 | 78% | over | ✓ |
| 2026-02-22 | Bengaluru v NorthEast United | 1-1 | 79% | over | ✓ |
| 2026-02-22 | Kerala Blasters v Mumbai City | 0-1 | 72% | under | ✗ |
| 2026-02-21 | East Bengal II v SC Delhi | 4-1 | 76% | over | ✓ |
| 2026-02-21 | Jamshedpur v Minerva Punjab | 1-0 | 80% | under | ✗ |
| 2026-02-20 | Mohammedan v Goa | 0-2 | 72% | over | ✓ |
| 2026-02-19 | Mumbai City v Chennaiyin | 1-0 | 77% | under | ✗ |
| 2026-02-16 | East Bengal II v NorthEast United | 3-0 | 78% | over | ✓ |
| 2026-02-15 | Jamshedpur v Mohammedan | 1-0 | 76% | under | ✗ |
| 2026-02-15 | Bengaluru v SC Delhi | 2-0 | 78% | over | ✓ |
| 2026-02-14 | ATK Mohun Bagan v Kerala Blasters | 2-0 | 76% | over | ✓ |
| 2026-02-14 | Goa v Inter Kashi | 1-1 | 77% | over | ✓ |