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
23 teams · K=0.025 · league avg 1.151 goals/team/match · home advantage +0.478 log-units (~61%) · 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 |
|---|---|---|---|---|---|---|---|
| Bolívar | 0.640 | 0.360 | 1820 | 1680 | 2.18 | 0.80 | 148 |
| Always Ready | 0.618 | 0.245 | 1809 | 1623 | 2.13 | 0.90 | 142 |
| The Strongest | 0.434 | 0.094 | 1717 | 1547 | 1.78 | 1.05 | 149 |
| Real Oruro | 0.333 | -0.298 | 1667 | 1351 | 1.61 | 1.55 | 32 |
| San Antonio Bulo Bulo | 0.316 | -0.096 | 1658 | 1452 | 1.58 | 1.27 | 77 |
| Independiente Petrolero | 0.279 | -0.092 | 1639 | 1454 | 1.52 | 1.26 | 144 |
| Guabirá | 0.172 | -0.190 | 1586 | 1405 | 1.37 | 1.39 | 140 |
| Nacional Potosí | 0.147 | 0.121 | 1573 | 1561 | 1.33 | 1.02 | 144 |
| Gualberto Villarroel SJ | 0.110 | 0.019 | 1555 | 1509 | 1.28 | 1.13 | 70 |
| Aurora | 0.107 | -0.200 | 1553 | 1400 | 1.28 | 1.41 | 142 |
| Blooming | 0.012 | -0.136 | 1506 | 1432 | 1.16 | 1.32 | 144 |
| Oriente Petrolero | 0.004 | -0.148 | 1502 | 1426 | 1.16 | 1.34 | 142 |
| CD IN San Juan FC | -0.026 | -0.012 | 1487 | 1494 | 1.12 | 1.16 | 2 |
| Vaca Díez | -0.032 | -0.100 | 1484 | 1450 | 1.12 | 1.27 | 32 |
| Real Tomayapo | -0.047 | -0.026 | 1476 | 1487 | 1.10 | 1.18 | 140 |
| Libertad | -0.097 | -0.091 | 1451 | 1455 | 1.04 | 1.26 | 36 |
| Club Universitario | -0.099 | -0.071 | 1450 | 1465 | 1.04 | 1.24 | 42 |
| Atlético Palmaflor | -0.137 | -0.121 | 1432 | 1439 | 1.00 | 1.30 | 76 |
| Royal Pari | -0.144 | 0.019 | 1428 | 1509 | 1.00 | 1.13 | 114 |
| ABB | -0.166 | -0.261 | 1417 | 1369 | 0.98 | 1.49 | 32 |
| Santa Cruz | -0.179 | -0.300 | 1411 | 1350 | 0.96 | 1.55 | 110 |
| Jorge Wilstermann | -0.231 | -0.271 | 1384 | 1364 | 0.91 | 1.51 | 140 |
| Universitario de Vinto | -0.295 | -0.159 | 1352 | 1420 | 0.86 | 1.35 | 146 |
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 — Bolivia - Primera Division (160)
Switch leagues with the tabs above the ratings table; newest match first.
| Date | Match | Score | P(over) | Actual | Call |
|---|---|---|---|---|---|
| 2026-09-18 | Bolívar v Gualberto Villarroel SJ | 4-2 | 92% | over | ✓ |
| 2026-09-18 | Independiente Petrolero v San Antonio Bulo Bulo | 1-3 | 84% | over | ✓ |
| 2026-09-17 | Blooming v Universitario de Vinto | 1-1 | 80% | over | ✓ |
| 2026-09-17 | Real Tomayapo v Oriente Petrolero | 0-2 | 77% | over | ✓ |
| 2026-09-16 | Guabirá v Aurora | 3-1 | 85% | over | ✓ |
| 2026-09-16 | Nacional Potosí v Always Ready | 0-4 | 78% | over | ✓ |
| 2026-09-15 | Real Oruro v Real Potosí | 0-2 | 81% | over | ✓ |
| 2026-09-15 | ABB v The Strongest | 1-2 | 86% | over | ✓ |
| 2026-09-14 | Real Tomayapo v Bolívar | 1-2 | 82% | over | ✓ |
| 2026-09-13 | Always Ready v Guabirá | 6-0 | 88% | over | ✓ |
| 2026-09-13 | Universitario de Vinto v Independiente Petrolero | 3-1 | 80% | over | ✓ |
| 2026-09-12 | Real Potosí v Oriente Petrolero | 2-1 | 73% | over | ✓ |
| 2026-09-12 | Gualberto Villarroel SJ v Nacional Potosí | 0-3 | 75% | over | ✓ |
| 2026-09-12 | The Strongest v Real Oruro | 5-0 | 93% | over | ✓ |
| 2026-09-12 | Blooming v ABB | 6-1 | 79% | over | ✓ |
| 2026-09-11 | San Antonio Bulo Bulo v Aurora | 0-2 | 81% | over | ✓ |
| 2026-09-07 | Nacional Potosí v Blooming | 2-1 | 73% | over | ✓ |
| 2026-09-06 | Independiente Petrolero v Bolívar | 0-4 | 84% | over | ✓ |
| 2026-09-06 | The Strongest v Real Tomayapo | 3-1 | 82% | over | ✓ |
| 2026-09-05 | Guabirá v Real Potosí | 1-1 | 75% | over | ✓ |
| 2026-09-05 | Aurora v Gualberto Villarroel SJ | 3-0 | 80% | over | ✓ |
| 2026-09-05 | Oriente Petrolero v Always Ready | 1-2 | 81% | over | ✓ |
| 2026-09-04 | Real Oruro v San Antonio Bulo Bulo | 2-0 | 92% | over | ✓ |
| 2026-09-04 | ABB v Universitario de Vinto | 2-0 | 85% | over | ✓ |
| 2026-08-28 | Bolívar v ABB | 4-1 | 94% | over | ✓ |
| 2026-08-27 | Blooming v Real Oruro | 1-1 | 89% | over | ✓ |
| 2026-08-27 | Always Ready v Aurora | 2-2 | 86% | over | ✓ |
| 2026-08-27 | Independiente Petrolero v Guabirá | 3-1 | 85% | over | ✓ |
| 2026-08-26 | San Antonio Bulo Bulo v The Strongest | 0-3 | 83% | over | ✓ |
| 2026-08-26 | Real Potosí v Real Tomayapo | 0-1 | 73% | under | ✗ |
| 2026-08-25 | Gualberto Villarroel SJ v Oriente Petrolero | 3-3 | 76% | over | ✓ |
| 2026-08-25 | Universitario de Vinto v Nacional Potosí | 2-0 | 78% | over | ✓ |
| 2026-08-23 | Real Oruro v Bolívar | 2-4 | 93% | over | ✓ |
| 2026-08-23 | Guabirá v Blooming | 1-1 | 81% | over | ✓ |
| 2026-08-23 | Real Tomayapo v Always Ready | 1-1 | 77% | over | ✓ |
| 2026-08-22 | Oriente Petrolero v San Antonio Bulo Bulo | 4-0 | 84% | over | ✓ |
| 2026-08-22 | ABB v Gualberto Villarroel SJ | 2-2 | 78% | over | ✓ |
| 2026-08-22 | Aurora v Real Potosí | 0-0 | 75% | under | ✗ |
| 2026-08-22 | Nacional Potosí v Independiente Petrolero | 3-0 | 79% | over | ✓ |
| 2026-08-21 | The Strongest v Universitario de Vinto | 4-3 | 84% | over | ✓ |
| 2026-08-17 | Independiente Petrolero v Gualberto Villarroel SJ | 1-0 | 80% | under | ✗ |
| 2026-08-16 | Always Ready v Real Potosí | 1-1 | 79% | over | ✓ |
| 2026-08-16 | Nacional Potosí v ABB | 2-0 | 85% | over | ✓ |
| 2026-08-15 | Bolívar v San Antonio Bulo Bulo | 4-1 | 90% | over | ✓ |
| 2026-08-15 | Real Oruro v Oriente Petrolero | 2-3 | 89% | over | ✓ |
| 2026-08-15 | Guabirá v The Strongest | 3-1 | 82% | over | ✓ |
| 2026-08-15 | Blooming v Aurora | 3-0 | 78% | over | ✓ |
| 2026-08-14 | Universitario de Vinto v Real Tomayapo | 0-1 | 77% | under | ✗ |
| 2026-08-09 | Gualberto Villarroel SJ v Always Ready | 2-3 | 73% | over | ✓ |
| 2026-08-09 | Real Potosí v Blooming | 2-0 | 71% | over | ✓ |
| 2026-08-09 | Oriente Petrolero v Universitario de Vinto | 5-0 | 79% | over | ✓ |
| 2026-08-08 | San Antonio Bulo Bulo v Nacional Potosí | 2-1 | 80% | over | ✓ |
| 2026-08-08 | The Strongest v Independiente Petrolero | 1-2 | 83% | over | ✓ |
| 2026-08-08 | Aurora v Bolívar | 2-4 | 81% | over | ✓ |
| 2026-08-07 | ABB v Guabirá | 0-1 | 89% | under | ✗ |
| 2026-08-07 | Real Tomayapo v Real Oruro | 1-2 | 88% | over | ✓ |
| 2026-08-06 | Bolívar v Oriente Petrolero | 2-1 | 86% | over | ✓ |
| 2026-08-06 | Universitario de Vinto v Real Potosí | 0-2 | 72% | over | ✓ |
| 2026-08-06 | Blooming v Always Ready | 0-0 | 78% | under | ✗ |
| 2026-08-05 | Guabirá v Real Tomayapo | 3-0 | 86% | over | ✓ |
| 2026-08-05 | Gualberto Villarroel SJ v San Antonio Bulo Bulo | 0-0 | 81% | under | ✗ |
| 2026-08-05 | Nacional Potosí v The Strongest | 2-3 | 74% | over | ✓ |
| 2026-08-04 | ABB v Real Oruro | 4-1 | 93% | over | ✓ |
| 2026-08-04 | Independiente Petrolero v Aurora | 1-1 | 84% | over | ✓ |
| 2026-08-02 | Real Potosí v Gualberto Villarroel SJ | 0-0 | 76% | under | ✗ |
| 2026-08-02 | Always Ready v Bolívar | 1-0 | 85% | under | ✗ |
| 2026-08-02 | Oriente Petrolero v Nacional Potosí | 1-0 | 77% | under | ✗ |
| 2026-08-01 | Real Oruro v Independiente Petrolero | 0-3 | 93% | over | ✓ |
| 2026-08-01 | San Antonio Bulo Bulo v Blooming | 2-0 | 81% | over | ✓ |
| 2026-07-31 | Universitario de Vinto v Guabirá | 1-1 | 85% | over | ✓ |
| 2026-07-31 | The Strongest v Aurora | 1-1 | 83% | over | ✓ |
| 2026-07-31 | Real Tomayapo v ABB | 1-1 | 84% | over | ✓ |
| 2026-07-27 | Gualberto Villarroel SJ v Universitario de Vinto | 2-1 | 79% | over | ✓ |
| 2026-07-26 | Blooming v The Strongest | 1-1 | 76% | over | ✓ |
| 2026-07-26 | Bolívar v Real Potosí | 2-1 | 84% | over | ✓ |
| 2026-07-26 | Nacional Potosí v Real Tomayapo | 4-1 | 78% | over | ✓ |
| 2026-07-25 | Always Ready v San Antonio Bulo Bulo | 3-1 | 92% | over | ✓ |
| 2026-07-25 | Guabirá v Real Oruro | 4-1 | 94% | over | ✓ |
| 2026-07-25 | Independiente Petrolero v Oriente Petrolero | 1-2 | 84% | over | ✓ |
| 2026-07-24 | Aurora v ABB | 3-2 | 88% | over | ✓ |
| 2026-07-21 | Independiente Petrolero v Real Potosí | 1-2 | 80% | over | ✓ |
| 2026-07-20 | Blooming v Real Tomayapo | 1-0 | 81% | under | ✗ |
| 2026-07-20 | San Antonio Bulo Bulo v ABB | 2-1 | 89% | over | ✓ |
| 2026-07-20 | Nacional Potosí v Real Oruro | 1-4 | 89% | over | ✓ |
| 2026-07-19 | Aurora v Oriente Petrolero | 2-2 | 81% | over | ✓ |
| 2026-07-19 | Gualberto Villarroel SJ v The Strongest | 0-0 | 79% | under | ✗ |
| 2026-07-18 | Bolívar v Guabirá | 4-0 | 93% | over | ✓ |
| 2026-07-18 | Always Ready v Universitario de Vinto | 4-0 | 89% | over | ✓ |
| 2026-07-16 | The Strongest v Oriente Petrolero | 2-1 | 84% | over | ✓ |
| 2026-07-16 | ABB v Independiente Petrolero | 3-1 | 87% | over | ✓ |
| 2026-07-15 | Blooming v Gualberto Villarroel SJ | 1-1 | 82% | over | ✓ |
| 2026-07-15 | Real Potosí v San Antonio Bulo Bulo | 5-0 | 79% | over | ✓ |
| 2026-07-14 | Real Oruro v Always Ready | 0-6 | 88% | over | ✓ |
| 2026-07-12 | Real Potosí v Nacional Potosí | 1-1 | 71% | over | ✓ |
| 2026-07-12 | The Strongest v Bolívar | 1-1 | 84% | over | ✓ |
| 2026-07-12 | Real Tomayapo v Independiente Petrolero | 2-1 | 81% | over | ✓ |
| 2026-07-11 | Real Oruro v Gualberto Villarroel SJ | 3-1 | 90% | over | ✓ |
| 2026-07-10 | Nacional Potosí v Aurora | 2-0 | 80% | over | ✓ |
| 2026-07-09 | Real Potosí v ABB | 3-1 | 81% | over | ✓ |
| 2026-07-08 | Real Oruro v Universitario de Vinto | 4-1 | 88% | over | ✓ |
| 2026-07-07 | Gualberto Villarroel SJ v Real Tomayapo | 3-2 | 79% | over | ✓ |
| 2026-06-02 | Universitario de Vinto v Aurora | 1-2 | 79% | over | ✓ |
| 2026-05-31 | Oriente Petrolero v Blooming | 0-1 | 82% | under | ✗ |
| 2026-05-30 | ABB v Always Ready | 1-3 | 84% | over | ✓ |
| 2026-05-29 | San Antonio Bulo Bulo v Guabirá | 1-2 | 90% | over | ✓ |
| 2026-05-17 | Guabirá v Nacional Potosí | 2-1 | 84% | over | ✓ |
| 2026-05-16 | Real Tomayapo v Aurora | 0-2 | 79% | over | ✓ |
| 2026-05-16 | Universitario de Vinto v Bolívar | 3-2 | 80% | over | ✓ |
| 2026-05-15 | Oriente Petrolero v Guabirá | 2-2 | 87% | over | ✓ |
| 2026-05-14 | Bolívar v Nacional Potosí | 1-1 | 86% | over | ✓ |
| 2026-05-14 | Always Ready v The Strongest | 0-1 | 86% | under | ✗ |
| 2026-05-13 | Aurora v Real Oruro | 1-1 | 91% | over | ✓ |
| 2026-05-13 | Independiente Petrolero v Blooming | 3-1 | 85% | over | ✓ |
| 2026-05-12 | San Antonio Bulo Bulo v Universitario de Vinto | 0-2 | 85% | over | ✓ |
| 2026-05-11 | ABB v Oriente Petrolero | 3-1 | 83% | over | ✓ |
| 2026-05-10 | Independiente Petrolero v Always Ready | 0-0 | 87% | under | ✗ |
| 2026-05-10 | The Strongest v Real Potosí | 0-0 | 84% | under | ✗ |
| 2026-05-10 | Blooming v Bolívar | 0-0 | 87% | under | ✗ |
| 2026-05-09 | Guabirá v Gualberto Villarroel SJ | 3-0 | 86% | over | ✓ |
| 2026-05-09 | Real Tomayapo v San Antonio Bulo Bulo | 1-0 | 84% | under | ✗ |
| 2026-05-05 | Universitario de Vinto v Blooming | 1-1 | 82% | over | ✓ |
| 2026-05-03 | Gualberto Villarroel SJ v Bolívar | 1-2 | 84% | over | ✓ |
| 2026-05-03 | The Strongest v ABB | 3-1 | 92% | over | ✓ |
| 2026-05-02 | Always Ready v Nacional Potosí | 3-1 | 84% | over | ✓ |
| 2026-05-02 | Aurora v Guabirá | 4-2 | 88% | over | ✓ |
| 2026-05-02 | Oriente Petrolero v Real Tomayapo | 3-1 | 79% | over | ✓ |
| 2026-05-01 | San Antonio Bulo Bulo v Independiente Petrolero | 2-2 | 89% | over | ✓ |
| 2026-05-01 | Real Potosí v Real Oruro | 1-2 | 87% | over | ✓ |
| 2026-04-28 | Aurora v San Antonio Bulo Bulo | 3-1 | 86% | over | ✓ |
| 2026-04-26 | Real Oruro v The Strongest | 2-3 | 91% | over | ✓ |
| 2026-04-26 | Bolívar v Real Tomayapo | 6-0 | 88% | over | ✓ |
| 2026-04-26 | Oriente Petrolero v Real Potosí | 2-0 | 77% | over | ✓ |
| 2026-04-25 | Independiente Petrolero v Universitario de Vinto | 2-1 | 86% | over | ✓ |
| 2026-04-25 | Nacional Potosí v Gualberto Villarroel SJ | 1-1 | 81% | over | ✓ |
| 2026-04-25 | ABB v Blooming | 3-2 | 85% | over | ✓ |
| 2026-04-25 | Guabirá v Always Ready | 1-2 | 88% | over | ✓ |
| 2026-04-24 | Real Tomayapo v The Strongest | 0-0 | 84% | under | ✗ |
| 2026-04-23 | Blooming v Nacional Potosí | 2-1 | 81% | over | ✓ |
| 2026-04-23 | San Antonio Bulo Bulo v Real Oruro | 2-1 | 94% | over | ✓ |
| 2026-04-22 | Bolívar v Independiente Petrolero | 1-2 | 93% | over | ✓ |
| 2026-04-22 | Always Ready v Oriente Petrolero | 1-0 | 91% | under | ✗ |
| 2026-04-22 | Real Potosí v Guabirá | 3-0 | 85% | over | ✓ |
| 2026-04-21 | Universitario de Vinto v ABB | 5-2 | 77% | over | ✓ |
| 2026-04-21 | Gualberto Villarroel SJ v Aurora | 1-1 | 84% | over | ✓ |
| 2026-04-14 | Real Tomayapo v Real Potosí | 1-1 | 78% | over | ✓ |
| 2026-04-12 | Real Oruro v Blooming | 2-2 | 92% | over | ✓ |
| 2026-04-12 | The Strongest v San Antonio Bulo Bulo | 3-2 | 90% | over | ✓ |
| 2026-04-12 | Oriente Petrolero v Gualberto Villarroel SJ | 2-1 | 82% | over | ✓ |
| 2026-04-11 | Guabirá v Independiente Petrolero | 2-2 | 90% | over | ✓ |
| 2026-04-11 | ABB v Bolívar | 0-2 | 87% | over | ✓ |
| 2026-04-11 | Nacional Potosí v Universitario de Vinto | 1-0 | 83% | under | ✗ |
| 2026-04-11 | Aurora v Always Ready | 1-1 | 87% | over | ✓ |
| 2026-04-05 | Gualberto Villarroel SJ v ABB | 1-2 | 86% | over | ✓ |
| 2026-04-05 | Universitario de Vinto v The Strongest | 1-2 | 82% | over | ✓ |
| 2026-04-04 | Always Ready v Real Tomayapo | 4-0 | 90% | over | ✓ |
| 2026-04-04 | Real Potosí v Aurora | 0-0 | 85% | under | ✗ |
| 2026-04-04 | San Antonio Bulo Bulo v Oriente Petrolero | 2-0 | 89% | over | ✓ |
| 2026-04-03 | Bolívar v Real Oruro | 5-2 | 95% | over | ✓ |
| 2026-04-03 | Independiente Petrolero v Nacional Potosí | 0-3 | 86% | over | ✓ |
| 2026-04-03 | Blooming v Guabirá | 5-0 | 87% | over | ✓ |