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.363 goals/team/match · home advantage +0.236 log-units (~27%) · 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 |
|---|---|---|---|---|---|---|---|
| Bodo/Glimt | 0.680 | 0.350 | 1840 | 1675 | 2.69 | 0.96 | 120 |
| Viking | 0.549 | 0.226 | 1775 | 1613 | 2.36 | 1.09 | 120 |
| Brann | 0.210 | 0.092 | 1605 | 1546 | 1.68 | 1.24 | 90 |
| Sandefjord | 0.171 | 0.108 | 1585 | 1554 | 1.62 | 1.22 | 122 |
| Molde | 0.129 | 0.149 | 1565 | 1575 | 1.55 | 1.17 | 120 |
| Rosenborg | 0.105 | 0.089 | 1553 | 1545 | 1.51 | 1.25 | 120 |
| Sarpsborg 08 FF | 0.078 | -0.087 | 1539 | 1457 | 1.47 | 1.49 | 120 |
| Valerenga | 0.056 | -0.052 | 1528 | 1474 | 1.44 | 1.44 | 91 |
| Tromso | 0.049 | 0.243 | 1525 | 1621 | 1.43 | 1.07 | 120 |
| Kongsvinger | -0.017 | -0.018 | 1491 | 1491 | 1.34 | 1.39 | 2 |
| Ham-Kam | -0.026 | 0.066 | 1487 | 1533 | 1.33 | 1.28 | 120 |
| Moss | -0.049 | 0.005 | 1475 | 1502 | 1.30 | 1.36 | 2 |
| jerv | -0.072 | -0.107 | 1464 | 1446 | 1.27 | 1.52 | 30 |
| KFUM Oslo | -0.109 | 0.152 | 1445 | 1576 | 1.22 | 1.17 | 60 |
| Lillestrom | -0.125 | -0.187 | 1438 | 1407 | 1.20 | 1.64 | 90 |
| Stabaek | -0.129 | 0.004 | 1436 | 1502 | 1.20 | 1.36 | 30 |
| Fredrikstad | -0.141 | 0.250 | 1430 | 1625 | 1.18 | 1.06 | 60 |
| Bryne | -0.171 | -0.140 | 1415 | 1430 | 1.15 | 1.57 | 32 |
| Aalesund | -0.178 | -0.130 | 1411 | 1435 | 1.14 | 1.55 | 62 |
| Stromsgodset | -0.183 | -0.352 | 1409 | 1324 | 1.14 | 1.94 | 120 |
| Kristiansund BK | -0.194 | -0.184 | 1403 | 1408 | 1.12 | 1.64 | 91 |
| ODD Ballklubb | -0.214 | -0.076 | 1393 | 1462 | 1.10 | 1.47 | 90 |
| Haugesund | -0.391 | -0.431 | 1304 | 1284 | 0.92 | 2.10 | 122 |
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 — Norway - Eliteserien (161)
Switch leagues with the tabs above the ratings table; newest match first.
| Date | Match | Score | P(over) | Actual | Call |
|---|---|---|---|---|---|
| 2026-09-18 | Sarpsborg 08 FF v KFUM Oslo | 1-3 | 73% | over | ✓ |
| 2026-09-14 | Bodo/Glimt v Sandefjord | 3-2 | 84% | over | ✓ |
| 2026-09-13 | Viking v Kristiansund BK | 8-1 | 85% | over | ✓ |
| 2026-09-13 | Start v Brann | 2-0 | 84% | over | ✓ |
| 2026-09-13 | KFUM Oslo v Aalesund | 2-1 | 82% | over | ✓ |
| 2026-09-13 | Ham-Kam v Molde | 1-5 | 85% | over | ✓ |
| 2026-09-13 | Fredrikstad v Sarpsborg 08 FF | 1-1 | 70% | over | ✓ |
| 2026-09-12 | Lillestrom v Valerenga | 2-0 | 88% | over | ✓ |
| 2026-09-12 | Rosenborg v Tromso | 5-3 | 79% | over | ✓ |
| 2026-09-06 | Molde v KFUM Oslo | 2-0 | 85% | over | ✓ |
| 2026-09-06 | Sarpsborg 08 FF v Valerenga | 2-2 | 86% | over | ✓ |
| 2026-09-06 | Kristiansund BK v Tromso | 2-0 | 76% | over | ✓ |
| 2026-09-05 | Rosenborg v Ham-Kam | 4-0 | 82% | over | ✓ |
| 2026-09-05 | Brann v Lillestrom | 1-2 | 85% | over | ✓ |
| 2026-09-04 | Aalesund v Start | 2-0 | 88% | over | ✓ |
| 2026-09-04 | Fredrikstad v Bodo/Glimt | 1-2 | 81% | over | ✓ |
| 2026-09-04 | Sandefjord v Viking | 1-1 | 77% | over | ✓ |
| 2026-08-30 | Bodo/Glimt v Rosenborg | 4-2 | 86% | over | ✓ |
| 2026-08-30 | Tromso v Sarpsborg 08 FF | 0-0 | 80% | under | ✗ |
| 2026-08-30 | Valerenga v Molde | 3-4 | 89% | over | ✓ |
| 2026-08-30 | Sandefjord v Brann | 0-0 | 81% | under | ✗ |
| 2026-08-30 | Start v KFUM Oslo | 4-1 | 76% | over | ✓ |
| 2026-08-30 | Viking v Aalesund | 2-1 | 95% | over | ✓ |
| 2026-08-30 | Ham-Kam v Kristiansund BK | 2-2 | 76% | over | ✓ |
| 2026-08-30 | Lillestrom v Fredrikstad | 1-4 | 70% | over | ✓ |
| 2026-08-16 | Aalesund v Valerenga | 5-5 | 87% | over | ✓ |
| 2026-08-16 | Brann v Ham-Kam | 3-0 | 86% | over | ✓ |
| 2026-08-16 | Molde v Tromso | 3-2 | 82% | over | ✓ |
| 2026-08-16 | Sarpsborg 08 FF v Sandefjord | 1-2 | 73% | over | ✓ |
| 2026-08-16 | Fredrikstad v Kristiansund BK | 1-0 | 71% | under | ✗ |
| 2026-08-15 | KFUM Oslo v Lillestrom | 1-1 | 74% | over | ✓ |
| 2026-08-14 | Rosenborg v Viking | 2-1 | 83% | over | ✓ |
| 2026-08-09 | Lillestrom v Rosenborg | 0-2 | 78% | over | ✓ |
| 2026-08-09 | Ham-Kam v Aalesund | 1-1 | 87% | over | ✓ |
| 2026-08-09 | Kristiansund BK v Molde | 2-1 | 80% | over | ✓ |
| 2026-08-08 | Valerenga v Bodo/Glimt | 1-2 | 89% | over | ✓ |
| 2026-08-08 | Viking v Sarpsborg 08 FF | 2-1 | 86% | over | ✓ |
| 2026-08-08 | Start v Fredrikstad | 0-1 | 76% | under | ✗ |
| 2026-08-07 | Sandefjord v KFUM Oslo | 0-1 | 73% | under | ✗ |
| 2026-08-02 | Molde v Sarpsborg 08 FF | 3-3 | 78% | over | ✓ |
| 2026-08-02 | Aalesund v Tromso | 2-6 | 79% | over | ✓ |
| 2026-08-02 | KFUM Oslo v Kristiansund BK | 2-1 | 73% | over | ✓ |
| 2026-08-02 | Brann v Rosenborg | 3-2 | 83% | over | ✓ |
| 2026-08-01 | Fredrikstad v Sandefjord | 1-0 | 72% | under | ✗ |
| 2026-08-01 | Start v Viking | 0-3 | 88% | over | ✓ |
| 2026-07-31 | Valerenga v Ham-Kam | 0-3 | 85% | over | ✓ |
| 2026-07-31 | Bodo/Glimt v Lillestrom | 4-0 | 87% | over | ✓ |
| 2026-07-27 | Rosenborg v Fredrikstad | 4-0 | 73% | over | ✓ |
| 2026-07-26 | Brann v Valerenga | 2-3 | 88% | over | ✓ |
| 2026-07-26 | Sandefjord v Bodo/Glimt | 0-3 | 81% | over | ✓ |
| 2026-07-26 | Sarpsborg 08 FF v Ham-Kam | 1-0 | 80% | under | ✗ |
| 2026-07-26 | KFUM Oslo v Molde | 2-4 | 73% | over | ✓ |
| 2026-07-26 | Aalesund v Viking | 1-1 | 90% | over | ✓ |
| 2026-07-25 | Kristiansund BK v Start | 1-2 | 78% | over | ✓ |
| 2026-07-22 | Lillestrom v Viking | 1-2 | 85% | over | ✓ |
| 2026-07-22 | Bodo/Glimt v Ham-Kam | 3-0 | 90% | over | ✓ |
| 2026-07-18 | Ham-Kam v Tromso | 1-4 | 76% | over | ✓ |
| 2026-07-18 | Kristiansund BK v Sarpsborg 08 FF | 0-0 | 76% | under | ✗ |
| 2026-07-18 | Lillestrom v KFUM Oslo | 2-1 | 73% | over | ✓ |
| 2026-07-18 | Start v Rosenborg | 0-3 | 79% | over | ✓ |
| 2026-07-18 | Molde v Brann | 1-2 | 83% | over | ✓ |
| 2026-07-18 | Viking v Sandefjord | 2-1 | 87% | over | ✓ |
| 2026-07-17 | Bodo/Glimt v Fredrikstad | 1-0 | 87% | under | ✗ |
| 2026-07-16 | Valerenga v Aalesund | 6-1 | 82% | over | ✓ |
| 2026-07-12 | KFUM Oslo v Bodo/Glimt | 0-2 | 83% | over | ✓ |
| 2026-07-12 | Brann v Start | 2-1 | 88% | over | ✓ |
| 2026-07-12 | Rosenborg v Kristiansund BK | 3-0 | 76% | over | ✓ |
| 2026-07-12 | Sandefjord v Ham-Kam | 2-2 | 77% | over | ✓ |
| 2026-07-12 | Sarpsborg 08 FF v Viking | 1-0 | 88% | under | ✗ |
| 2026-07-11 | Fredrikstad v Lillestrom | 0-2 | 76% | over | ✓ |
| 2026-07-11 | Aalesund v Molde | 2-2 | 79% | over | ✓ |
| 2026-07-11 | Tromso v Valerenga | 4-0 | 76% | over | ✓ |
| 2026-05-30 | Molde v Sandefjord | 2-1 | 76% | over | ✓ |
| 2026-05-29 | Brann v Sarpsborg 08 FF | 1-2 | 87% | over | ✓ |
| 2026-05-29 | Valerenga v Kristiansund BK | 3-1 | 77% | over | ✓ |
| 2026-05-29 | Rosenborg v Bodo/Glimt | 2-2 | 84% | over | ✓ |
| 2026-05-29 | Aalesund v Ham-Kam | 2-2 | 80% | over | ✓ |
| 2026-05-29 | KFUM Oslo v Tromso | 0-0 | 72% | under | ✗ |
| 2026-05-29 | Fredrikstad v Start | 2-1 | 80% | over | ✓ |
| 2026-05-25 | Start v Valerenga | 2-0 | 83% | over | ✓ |
| 2026-05-25 | Tromso v Aalesund | 1-1 | 79% | over | ✓ |
| 2026-05-25 | Sarpsborg 08 FF v Molde | 2-1 | 79% | over | ✓ |
| 2026-05-25 | KFUM Oslo v Rosenborg | 2-0 | 74% | over | ✓ |
| 2026-05-25 | Ham-Kam v Lillestrom | 2-0 | 80% | over | ✓ |
| 2026-05-25 | Sandefjord v Fredrikstad | 1-1 | 74% | over | ✓ |
| 2026-05-24 | Bodo/Glimt v Brann | 3-1 | 91% | over | ✓ |
| 2026-05-24 | Kristiansund BK v Viking | 1-2 | 87% | over | ✓ |
| 2026-05-20 | Start v Bodo/Glimt | 1-4 | 88% | over | ✓ |
| 2026-05-20 | Lillestrom v Kristiansund BK | 1-2 | 78% | over | ✓ |
| 2026-05-20 | Aalesund v Brann | 2-1 | 86% | over | ✓ |
| 2026-05-16 | Brann v KFUM Oslo | 2-1 | 85% | over | ✓ |
| 2026-05-16 | Lillestrom v Sandefjord | 3-1 | 74% | over | ✓ |
| 2026-05-16 | Molde v Kristiansund BK | 1-0 | 81% | under | ✗ |
| 2026-05-16 | Rosenborg v Aalesund | 2-3 | 77% | over | ✓ |
| 2026-05-16 | Viking v Start | 6-3 | 90% | over | ✓ |
| 2026-05-16 | Fredrikstad v Ham-Kam | 2-1 | 77% | over | ✓ |
| 2026-05-16 | Bodo/Glimt v Tromso | 5-0 | 81% | over | ✓ |
| 2026-05-16 | Valerenga v Sarpsborg 08 FF | 3-2 | 79% | over | ✓ |
| 2026-05-10 | Rosenborg v Lillestrom | 2-0 | 75% | over | ✓ |
| 2026-05-10 | Tromso v Molde | 2-0 | 76% | over | ✓ |
| 2026-05-10 | Sandefjord v Kristiansund BK | 2-0 | 77% | over | ✓ |
| 2026-05-10 | KFUM Oslo v Viking | 0-2 | 85% | over | ✓ |
| 2026-05-09 | Sarpsborg 08 FF v Fredrikstad | 2-1 | 76% | over | ✓ |
| 2026-05-08 | Ham-Kam v Valerenga | 1-0 | 82% | under | ✗ |
| 2026-05-04 | Bodo/Glimt v Molde | 0-1 | 88% | under | ✗ |
| 2026-05-03 | Lillestrom v Sarpsborg 08 FF | 4-0 | 77% | over | ✓ |
| 2026-05-03 | Kristiansund BK v Ham-Kam | 1-1 | 81% | over | ✓ |
| 2026-05-03 | Sandefjord v Aalesund | 1-0 | 81% | under | ✗ |
| 2026-05-03 | Start v Tromso | 1-1 | 76% | over | ✓ |
| 2026-05-03 | Valerenga v KFUM Oslo | 2-2 | 77% | over | ✓ |
| 2026-05-02 | Brann v Fredrikstad | 3-1 | 83% | over | ✓ |
| 2026-05-01 | Viking v Rosenborg | 3-0 | 87% | over | ✓ |
| 2026-04-30 | Bodo/Glimt v Start | 5-0 | 87% | over | ✓ |
| 2026-04-29 | Tromso v Brann | 0-5 | 80% | over | ✓ |
| 2026-04-26 | Molde v Valerenga | 5-1 | 79% | over | ✓ |
| 2026-04-26 | Tromso v Sandefjord | 3-1 | 72% | over | ✓ |
| 2026-04-26 | Aalesund v Kristiansund BK | 1-1 | 81% | over | ✓ |
| 2026-04-26 | KFUM Oslo v Sarpsborg 08 FF | 1-0 | 78% | under | ✗ |
| 2026-04-26 | Ham-Kam v Start | 2-1 | 82% | over | ✓ |
| 2026-04-26 | Lillestrom v Bodo/Glimt | 0-2 | 84% | over | ✓ |
| 2026-04-25 | Fredrikstad v Viking | 1-2 | 84% | over | ✓ |
| 2026-04-25 | Rosenborg v Brann | 1-1 | 82% | over | ✓ |
| 2026-04-19 | Valerenga v Lillestrom | 0-2 | 79% | over | ✓ |
| 2026-04-19 | Kristiansund BK v Fredrikstad | 2-0 | 77% | over | ✓ |
| 2026-04-19 | Sarpsborg 08 FF v Tromso | 0-1 | 76% | under | ✗ |
| 2026-04-19 | Ham-Kam v KFUM Oslo | 4-0 | 79% | over | ✓ |
| 2026-04-19 | Start v Molde | 1-1 | 80% | over | ✓ |
| 2026-04-18 | Bodo/Glimt v Aalesund | 3-0 | 91% | over | ✓ |
| 2026-04-18 | Sandefjord v Rosenborg | 0-0 | 78% | under | ✗ |
| 2026-04-18 | Viking v Brann | 3-2 | 90% | over | ✓ |
| 2026-04-15 | Tromso v Lillestrom | 0-0 | 81% | under | ✗ |
| 2026-04-15 | Sarpsborg 08 FF v Bodo/Glimt | 1-1 | 88% | over | ✓ |
| 2026-04-12 | Rosenborg v Sarpsborg 08 FF | 2-1 | 81% | over | ✓ |
| 2026-04-12 | Molde v Ham-Kam | 4-1 | 81% | over | ✓ |
| 2026-04-12 | Aalesund v KFUM Oslo | 2-2 | 78% | over | ✓ |
| 2026-04-12 | Fredrikstad v Valerenga | 1-1 | 77% | over | ✓ |
| 2026-04-12 | Brann v Sandefjord | 0-1 | 85% | under | ✗ |
| 2026-04-11 | Lillestrom v Start | 3-1 | 80% | over | ✓ |
| 2026-04-11 | Tromso v Kristiansund BK | 2-0 | 83% | over | ✓ |
| 2026-04-11 | Viking v Bodo/Glimt | 5-0 | 89% | over | ✓ |
| 2026-04-07 | Aalesund v Fredrikstad | 2-3 | 76% | over | ✓ |
| 2026-04-07 | KFUM Oslo v Sandefjord | 1-2 | 76% | over | ✓ |
| 2026-04-06 | Valerenga v Viking | 0-1 | 86% | under | ✗ |
| 2026-04-06 | Kristiansund BK v Bodo/Glimt | 0-3 | 89% | over | ✓ |
| 2026-04-06 | Molde v Lillestrom | 0-1 | 84% | under | ✗ |
| 2026-04-06 | Sarpsborg 08 FF v Start | 1-1 | 83% | over | ✓ |
| 2026-04-06 | Ham-Kam v Brann | 1-5 | 82% | over | ✓ |
| 2026-04-06 | Tromso v Rosenborg | 2-0 | 79% | over | ✓ |
| 2026-03-22 | Rosenborg v Valerenga | 0-2 | 82% | over | ✓ |
| 2026-03-22 | Brann v Tromso | 1-2 | 82% | over | ✓ |
| 2026-03-22 | Sandefjord v Sarpsborg 08 FF | 0-2 | 84% | over | ✓ |
| 2026-03-22 | Fredrikstad v KFUM Oslo | 3-1 | 71% | over | ✓ |
| 2026-03-21 | Start v Aalesund | 1-1 | 82% | over | ✓ |
| 2026-03-21 | Viking v Molde | 4-1 | 86% | over | ✓ |
| 2026-03-15 | Kristiansund BK v Brann | 3-2 | 83% | over | ✓ |
| 2026-03-15 | Valerenga v Sandefjord | 1-0 | 84% | under | ✗ |
| 2026-03-15 | Aalesund v Lillestrom | 1-3 | 82% | over | ✓ |
| 2026-03-15 | KFUM Oslo v Start | 2-0 | 77% | over | ✓ |
| 2026-03-15 | Tromso v Fredrikstad | 4-0 | 72% | over | ✓ |
| 2026-03-14 | Ham-Kam v Viking | 2-1 | 85% | over | ✓ |
| 2026-03-14 | Molde v Rosenborg | 2-0 | 82% | over | ✓ |