‹ ›

1948-49 Prva savezna liga Season

90 games

Final

Champion

Partizan

29 points

Relegated

No relegation

Biggest Overachiever

Red Star Belgrade

5.54 points above expected

26 points · 20.46 expected points

Biggest Disappointment

Sloga Novi Sad

3.21 points below expected

12 points · 15.21 expected points

League Table

The final standings for the season. vsSim shows actual points minus the simulation's mean — positive means the team overachieved against the model, negative means they underperformed.

# Team GP W D L Pts GF GA GD SimPts vsSim
1 Partizan 18 14 1 3 29 39 14 +25 23.88 +5.12
2 Red Star Belgrade 18 11 4 3 26 37 19 +18 20.46 +5.54
3 Hajduk Split 18 10 5 3 25 41 20 +21 22.78 +2.22
4 Dinamo Zagreb 18 7 5 6 19 29 25 +4 21.37 -2.37
5 Nasa Krila Zemun 18 6 4 8 16 32 28 +4 17.21 -1.21
6 Buducnost Titograd 18 6 4 8 16 29 36 -7 15.07 +0.93
7 Metalac Beograd 18 5 4 9 14 31 34 -3 16.01 -2.01
8 Lokomotiva Zagreb 18 6 1 11 13 23 38 -15 16.10 -3.10
9 Sloga Novi Sad 18 5 2 11 12 17 31 -14 15.21 -3.21
10 Ponziana Trieste 18 3 4 11 10 12 45 -33 11.91 -1.91

Top Overachievers & Disappointments

Teams that most beat — or most fell short of — their simulated point projections. A positive vsSim means the team accumulated more points than the model expected on average; a negative one means fewer.

Biggest Overachievers

# Team Actual Sim vsSim
1 Red Star Belgrade 26 20.46 +5.54
2 Partizan 29 23.88 +5.12
3 Hajduk Split 25 22.78 +2.22
4 Buducnost Titograd 16 15.07 +0.93
5 Nasa Krila Zemun 16 17.21 -1.21

Biggest Disappointments

# Team Actual Sim vsSim
1 Sloga Novi Sad 12 15.21 -3.21
2 Lokomotiva Zagreb 13 16.10 -3.10
3 Dinamo Zagreb 19 21.37 -2.37
4 Metalac Beograd 14 16.01 -2.01
5 Ponziana Trieste 10 11.91 -1.91

Top Streaks

Ranked by model unlikelihood — the product of pregame W/D/L probabilities over the games in each team's streak. A short streak by a poor team can outrank a longer one by a strong team since the poor team's per-game probabilities were lower going in. Unbeaten counts consecutive wins or ties; Winless counts consecutive losses or ties.

Most Unlikely Winning Streaks

# Team Games Dates Probability
1 Partizan 10 Oct 10 – Apr 24 1 in 476
2 Nasa Krila Zemun 2 Mar 13 – Mar 27 1 in 25
3 Red Star Belgrade 4 Mar 13 – Apr 10 1 in 19
4 Dinamo Zagreb 3 Oct 3 – Oct 17 1 in 12
5 Hajduk Split 3 Dec 5 – Mar 27 1 in 7

Most Unlikely Losing Streaks

# Team Games Dates Probability
1 Nasa Krila Zemun 5 Oct 10 – Dec 19 1 in 121
2 Dinamo Zagreb 2 Mar 13 – Mar 27 1 in 23
3 Metalac Beograd 3 May 11 – May 21 1 in 11
4 Sloga Novi Sad 4 Mar 20 – Apr 10 1 in 8
5 Ponziana Trieste 4 Oct 17 – Oct 31 1 in 7

Most Unlikely Unbeaten Streaks

# Team Games Dates Probability
1 Partizan 14 Oct 10 – May 18 1 in 51
2 Nasa Krila Zemun 4 Sep 11 – Oct 2 1 in 14
3 Ponziana Trieste 3 Sep 26 – Oct 10 1 in 11
4 Red Star Belgrade 5 Sep 12 – Oct 10 1 in 9
5 Hajduk Split 6 Nov 30 – Apr 10 1 in 9

Most Unlikely Winless Streaks

# Team Games Dates Probability
1 Nasa Krila Zemun 8 Sep 21 – Dec 19 1 in 46
2 Dinamo Zagreb 4 Dec 5 – Apr 3 1 in 14
3 Sloga Novi Sad 4 Oct 13 – Nov 21 1 in 9
4 Ponziana Trieste 7 Oct 17 – Mar 27 1 in 9
5 Lokomotiva Zagreb 4 Oct 31 – Mar 13 1 in 7

Position Race

Each team’s league position across the whole season. Colored teams are the season’s headline finishers — champion, promoted, and relegated; everyone else is gray as context.

Recent Form

Each team’s last 5 games, hottest first. Form shows the results (navy win, gray draw, red loss, newest on the right); the bars show Elo change over the window, points taken, points expected from the odds, and actual minus expected. Beside each team: current Elo and season points.

Team Elo Season Pts Form Elo Δ (5) Points (5) Expected (5) Actual − Exp
Partizan 1775 29 +0 7 6.9 +0.1
Red Star Belgrade 1707 26 +57 6 5.4 +0.6
Hajduk Split 1715 25 +2 6 5.3 +0.7
Dinamo Zagreb 1595 19 -45 4 6.3 -2.3
Nasa Krila Zemun 1536 16 +14 6 5.8 +0.2
Buducnost Titograd 1496 16 +33 5 4.1 +0.9
Metalac Beograd 1448 14 -13 4 4.9 -0.9
Lokomotiva Zagreb 1420 13 -12 4 4.0 +0.0
Sloga Novi Sad 1458 12 +16 6 4.8 +1.2
Ponziana Trieste 1291 10 +6 2 1.5 +0.5

Head-to-Head

Each cell shows a team's record in that matchup (row vs column, formatted W-D-L) with the model's expected points on the line below. Navy-tinted cells mean the team beat the model's expectations by more than one point in that matchup; gold-tinted cells mean they fell short by the same margin.

Beat expectations Fell short Within expectations
Team BT DZ HS LZ MB NKZ PAR PT RSB SNS
Buducnost Titograd —
0-1-1
1.73
0-0-2
1.66
1-0-1
2.63
1-0-1
2.78
1-0-1
2.60
1-0-1
1.16
0-2-0
3.15
0-1-1
2.00
2-0-0
2.68
Dinamo Zagreb
1-1-0
3.89
—
1-1-0
2.42
2-0-0
3.62
0-2-0
3.58
0-0-2
3.65
1-0-1
2.51
1-1-0
4.34
0-0-2
3.02
1-0-1
3.72
Hajduk Split
2-0-0
3.96
0-1-1
3.18
—
1-1-0
3.75
2-0-0
3.54
0-2-0
3.59
0-0-2
2.73
2-0-0
4.12
1-1-0
2.97
2-0-0
3.80
Lokomotiva Zagreb
1-0-1
2.97
0-0-2
1.99
0-1-1
1.87
—
1-0-1
3.01
1-0-1
2.60
0-0-2
1.61
2-0-0
3.33
0-0-2
2.41
1-0-1
2.78
Metalac Beograd
1-0-1
2.82
0-2-0
2.03
0-0-2
2.08
1-0-1
2.59
—
0-1-1
2.66
0-0-2
1.32
2-0-0
3.11
0-0-2
2.24
1-1-0
3.07
Nasa Krila Zemun
1-0-1
3.00
2-0-0
1.96
0-2-0
2.01
1-0-1
3.00
1-1-0
2.95
—
0-0-2
2.05
1-0-1
3.50
0-1-1
2.52
0-0-2
3.19
Partizan
1-0-1
4.46
1-0-1
3.09
2-0-0
2.87
2-0-0
4.00
2-0-0
4.30
2-0-0
3.57
—
2-0-0
4.55
1-1-0
3.45
1-0-1
3.89
Ponziana Trieste
0-2-0
2.46
0-1-1
1.28
0-0-2
1.51
0-0-2
2.28
0-0-2
2.49
1-0-1
2.11
0-0-2
1.10
—
1-0-1
1.15
1-1-0
2.31
Red Star Belgrade
1-1-0
3.61
2-0-0
2.58
0-1-1
2.64
2-0-0
3.19
2-0-0
3.36
1-1-0
3.09
0-1-1
2.16
1-0-1
4.47
—
2-0-0
3.26
Sloga Novi Sad
0-0-2
2.93
1-0-1
1.89
0-0-2
1.81
1-0-1
2.83
0-1-1
2.53
2-0-0
2.41
1-0-1
1.73
0-1-1
3.29
0-0-2
2.35
—

Points vs. Goals Scored, Allowed, and Differential

Points plotted against goals scored, allowed, and differential. Use the buttons to switch views; hover a team for exact values. The table gives each fit's R² and slope (the change in points per 10 goals).

Fit Metrics

R² Slope
Scored 0.77 +6.1
Allowed 0.87 -6.3
Differential 0.89 +3.4

Scoreline Distribution

Percentage of games ending with each combination of team-goals (rows) and opponent-goals (columns). The diagonal shows draws; cells below the diagonal are wins from the row team's perspective, cells above are losses. Marginal totals on the right and bottom show how often each goal count occurred regardless of opponent. Use the picker to switch between the league-wide view and any individual team.

↓ Scored | Allowed →012345+Total
05.56%3.89%5.56%5.56%3.33%0.56%24.44%
13.89%11.11%7.22%6.11%2.22%1.11%31.67%
25.56%7.22%2.22%2.22%0.56%1.67%19.44%
35.56%6.11%2.22%——0.56%14.44%
43.33%2.22%0.56%———6.11%
5+0.56%1.11%1.67%0.56%——3.89%
Total24.44%31.67%19.44%14.44%6.11%3.89%100%

Summary Statistics

Scored Allowed Difference
Mean 1.61 1.61 +0.00
SD 1.47 1.47 2.32
CV 0.91 0.91 —
Max 8 8 +7
Min 0 0 -7

Games Played: 90

↓ Scored | Allowed →012345+Total
05.56%————5.56%11.11%
15.56%16.67%16.67%5.56%——44.44%
25.56%5.56%—5.56%—5.56%22.22%
35.56%5.56%———5.56%16.67%
4——5.56%———5.56%
5+———————
Total22.22%27.78%22.22%11.11%—16.67%100%

Summary Statistics

Scored Allowed Difference
Mean 1.61 2.00 -0.39
SD 1.09 1.97 2.30
CV 0.68 0.99 —
Max 4 7 +3
Min 0 0 -7

Games Played: 18

↓ Scored | Allowed →012345+Total
05.56%5.56%11.11%———22.22%
1—16.67%5.56%11.11%——33.33%
2—11.11%5.56%———16.67%
311.11%11.11%————22.22%
4———————
5+———5.56%——5.56%
Total16.67%44.44%22.22%16.67%——100%

Summary Statistics

Scored Allowed Difference
Mean 1.61 1.39 +0.22
SD 1.38 0.98 1.70
CV 0.86 0.70 —
Max 5 3 +3
Min 0 0 -2

Games Played: 18

↓ Scored | Allowed →012345+Total
0——5.56%———5.56%
1—27.78%5.56%5.56%——38.89%
2—11.11%————11.11%
316.67%—5.56%———22.22%
45.56%5.56%————11.11%
5+—5.56%5.56%———11.11%
Total22.22%50.00%22.22%5.56%——100%

Summary Statistics

Scored Allowed Difference
Mean 2.28 1.11 +1.17
SD 1.53 0.83 1.95
CV 0.67 0.75 —
Max 5 3 +4
Min 0 0 -2

Games Played: 18

↓ Scored | Allowed →012345+Total
0—5.56%11.11%16.67%5.56%—38.89%
15.56%5.56%5.56%5.56%5.56%—27.78%
25.56%5.56%———5.56%16.67%
3———————
411.11%5.56%————16.67%
5+———————
Total22.22%22.22%16.67%22.22%11.11%5.56%100%

Summary Statistics

Scored Allowed Difference
Mean 1.28 2.11 -0.83
SD 1.45 2.00 2.83
CV 1.13 0.95 —
Max 4 8 +4
Min 0 0 -6

Games Played: 18

↓ Scored | Allowed →012345+Total
05.56%5.56%—16.67%5.56%—33.33%
1—11.11%5.56%5.56%5.56%5.56%33.33%
211.11%—5.56%———16.67%
3———————
45.56%—————5.56%
5+5.56%—5.56%———11.11%
Total27.78%16.67%16.67%22.22%11.11%5.56%100%

Summary Statistics

Scored Allowed Difference
Mean 1.72 1.89 -0.17
SD 2.35 1.60 3.28
CV 1.36 0.85 —
Max 8 5 +7
Min 0 0 -4

Games Played: 18

↓ Scored | Allowed →012345+Total
011.11%5.56%——5.56%—22.22%
1—11.11%5.56%16.67%——33.33%
211.11%——11.11%——22.22%
3—5.56%————5.56%
45.56%—————5.56%
5+—5.56%5.56%———11.11%
Total27.78%27.78%11.11%27.78%5.56%—100%

Summary Statistics

Scored Allowed Difference
Mean 1.78 1.56 +0.22
SD 1.73 1.34 2.32
CV 0.98 0.86 —
Max 6 4 +4
Min 0 0 -4

Games Played: 18

↓ Scored | Allowed →012345+Total
0—5.56%5.56%———11.11%
111.11%—5.56%———16.67%
216.67%5.56%5.56%———27.78%
311.11%16.67%5.56%———33.33%
45.56%5.56%————11.11%
5+———————
Total44.44%33.33%22.22%———100%

Summary Statistics

Scored Allowed Difference
Mean 2.17 0.78 +1.39
SD 1.20 0.81 1.58
CV 0.55 1.04 —
Max 4 2 +4
Min 0 0 -2

Games Played: 18

↓ Scored | Allowed →012345+Total
016.67%—11.11%16.67%16.67%—61.11%
1—5.56%——5.56%5.56%16.67%
2—11.11%———5.56%16.67%
3——5.56%———5.56%
4———————
5+———————
Total16.67%16.67%16.67%16.67%22.22%11.11%100%

Summary Statistics

Scored Allowed Difference
Mean 0.67 2.50 -1.83
SD 0.97 1.79 1.98
CV 1.46 0.72 —
Max 3 6 +1
Min 0 0 -4

Games Played: 18

↓ Scored | Allowed →012345+Total
05.56%5.56%————11.11%
1—11.11%5.56%———16.67%
25.56%16.67%5.56%5.56%——33.33%
311.11%16.67%5.56%———33.33%
4—5.56%————5.56%
5+———————
Total22.22%55.56%16.67%5.56%——100%

Summary Statistics

Scored Allowed Difference
Mean 2.06 1.06 +1.00
SD 1.11 0.80 1.37
CV 0.54 0.76 —
Max 4 3 +3
Min 0 0 -1

Games Played: 18

↓ Scored | Allowed →012345+Total
05.56%5.56%11.11%5.56%——27.78%
116.67%5.56%16.67%11.11%5.56%—55.56%
2—5.56%——5.56%—11.11%
3—5.56%————5.56%
4———————
5+———————
Total22.22%22.22%27.78%16.67%11.11%—100%

Summary Statistics

Scored Allowed Difference
Mean 0.94 1.72 -0.78
SD 0.80 1.32 1.52
CV 0.85 0.77 —
Max 3 4 +2
Min 0 0 -3

Games Played: 18

Season Summary

Every team's regular-season finish compared against 100,000 simulations. Click any column header to sort. Luck is the team's actual points minus the sim's mean — positive means the team beat the model. Percentile is where the actual result fell in the team's sim distribution (e.g. 90% = the team did this well or better in only 10% of sims).

Team Elo Points Avg Luck Percentile Min 5th Q1 Median Q3 95th Max
Partizan 1775 29 23.88 +5.12 98.0% 16 20 22 24 25 29 31
Hajduk Split 1715 25 22.78 +2.22 81.0% 14 17 21 23 25 27 30
Red Star Belgrade 1707 26 20.46 +5.54 95.0% 13 14 18 20 23 26 30
Dinamo Zagreb 1595 19 21.37 -2.37 27.0% 14 15 19 21 24 26 28
Nasa Krila Zemun 1536 16 17.21 -1.21 41.0% 7 12 15 17 20 22 25
Buducnost Titograd 1496 16 15.07 +0.93 70.0% 6 10 13 15 17 20 21
Sloga Novi Sad 1458 12 15.21 -3.21 21.0% 7 9 13 15 17 20 25
Metalac Beograd 1448 14 16.01 -2.01 34.0% 9 11 14 16 18 21 23
Lokomotiva Zagreb 1420 13 16.10 -3.10 27.0% 10 11 13 16 19 22 25
Ponziana Trieste 1291 10 11.91 -1.91 35.0% 4 7 10 12 14 18 19

Point Totals in Context

How did each team's actual results compare to their simulated points, Elo rating, average opponent Elo, and percentile within simulated outcomes? Use the buttons to switch between views. In each chart, dashed crosshairs at the league means split the plot into four quadrants: pastel green (team did well, model agreed), pastel red (team did poorly, model agreed), and pastel yellow (model and reality disagreed).

Home-Field Advantage Edge

The simulation applies the same home-field boost to every game across the league, so the per-game home win probabilities bake in the model's idea of HFA. For each team, we sum expected points at home and compare to actual home points, and the same on the road. The bar shows (home points above expected) minus (away points above expected). A tall positive bar means the team's home/road split exceeded what the model predicted — a real fortress effect. A tall negative bar means the reverse: they played worse at home or better on the road than expected.

Season Trends

How each metric evolved across the season - Elo rating, actual and projected points, title/promotion probability, and relegation probability - day by day.

Edges & Scoring

How these are measured

The navy dot is the actual value, the gold line and key are the model's reference where one applies, and the slate ticks are the cutoffs between read labels listed under each metric.

Home Edge
Share of matches won by the home team minus the share won by the away team.
No Edge: under 33.5% * Slight Edge: 33.5% to 40% * Clear Edge: 40% to 45.5% * Strong Edge: 45.5% and up.
Elo Value
Number of Elo rating points one goal is worth. A team this many Elo points better than another is expected to win by one goal on a neutral field.
Scoring Tilt
Average home goals minus average away goals per match. The gold line is the home goals edge implied by the scoring value of an Elo point and the home-field Elo bonus.
Road-Tilted: under -0.2 * Neutral: -0.2 to 0.5 * Home-Tilted: 0.5 to 1.2 * Strong Home: 1.2 and up.
Home Edge
HomeDrawAway
+34.44%
Slight Edge
57.78%18.89%23.33%
Elo Value
Home Edge
158 Elo
0.006 goals per Elo point
0124.77400
Scoring Tilt
Expected
+0.82 goals
Home-Tilted
-2+0.79+2

Title Race

How these are measured

The navy dot is the actual value, the gold line and key are the model's reference where one applies, and the slate ticks are the cutoffs between read labels listed under each metric.

Title-Race Openness
Effective number of teams with a live shot at finishing 1st, from the simulation. 1 means the favorite is a near-lock; larger means a wide-open race. Equal to 1 divided by the sum of squared title odds.
One-Team Race: under 4 * Top-Heavy: 4 to 5 * Open: 5 to 7 * Wide Open: 7 and up.
Champion Preseason Odds
Preseason probability that the eventual champion would finish 1st, from the simulation. The dot marks their rank across all teams, from longshot to favorite.
Preseason Favorite: 1st * Among the Favorites: 2nd * Middle of the Pack: 3rd to 5th * Longshot: 6th or lower.
Title Margin
Points-per-game gap between the champion and the runner-up. Shown per game so it reads the same across long and short seasons. The gold line is the winning margin the model expected, so a dot to the right means a more one-sided race than projected. A title won on goal difference shows 0.00.
Photo Finish: under 0.05 * Tight Race: 0.05 to 0.09 * Comfortable: 0.09 to 0.17 * Runaway: 0.17 and up.
Title-Race Openness
3.5
One-Team Race
145710
Champion Preseason Odds
43%
Partizan, 1st of 10
LongshotFavorite
Title Margin
Expected
0.17/gm
Comfortable
00.130.5/gm

Simulation-Based Surprises

How these are measured

The navy dot is the actual value, the gold line and key are the model's reference where one applies, and the slate ticks are the cutoffs between read labels listed under each metric.

Luck Spread
Standard deviation of the gap between each team's actual points and their simulated average points. The gold line is the spread the model expected from chance alone.
As Expected: under 2.58 * Some Luck: 2.58 to 3.87 * Lucky: 3.87 to 5.16 * Wild Swing: 5.16 and up.
Average Finish Error
Average gap between where each team was projected to finish and where they actually finished in the table.
Pinpoint: under 1.22 * Close: 1.22 to 1.84 * Off: 1.84 to 2.45 * Way Off: 2.45 and up.
Biggest Overachiever
The team that finished highest inside its own range of simulated outcomes. The gold line is where the top team in a league of 10 typically lands.
Biggest Underachiever
The team that finished lowest inside its own range of simulated outcomes. The gold line is where the bottom team in a league of 10 typically lands.
Season Outliers
Number of teams that finished above the 95th or below the 5th percentile of their own simulated range. Even a well-calibrated model expects about 10% of teams in the extremes.
Minimal Outliers: under 10 * As Expected: 10 to 16 * Several Outliers: 16 to 22 * Many Outliers: 22 and up.
Luck Spread
Expected
3.12 points
Some Luck
03.238
Average Finish Error
Expected
1.00
Pinpoint
01.534
Biggest Overachiever
Expected 95.00%
98.00%
Partizan
50100
Biggest Underachiever
Expected 5.00%
21.00%
Sloga Novi Sad
050
Season Outliers
Expected
1 of 10
Minimal Outliers
01.010

Parity

How these are measured

The navy dot is the actual value, the gold line and key are the model's reference where one applies, and the slate ticks are the cutoffs between read labels listed under each metric.

Gini Index
How evenly points were spread across the league. Lower means a tight, balanced table; higher means a few teams ran off with most of the points.
Balanced: under 0.09 * Even: 0.09 to 0.11 * Top-Heavy: 0.11 to 0.16 * Lopsided: 0.16 and up.
Noll-Scully
Take a league where every match is a coin flip and nobody is better than anybody. You would still get a table, with a leader and a bottom club, purely by luck, and you can work out how far apart that table would be. This is the real table measured against it. At 1.00 the season was no more spread out than pure chance; at 2.00 it was twice as spread out, which takes genuine differences in quality. Dividing by the luck figure is what makes seasons of different lengths comparable, because a short season spreads a table by luck alone far more than a long one does. Elo SD in the corner is the same question in rating points: how far apart the teams finished on the ratings.
Coin-Flip Parity: under 1.15 * Moderate Separation: 1.15 to 1.35 * Strong Separation: 1.35 to 1.65 * Wide Separation: 1.65 and up.
Interquartile Edge
Chance the team at the 75th percentile of Elo would beat the team at the 25th percentile on a neutral field. Higher means a bigger gap between the upper and lower half of the table.
Even: under 61% * Slight Edge: 61% to 63.5% * Clear Edge: 63.5% to 67% * Wide Edge: 67% and up.
Best vs. Worst
Chance the top-rated team would beat the bottom-rated team on a neutral field. The gold line is how large that gap tends to be in a league of this size; a dot to the right flags an unusually dominant or unusually weak team.
Even: under 82% * Clear Edge: 82% to 86.5% * Strong Edge: 86.5% to 92% * Dominant: 92% and up.
Close Games
Share of matches decided by 1 goal or fewer, draws included. The gold line is how many close games the matchups and the scoring value of an Elo point predict.
Few: under 56% * Some Drama: 56% to 60.5% * Frequent: 60.5% to 64% * Very Frequent: 64% and up.
Blowouts
Share of matches decided by 3 goals or more. The gold line is how many routs the matchups and the scoring model predict.
Rare: under 15.5% * Occasional: 15.5% to 18.5% * Frequent: 18.5% to 20.5% * Very Frequent: 20.5% and up.
Gini Index
0.19
Lopsided
00.090.160.5
Noll-Scully
Elo SD: 152.94
1.71
Wide Separation
0.91.151.351.652.5
Interquartile Edge
79%
Wide Edge
50%61%67%100%
Best vs. Worst
Baseline 95%
94%
Dominant
50%100%
Close Games
Expected
46%
Few
0%48%100%
Blowouts
Expected
29%
Very Frequent
0%28%100%

Predictability

How these are measured

The navy dot is the actual value, the gold line and key are the model's reference where one applies, and the slate ticks are the cutoffs between read labels listed under each metric.

Brier Score
How close the pregame probabilities landed to the actual result, averaged over the season. Confident, correct calls are rewarded most; confident misses are punished most. Lower is better; since draws are possible, a score under 0.66 beats guessing the base rate.
Highly Predictable: under 0.56 * Predictable: 0.56 to 0.62 * Hard to Predict: 0.62 to 0.66 * Coin-Flip: 0.66 and up.
Matchup Imbalance
How lopsided the matchups were on paper, averaging the gap between the two win probabilities over their sum. 0 means every match was a toss-up; 1 means every match was a heavy favorite against a big underdog.
Very Even: under 0.54 * Slight Separation: 0.54 to 0.62 * Notable Separation: 0.62 to 0.69 * Lopsided: 0.69 and up.
Strangeness
How wild the final table was versus what the model expected. A value of 1 means teams landed about one standard deviation from their projections on average. Above 1 is a stranger season; below 1 hugged the projections.
Very Predictable: under 0.8 * As Expected: 0.8 to 1.1 * Wilder Than Modeled: 1.1 to 1.4 * Chaotic: 1.4 and up.
Repeatability
How closely the final table order matched the preseason Elo order, by Spearman rank correlation. Higher means last season's ratings strongly predicted this season's finish. Shows N/A for an inaugural season.
Weak Carryover: under 0.47 * Some Carryover: 0.47 to 0.6 * Strong Carryover: 0.6 to 0.69 * Near-Lock: 0.69 and up.
Upset Rate
Share of matches the underdog won. The gold line is how often the model expected underdogs to win; a dot to the right means upsets ran hotter than expected.
Chalky: under 13.5% * As Expected: 13.5% to 15.5% * Upset-Prone: 15.5% to 20% * Very Upset-Prone: 20% and up.
Clear Favorite Upset Rate
Share of matches the underdog won, counting only games with a clear favorite (at least 60% likely to win once a draw is set aside). The gold line is how often the model expected these favorites to slip.
Solid Favorites: under 13% * As Expected: 13% to 14.5% * Shaky Favorites: 14.5% to 18.5% * Very Shaky: 18.5% and up.
Brier Score
Expected
0.51
Highly Predictable
00.532
Matchup Imbalance
0.52
Very Even
00.5
Strangeness
Expected
0.95
As Expected
01.002
Repeatability
0.75
Near-Lock
00.470.61
Upset Rate
Expected
19%
Upset-Prone
0%19%50%
Clear Favorite Upset Rate
Expected
19%
Very Shaky
0%17%50%

Calibration

How these are measured

The navy dot is the actual value, the gold line and key are the model's reference where one applies, and the slate ticks are the cutoffs between read labels listed under each metric.

Probability calibration
An all-in-one chi-square test of the model's probabilities. Matches are grouped by how confident the model was, and within each group the predicted and actual counts of home wins, draws, and away wins are compared. The p-value is plotted; above 0.05 means well-calibrated.
Miscalibrated: under 0.05 * Borderline: 0.05 to 0.1 * Well Calibrated: 0.1 to 0.5 * Excellent: 0.5 and up.
Calibration slope
Checks whether the spread of the probabilities is right. Each probability is turned into log-odds and a line is fit predicting the actual results. A slope of 1.00 is perfect; below 1 is overconfidence (favorites lost more than their odds implied); above 1 is under-confidence.
Overconfident: under 0.85 * Calibrated: 0.85 to 1.15 * Underconfident: 1.15 to 1.3 * Very Underconfident: 1.3 and up.
Calibration error (ECE)
The average gap between the model's stated chances and how often the predicted result actually happened. Smaller is better. The gold line is the noise ceiling, the error luck alone can produce even with perfect probabilities; below it, the model's error is no larger than chance.
Well Within Noise: under 0.15 * Near Noise Ceiling: 0.15 to 0.22 * Above Noise: 0.22 to 0.29 * Well Above Noise: 0.29 and up.
Probability calibration
0.81
Excellent
0.010.050.10.51
Calibration slope
Ideal
1.09
Calibrated
0.51.001.5
Calibration error (ECE)
Noise ceiling
0.104
Well Within Noise
00.1470.4

Final Table Odds

Each cell is the probability — across 100,000 simulations — that the team (row) finished at that position (column). Rows are sorted by actual finish (champion at top, bottom of the table at the bottom).

Team12345678910
Partizan43.00%33.00%12.00%8.00%2.00%—2.00%———
Red Star Belgrade11.00%13.00%22.00%22.00%13.00%5.00%8.00%3.00%3.00%—
Hajduk Split26.00%27.00%25.00%12.00%5.00%3.00%1.00%1.00%——
Dinamo Zagreb15.00%20.00%18.00%20.00%13.00%8.00%3.00%2.00%1.00%—
Nasa Krila Zemun2.00%3.00%11.00%12.00%18.00%15.00%17.00%9.00%9.00%4.00%
Buducnost Titograd——3.00%4.00%8.00%18.00%18.00%19.00%22.00%8.00%
Metalac Beograd——5.00%10.00%18.00%12.00%14.00%22.00%15.00%4.00%
Lokomotiva Zagreb1.00%4.00%2.00%8.00%13.00%18.00%17.00%12.00%15.00%10.00%
Sloga Novi Sad2.00%—2.00%3.00%7.00%18.00%16.00%19.00%18.00%15.00%
Ponziana Trieste———1.00%3.00%3.00%4.00%13.00%17.00%59.00%

Points Required Per Position

The empirical CDF of simulated point totals per finishing position. Each curve shows, for one position (1st, 2nd, ..., last), the spread of point totals teams accumulated across simulations. Reading the curve at the 50% mark gives the median points typically needed to finish at that position. Steep curves mean the position is tightly clustered around a particular point range; shallow curves mean the position came with a wide variety of point totals.

Next-Season Status

Across 100,000 regular-season simulations, the probability of each team's next-season status. Columns appear in best-to-worst outcome order: promotion-positive on the left, relegation-positive on the right. Cells with darker shading indicate higher likelihood.

Team Same level Direct relegation
Hajduk Split 100% —
Partizan 100% —
Dinamo Zagreb 99.00% 1.00%
Red Star Belgrade 97.00% 3.00%
Nasa Krila Zemun 87.00% 13.00%
Metalac Beograd 81.00% 19.00%
Lokomotiva Zagreb 75.00% 25.00%
Buducnost Titograd 70.00% 30.00%
Sloga Novi Sad 67.00% 33.00%
Ponziana Trieste 24.00% 76.00%

Overall Game Log

Summary of every completed game this season. Sort any column by clicking its header.

Date Opponent ScoreExcitement Pre Elo Opp Elo Win % Tie % Loss %Proj. Margin Elo Δ Points
1948-09-11 Dinamo Zagreb W 2-052.9 1521 1662 46.41% 20.03% 33.56%-0.10 +23.2 2
1948-09-11 @ Nasa Krila Zemun L 0-252.9 1662 1521 33.56% 20.03% 46.41%+0.10 -23.2 0
1948-09-12 Sloga Novi Sad W 3-042.4 1610 1521 69.03% 19.50% 11.47%+1.35 +13.2 2
1948-09-12 @ Hajduk Split L 0-342.4 1521 1610 11.47% 19.50% 69.03%-1.35 -13.2 0
1948-09-12 Buducnost Titograd W 7-038.5 1467 1484 60.67% 19.90% 19.43%+0.68 +47.1 2
1948-09-12 @ Metalac Beograd L 0-738.5 1484 1467 19.43% 19.90% 60.67%-0.68 -47.1 0
1948-09-12 Lokomotiva Zagreb W 2-151.9 1549 1522 64.56% 19.76% 15.67%+0.96 +6.0 2
1948-09-12 @ Red Star Belgrade L 1-251.9 1522 1549 15.67% 19.76% 64.56%-0.96 -6.1 0
1948-09-19 Partizan W 2-158.6 1639 1659 60.38% 19.91% 19.72%+0.66 +7.4 2
1948-09-19 @ Dinamo Zagreb L 1-258.6 1659 1639 19.72% 19.91% 60.38%-0.66 -7.4 0
1948-09-19 Red Star Belgrade L 1-264.2 1508 1555 57.68% 19.97% 22.36%+0.49 -18.5 0
1948-09-19 @ Sloga Novi Sad W 2-164.2 1555 1508 22.36% 19.97% 57.68%-0.49 +18.5 4
1948-09-21 Nasa Krila Zemun D 0-062.6 1514 1545 59.38% 19.93% 20.69%+0.60 -3.5 3
1948-09-21 @ Metalac Beograd D 0-062.6 1545 1514 20.69% 19.93% 59.38%-0.60 +3.5 3
1948-09-26 Metalac Beograd D 2-275.1 1646 1511 71.77% 19.25% 8.98%+1.65 -4.0 3
1948-09-26 @ Dinamo Zagreb D 2-275.1 1511 1646 8.98% 19.25% 71.77%-1.65 +4.0 4
1948-09-26 Nasa Krila Zemun D 1-170.0 1623 1548 68.14% 19.57% 12.29%+1.27 -4.7 3
1948-09-26 @ Hajduk Split D 1-170.0 1548 1623 12.29% 19.57% 68.14%-1.27 +4.7 4
1948-09-26 Lokomotiva Zagreb W 2-044.9 1652 1516 71.76% 19.25% 8.99%+1.65 +7.2 2
1948-09-26 @ Partizan L 0-244.9 1516 1652 8.99% 19.25% 71.76%-1.65 -7.2 0
1948-09-26 Buducnost Titograd D 1-164.9 1574 1437 71.81% 19.24% 8.95%+1.66 -5.4 5
1948-09-26 @ Red Star Belgrade D 1-164.9 1437 1574 8.95% 19.24% 71.81%-1.66 +5.4 1
1948-09-26 Ponziana Trieste D 0-058.1 1490 1445 65.94% 19.70% 14.36%+1.07 -4.8 1
1948-09-26 @ Sloga Novi Sad D 0-058.1 1445 1490 14.36% 19.70% 65.94%-1.07 +4.8 1
1948-10-02 Red Star Belgrade D 0-064.7 1553 1568 60.82% 19.90% 19.28%+0.69 -3.8 5
1948-10-02 @ Nasa Krila Zemun D 0-064.7 1568 1553 19.28% 19.90% 60.82%-0.69 +3.8 6
1948-10-02 Hajduk Split L 0-453.4 1515 1619 51.17% 20.03% 28.79%+0.13 -62.8 4
1948-10-02 @ Metalac Beograd W 4-053.4 1619 1515 28.79% 20.03% 51.17%-0.13 +62.8 5
1948-10-03 Ponziana Trieste D 1-160.5 1443 1450 61.59% 19.87% 18.53%+0.74 -3.5 2
1948-10-03 @ Buducnost Titograd D 1-160.5 1450 1443 18.53% 19.87% 61.59%-0.74 +3.5 2
1948-10-03 Lokomotiva Zagreb W 3-042.2 1643 1509 71.63% 19.26% 9.10%+1.63 +10.6 5
1948-10-03 @ Dinamo Zagreb L 0-342.2 1509 1643 9.10% 19.26% 71.63%-1.63 -10.6 0
1948-10-06 Partizan W 1-056.2 1485 1659 41.81% 20.01% 38.18%-0.31 +13.7 3
1948-10-06 @ Sloga Novi Sad L 0-156.2 1659 1485 38.18% 20.01% 41.81%+0.31 -13.7 2
1948-10-10 Dinamo Zagreb L 1-272.4 1681 1653 64.67% 19.76% 15.57%+0.97 -20.8 5
1948-10-10 @ Hajduk Split W 2-172.4 1653 1681 15.57% 19.76% 64.67%-0.97 +20.8 7
1948-10-10 Buducnost Titograd W 2-149.2 1646 1439 75.02% 18.78% 6.20%+2.10 +2.5 4
1948-10-10 @ Partizan L 1-249.2 1439 1646 6.20% 18.78% 75.02%-2.10 -2.5 2
1948-10-10 Nasa Krila Zemun W 3-258.2 1453 1549 52.21% 20.03% 27.76%+0.19 +9.4 4
1948-10-10 @ Ponziana Trieste L 2-358.2 1549 1453 27.76% 20.03% 52.21%-0.19 -9.4 5
1948-10-10 Metalac Beograd W 4-143.3 1572 1452 70.92% 19.34% 9.74%+1.55 +9.5 8
1948-10-10 @ Red Star Belgrade L 1-443.3 1452 1572 9.74% 19.34% 70.92%-1.55 -9.5 4
1948-10-13 Sloga Novi Sad W 4-144.8 1498 1499 62.27% 19.85% 17.88%+0.79 +16.7 2
1948-10-13 @ Lokomotiva Zagreb L 1-444.8 1499 1498 17.88% 19.85% 62.27%-0.79 -16.7 3
1948-10-17 Sloga Novi Sad W 3-149.1 1674 1482 74.43% 18.88% 6.69%+2.01 +4.7 9
1948-10-17 @ Dinamo Zagreb L 1-349.1 1482 1674 6.69% 18.88% 74.43%-2.01 -4.7 3
1948-10-17 Red Star Belgrade W 3-260.5 1661 1582 68.38% 19.55% 12.07%+1.29 +4.5 7
1948-10-17 @ Hajduk Split L 2-360.5 1582 1661 12.07% 19.55% 68.38%-1.29 -4.5 8
1948-10-17 Partizan L 0-161.0 1540 1648 50.61% 20.03% 29.36%+0.10 -17.4 5
1948-10-17 @ Nasa Krila Zemun W 1-061.0 1648 1540 29.36% 20.03% 50.61%-0.10 +17.4 6
1948-10-17 Ponziana Trieste W 2-039.3 1442 1463 60.35% 19.91% 19.74%+0.66 +14.8 6
1948-10-17 @ Metalac Beograd L 0-239.3 1463 1442 19.74% 19.91% 60.35%-0.66 -14.9 4
1948-10-24 Nasa Krila Zemun W 4-040.3 1515 1522 61.63% 19.87% 18.49%+0.75 +26.6 4
1948-10-24 @ Lokomotiva Zagreb L 0-440.3 1522 1515 18.49% 19.87% 61.63%-0.75 -26.6 5
1948-10-24 Metalac Beograd W 3-147.9 1665 1457 75.10% 18.77% 6.14%+2.11 +4.3 8
1948-10-24 @ Partizan L 1-347.9 1457 1665 6.14% 18.77% 75.10%-2.11 -4.3 6
1948-10-24 Dinamo Zagreb W 2-160.6 1577 1679 51.50% 20.03% 28.47%+0.15 +10.1 10
1948-10-24 @ Red Star Belgrade L 1-260.6 1679 1577 28.47% 20.03% 51.50%-0.15 -10.1 9
1948-10-24 Buducnost Titograd L 0-156.3 1477 1437 65.65% 19.71% 14.63%+1.05 -22.4 3
1948-10-24 @ Sloga Novi Sad W 1-056.3 1437 1477 14.63% 19.71% 65.65%-1.05 +22.4 4
1948-10-25 Hajduk Split L 0-349.2 1448 1665 35.82% 19.94% 44.25%-0.58 -35.6 4
1948-10-25 @ Ponziana Trieste W 3-049.2 1665 1448 44.25% 19.94% 35.82%+0.58 +35.6 9
1948-10-26 Ponziana Trieste W 4-034.3 1542 1412 71.41% 19.28% 9.30%+1.61 +14.2 6
1948-10-26 @ Lokomotiva Zagreb L 0-434.3 1412 1542 9.30% 19.28% 71.41%-1.61 -14.2 4
1948-10-31 Buducnost Titograd W 5-354.6 1668 1459 75.14% 18.76% 6.10%+2.12 +3.6 11
1948-10-31 @ Dinamo Zagreb L 3-554.6 1459 1668 6.10% 18.76% 75.14%-2.12 -3.6 4
1948-10-31 Partizan L 1-370.4 1701 1670 64.88% 19.75% 15.37%+0.98 -36.1 9
1948-10-31 @ Hajduk Split W 3-170.4 1670 1701 15.37% 19.75% 64.88%-0.98 +36.1 10
1948-10-31 Lokomotiva Zagreb W 8-246.0 1453 1556 51.28% 20.03% 28.69%+0.14 +38.8 8
1948-10-31 @ Metalac Beograd L 2-846.0 1556 1453 28.69% 20.03% 51.28%-0.14 -38.8 6
1948-10-31 Ponziana Trieste W 3-035.7 1587 1398 74.30% 18.90% 6.80%+1.99 +8.0 12
1948-10-31 @ Red Star Belgrade L 0-335.7 1398 1587 6.80% 18.90% 74.30%-1.99 -8.0 4
1948-11-07 Red Star Belgrade W 1-050.8 1706 1595 70.36% 19.39% 10.25%+1.49 +4.3 12
1948-11-07 @ Partizan L 0-150.8 1595 1706 10.25% 19.39% 70.36%-1.49 -4.3 12
1948-11-21 Metalac Beograd D 1-162.3 1455 1492 58.76% 19.94% 21.30%+0.56 -3.0 4
1948-11-21 @ Sloga Novi Sad D 1-162.3 1492 1455 21.30% 19.94% 58.76%-0.56 +3.0 9
1948-11-30 Hajduk Split D 1-170.2 1517 1665 45.56% 20.03% 34.41%-0.14 -0.8 7
1948-11-30 @ Lokomotiva Zagreb D 1-170.2 1665 1517 34.41% 20.03% 45.56%+0.14 +0.8 10
1948-12-05 Hajduk Split L 2-558.1 1455 1665 36.77% 19.95% 43.28%-0.54 -26.5 4
1948-12-05 @ Buducnost Titograd W 5-258.1 1665 1455 43.28% 19.95% 36.77%+0.54 +26.5 12
1948-12-05 Dinamo Zagreb D 0-062.8 1390 1672 27.53% 19.75% 52.72%-0.99 +2.2 5
1948-12-05 @ Ponziana Trieste D 0-062.8 1672 1390 52.72% 19.75% 27.53%+0.99 -2.2 12
1948-12-08 Sloga Novi Sad L 1-262.3 1496 1452 65.89% 19.70% 14.40%+1.07 -21.2 5
1948-12-08 @ Nasa Krila Zemun W 2-162.3 1452 1496 14.40% 19.70% 65.89%-1.07 +21.2 6
1948-12-12 Lokomotiva Zagreb W 3-040.5 1429 1516 53.16% 20.02% 26.82%+0.24 +28.0 6
1948-12-12 @ Buducnost Titograd L 0-340.5 1516 1429 26.82% 20.02% 53.16%-0.24 -28.1 7
1948-12-19 Nasa Krila Zemun W 3-145.5 1457 1474 60.64% 19.90% 19.46%+0.68 +12.7 8
1948-12-19 @ Buducnost Titograd L 1-345.5 1474 1457 19.46% 19.90% 60.64%-0.68 -12.7 5
1948-12-22 Partizan L 1-450.2 1392 1710 23.51% 19.60% 56.89%-1.22 -21.0 5
1948-12-22 @ Ponziana Trieste W 4-150.2 1710 1392 56.89% 19.60% 23.51%+1.22 +21.0 14
1949-03-13 Nasa Krila Zemun L 0-263.5 1670 1462 75.09% 18.77% 6.14%+2.11 -48.6 12
1949-03-13 @ Dinamo Zagreb W 2-063.5 1462 1670 6.14% 18.77% 75.09%-2.11 +48.6 7
1949-03-13 Red Star Belgrade L 0-255.1 1488 1591 51.33% 20.03% 28.64%+0.14 -33.2 7
1949-03-13 @ Lokomotiva Zagreb W 2-055.1 1591 1488 28.64% 20.03% 51.33%-0.14 +33.2 14
1949-03-20 Metalac Beograd W 2-149.3 1469 1495 59.92% 19.92% 20.16%+0.63 +7.6 10
1949-03-20 @ Buducnost Titograd L 1-249.3 1495 1469 20.16% 19.92% 59.92%-0.63 -7.6 9
1949-03-20 Hajduk Split L 1-260.8 1473 1692 35.56% 19.93% 44.51%-0.60 -12.2 6
1949-03-20 @ Sloga Novi Sad W 2-160.8 1692 1473 44.51% 19.93% 35.56%+0.60 +12.2 14
1949-03-26 Sloga Novi Sad W 3-147.3 1624 1461 73.14% 19.08% 7.78%+1.82 +5.4 16
1949-03-26 @ Red Star Belgrade L 1-347.3 1461 1624 7.78% 19.08% 73.14%-1.82 -5.5 6
1949-03-27 Buducnost Titograd W 2-151.8 1704 1477 75.81% 18.63% 5.56%+2.23 +2.3 16
1949-03-27 @ Hajduk Split L 1-251.8 1477 1704 5.56% 18.63% 75.81%-2.23 -2.3 10
1949-03-27 Metalac Beograd W 5-142.4 1510 1487 64.27% 19.78% 15.95%+0.94 +19.4 9
1949-03-27 @ Nasa Krila Zemun L 1-542.4 1487 1510 15.95% 19.78% 64.27%-0.94 -19.4 9
1949-03-27 Dinamo Zagreb W 3-153.7 1731 1621 70.32% 19.39% 10.28%+1.49 +7.1 16
1949-03-27 @ Partizan L 1-353.7 1621 1731 10.28% 19.39% 70.32%-1.49 -7.1 12
1949-03-27 Lokomotiva Zagreb L 0-247.2 1371 1455 53.63% 20.02% 26.36%+0.26 -34.5 5
1949-03-27 @ Ponziana Trieste W 2-047.2 1455 1371 26.36% 20.02% 53.63%-0.26 +34.6 9
1949-04-03 Red Star Belgrade L 2-366.9 1475 1630 44.53% 20.03% 35.44%-0.19 -13.9 10
1949-04-03 @ Buducnost Titograd W 3-266.9 1630 1475 35.44% 20.03% 44.53%+0.19 +13.9 18
1949-04-03 Partizan L 0-350.9 1490 1738 31.61% 19.85% 48.54%-0.78 -32.1 9
1949-04-03 @ Lokomotiva Zagreb W 3-050.9 1738 1490 48.54% 19.85% 31.61%+0.78 +32.1 18
1949-04-03 Hajduk Split D 1-171.3 1530 1706 41.50% 20.01% 38.49%-0.33 -0.2 10
1949-04-03 @ Nasa Krila Zemun D 1-171.3 1706 1530 38.49% 20.01% 41.50%+0.33 +0.2 17
1949-04-03 Dinamo Zagreb D 1-167.2 1468 1614 45.65% 20.03% 34.32%-0.14 -0.8 10
1949-04-03 @ Metalac Beograd D 1-167.2 1614 1468 34.32% 20.03% 45.65%+0.14 +0.8 13
1949-04-03 Sloga Novi Sad W 2-147.3 1337 1455 49.36% 20.04% 30.60%+0.04 +10.8 7
1949-04-03 @ Ponziana Trieste L 1-247.3 1455 1337 30.60% 20.04% 49.36%-0.04 -10.8 6
1949-04-10 Metalac Beograd W 3-041.3 1707 1467 76.28% 18.53% 5.19%+2.31 +6.1 19
1949-04-10 @ Hajduk Split L 0-341.3 1467 1707 5.19% 18.53% 76.28%-2.31 -6.1 10
1949-04-10 Dinamo Zagreb L 1-358.1 1458 1615 44.17% 20.02% 35.80%-0.21 -25.2 9
1949-04-10 @ Lokomotiva Zagreb W 3-158.1 1615 1458 35.80% 20.02% 44.17%+0.21 +25.2 15
1949-04-10 Sloga Novi Sad W 2-043.8 1770 1445 78.93% 17.79% 3.28%+2.85 +2.6 20
1949-04-10 @ Partizan L 0-243.8 1445 1770 3.28% 17.79% 78.93%-2.85 -2.6 6
1949-04-10 Buducnost Titograd D 0-054.2 1348 1461 50.03% 20.04% 29.94%+0.07 -1.7 8
1949-04-10 @ Ponziana Trieste D 0-054.2 1461 1348 29.94% 20.04% 50.03%-0.07 +1.7 11
1949-04-10 Nasa Krila Zemun W 3-150.7 1644 1529 70.56% 19.37% 10.07%+1.51 +7.0 20
1949-04-10 @ Red Star Belgrade L 1-350.7 1529 1644 10.07% 19.37% 70.56%-1.51 -7.0 10
1949-04-17 Lokomotiva Zagreb W 1-040.5 1442 1432 63.11% 19.82% 17.07%+0.85 +6.9 8
1949-04-17 @ Sloga Novi Sad L 0-140.5 1432 1442 17.07% 19.82% 63.11%-0.85 -6.9 9
1949-04-23 Buducnost Titograd W 2-147.0 1425 1463 58.71% 19.95% 21.34%+0.55 +8.0 11
1949-04-23 @ Lokomotiva Zagreb L 1-247.0 1463 1425 21.34% 19.95% 58.71%-0.55 -7.9 11
1949-04-24 Nasa Krila Zemun W 3-258.8 1773 1523 76.65% 18.44% 4.91%+2.38 +1.9 22
1949-04-24 @ Partizan L 2-358.8 1523 1773 4.91% 18.44% 76.65%-2.38 -1.9 10
1949-04-24 Metalac Beograd L 0-442.2 1346 1461 49.85% 20.04% 30.11%+0.06 -61.3 8
1949-04-24 @ Ponziana Trieste W 4-042.2 1461 1346 30.11% 20.04% 49.85%-0.06 +61.3 12
1949-05-01 Ponziana Trieste W 3-031.8 1640 1285 79.69% 17.51% 2.80%+3.04 +3.3 17
1949-05-01 @ Dinamo Zagreb L 0-331.8 1285 1640 2.80% 17.51% 79.69%-3.04 -3.3 8
1949-05-01 Partizan D 2-278.8 1650 1775 48.58% 20.04% 31.38%+0.00 -1.0 21
1949-05-01 @ Red Star Belgrade D 2-278.8 1775 1650 31.38% 20.04% 48.58%+0.00 +1.0 23
1949-05-02 Buducnost Titograd W 3-145.0 1521 1455 67.51% 19.61% 12.88%+1.21 +8.8 12
1949-05-02 @ Nasa Krila Zemun L 1-345.0 1455 1521 12.88% 19.61% 67.51%-1.21 -8.8 11
1949-05-02 Sloga Novi Sad W 2-039.3 1522 1449 67.99% 19.58% 12.43%+1.25 +9.8 14
1949-05-02 @ Metalac Beograd L 0-239.3 1449 1522 12.43% 19.58% 67.99%-1.25 -9.8 8
1949-05-08 Dinamo Zagreb D 1-167.5 1446 1644 38.52% 19.97% 41.51%-0.46 +0.2 12
1949-05-08 @ Buducnost Titograd D 1-167.5 1644 1446 41.51% 19.97% 38.52%+0.46 -0.2 18
1949-05-08 Hajduk Split W 2-050.1 1776 1713 67.32% 19.62% 13.06%+1.19 +10.2 25
1949-05-08 @ Partizan L 0-250.1 1713 1776 13.06% 19.62% 67.32%-1.19 -10.2 19
1949-05-08 Red Star Belgrade W 2-160.5 1281 1650 18.62% 19.35% 62.03%-1.54 +19.8 10
1949-05-08 @ Ponziana Trieste L 1-260.5 1650 1281 62.03% 19.35% 18.62%+1.54 -19.8 21
1949-05-08 Nasa Krila Zemun W 3-149.1 1439 1529 52.83% 20.02% 27.15%+0.22 +16.9 10
1949-05-08 @ Sloga Novi Sad L 1-349.1 1529 1439 27.15% 20.02% 52.83%-0.22 -16.9 12
1949-05-11 Red Star Belgrade L 0-355.5 1532 1630 51.90% 20.03% 28.07%+0.17 -48.7 14
1949-05-11 @ Metalac Beograd W 3-055.5 1630 1532 28.07% 20.03% 51.90%-0.17 +48.7 23
1949-05-15 Sloga Novi Sad W 4-248.6 1446 1456 61.38% 19.88% 18.74%+0.73 +11.0 14
1949-05-15 @ Buducnost Titograd L 2-448.6 1456 1446 18.74% 19.88% 61.38%-0.73 -11.0 10
1949-05-15 Red Star Belgrade L 1-368.2 1643 1678 58.92% 19.94% 21.13%+0.57 -32.8 18
1949-05-15 @ Dinamo Zagreb W 3-168.2 1678 1643 21.13% 19.94% 58.92%-0.57 +32.8 25
1949-05-15 Ponziana Trieste W 5-137.7 1702 1301 80.75% 17.06% 2.19%+3.33 +2.8 21
1949-05-15 @ Hajduk Split L 1-537.7 1301 1702 2.19% 17.06% 80.75%-3.33 -2.8 10
1949-05-15 Lokomotiva Zagreb W 4-034.9 1512 1433 68.40% 19.55% 12.05%+1.29 +18.1 14
1949-05-15 @ Nasa Krila Zemun L 0-434.9 1433 1512 12.05% 19.55% 68.40%-1.29 -18.1 11
1949-05-15 Partizan L 0-349.6 1483 1786 25.08% 19.66% 55.26%-1.13 -26.4 14
1949-05-15 @ Metalac Beograd W 3-049.6 1786 1483 55.26% 19.66% 25.08%+1.13 +26.4 27
1949-05-18 Ponziana Trieste W 4-036.5 1813 1298 82.95% 15.85% 1.19%+4.04 +1.8 29
1949-05-18 @ Partizan L 0-436.5 1298 1813 1.19% 15.85% 82.95%-4.04 -1.8 10
1949-05-18 Hajduk Split D 1-173.5 1711 1705 62.80% 19.83% 17.37%+0.83 -3.7 26
1949-05-18 @ Red Star Belgrade D 1-173.5 1705 1711 17.37% 19.83% 62.80%-0.83 +3.7 22
1949-05-21 Metalac Beograd W 1-041.8 1415 1457 58.30% 19.95% 21.75%+0.53 +8.6 13
1949-05-21 @ Lokomotiva Zagreb L 0-141.8 1457 1415 21.75% 19.95% 58.30%-0.53 -8.6 14
1949-05-22 Partizan W 2-062.6 1457 1814 19.60% 19.40% 60.99%-1.47 +39.0 16
1949-05-22 @ Buducnost Titograd L 0-262.6 1814 1457 60.99% 19.40% 19.60%+1.47 -38.9 29
1949-05-22 Hajduk Split D 1-172.6 1611 1709 51.86% 20.03% 28.11%+0.17 -1.8 19
1949-05-22 @ Dinamo Zagreb D 1-172.6 1709 1611 28.11% 20.03% 51.86%-0.17 +1.8 23
1949-05-29 Ponziana Trieste W 6-235.4 1531 1297 76.06% 18.57% 5.36%+2.27 +5.9 16
1949-05-29 @ Nasa Krila Zemun L 2-635.4 1297 1531 5.36% 18.57% 76.06%-2.27 -5.9 10
1949-05-29 Lokomotiva Zagreb W 4-145.0 1711 1424 77.82% 18.14% 4.04%+2.61 +4.0 25
1949-05-29 @ Hajduk Split L 1-445.0 1424 1711 4.04% 18.14% 77.82%-2.61 -4.0 13
1949-05-30 Dinamo Zagreb W 1-052.8 1445 1609 43.31% 20.02% 36.67%-0.25 +13.2 12
1949-05-30 @ Sloga Novi Sad L 0-152.8 1609 1445 36.67% 20.02% 43.31%+0.25 -13.3 19

Biggest Upsets

The 25 games where the underdog won despite the lowest pregame win probability. Underdog Win % is the winner's pregame chance of winning the game (lower = bigger upset). @ before a team name indicates the away side. An asterisk (*) after the date marks a playoff game.

# Date Underdog Win % Winning Team Losing Team
Team Elo Score Team Elo Score
1 1949-03-13 6.14% Nasa Krila Zemun 1462 2 @ Dinamo Zagreb 1670 0
2 1948-12-08 14.40% Sloga Novi Sad 1452 2 @ Nasa Krila Zemun 1496 1
3 1948-10-24 14.63% Buducnost Titograd 1437 1 @ Sloga Novi Sad 1477 0
4 1948-10-31 15.37% Partizan 1670 3 @ Hajduk Split 1701 1
5 1948-10-10 15.57% Dinamo Zagreb 1653 2 @ Hajduk Split 1681 1
6 1949-05-08 18.62% @ Ponziana Trieste 1281 2 Red Star Belgrade 1650 1
7 1949-05-22 19.60% @ Buducnost Titograd 1457 2 Partizan 1814 0
8 1949-05-15 21.13% Red Star Belgrade 1678 3 @ Dinamo Zagreb 1643 1
9 1948-09-19 22.36% Red Star Belgrade 1555 2 @ Sloga Novi Sad 1508 1
10 1949-03-27 26.36% Lokomotiva Zagreb 1455 2 @ Ponziana Trieste 1371 0
11 1949-05-11 28.07% Red Star Belgrade 1630 3 @ Metalac Beograd 1532 0
12 1949-03-13 28.64% Red Star Belgrade 1591 2 @ Lokomotiva Zagreb 1488 0
13 1948-10-02 28.79% Hajduk Split 1619 4 @ Metalac Beograd 1515 0
14 1948-10-17 29.36% Partizan 1648 1 @ Nasa Krila Zemun 1540 0
15 1949-04-24 30.11% Metalac Beograd 1461 4 @ Ponziana Trieste 1346 0
16 1949-04-03 35.44% Red Star Belgrade 1630 3 @ Buducnost Titograd 1475 2
17 1949-04-10 35.80% Dinamo Zagreb 1615 3 @ Lokomotiva Zagreb 1458 1

Biggest Elo Changes

The 25 games that resulted in the largest shift in Elo rating.

# Date Elo Δ Winning Team Losing Team Tie %
Team Score Elo Win % Team Score Elo Win %
1 1948-10-02 62.77 Hajduk Split 4 1619 28.79% @ Metalac Beograd 0 1515 51.17% 20.03%
2 1949-04-24 61.30 Metalac Beograd 4 1461 30.11% @ Ponziana Trieste 0 1346 49.85% 20.04%
3 1949-05-11 48.67 Red Star Belgrade 3 1630 28.07% @ Metalac Beograd 0 1532 51.90% 20.03%
4 1949-03-13 48.59 Nasa Krila Zemun 2 1462 6.14% @ Dinamo Zagreb 0 1670 75.09% 18.77%
5 1948-09-12 47.09 @ Metalac Beograd 7 1467 60.67% Buducnost Titograd 0 1484 19.43% 19.90%
6 1949-05-22 38.95 @ Buducnost Titograd 2 1457 19.60% Partizan 0 1814 60.99% 19.40%
7 1948-10-31 38.78 @ Metalac Beograd 8 1453 51.28% Lokomotiva Zagreb 2 1556 28.69% 20.03%
8 1948-10-31 36.11 Partizan 3 1670 15.37% @ Hajduk Split 1 1701 64.88% 19.75%
9 1948-10-25 35.58 Hajduk Split 3 1665 44.25% @ Ponziana Trieste 0 1448 35.82% 19.94%
10 1949-03-27 34.55 Lokomotiva Zagreb 2 1455 26.36% @ Ponziana Trieste 0 1371 53.63% 20.02%
11 1949-03-13 33.17 Red Star Belgrade 2 1591 28.64% @ Lokomotiva Zagreb 0 1488 51.33% 20.03%
12 1949-05-15 32.75 Red Star Belgrade 3 1678 21.13% @ Dinamo Zagreb 1 1643 58.92% 19.94%
13 1949-04-03 32.09 Partizan 3 1738 48.54% @ Lokomotiva Zagreb 0 1490 31.61% 19.85%
14 1948-12-12 28.06 @ Buducnost Titograd 3 1429 53.16% Lokomotiva Zagreb 0 1516 26.82% 20.02%
15 1948-10-24 26.61 @ Lokomotiva Zagreb 4 1515 61.63% Nasa Krila Zemun 0 1522 18.49% 19.87%
16 1948-12-05 26.54 Hajduk Split 5 1665 43.28% @ Buducnost Titograd 2 1455 36.77% 19.95%
17 1949-05-15 26.37 Partizan 3 1786 55.26% @ Metalac Beograd 0 1483 25.08% 19.66%
18 1949-04-10 25.18 Dinamo Zagreb 3 1615 35.80% @ Lokomotiva Zagreb 1 1458 44.17% 20.02%
19 1948-09-11 23.25 @ Nasa Krila Zemun 2 1521 46.41% Dinamo Zagreb 0 1662 33.56% 20.03%
20 1948-10-24 22.38 Buducnost Titograd 1 1437 14.63% @ Sloga Novi Sad 0 1477 65.65% 19.71%
21 1948-12-08 21.19 Sloga Novi Sad 2 1452 14.40% @ Nasa Krila Zemun 1 1496 65.89% 19.70%
22 1948-12-22 21.03 Partizan 4 1710 56.89% @ Ponziana Trieste 1 1392 23.51% 19.60%
23 1948-10-10 20.78 Dinamo Zagreb 2 1653 15.57% @ Hajduk Split 1 1681 64.67% 19.76%
24 1949-05-08 19.81 @ Ponziana Trieste 2 1281 18.62% Red Star Belgrade 1 1650 62.03% 19.35%
25 1949-03-27 19.44 @ Nasa Krila Zemun 5 1510 64.27% Metalac Beograd 1 1487 15.95% 19.78%

Most & Least Exciting Games

The season’s games ranked by excitement rating (0–100) — a blend of closeness, upset, team quality, and scoring. An asterisk (*) after the date indicates a playoff game.

# Date Excitement Winning Team Losing Team Tie %
Team Score Elo Win % Team Score Elo Win %
1 1949-05-01 78.8 @ Red Star Belgrade 2 1650 48.58% Partizan 2 1775 31.38% 20.04%
2 1948-09-26 75.1 @ Dinamo Zagreb 2 1646 71.77% Metalac Beograd 2 1511 8.98% 19.25%
3 1949-05-18 73.5 @ Red Star Belgrade 1 1711 62.80% Hajduk Split 1 1705 17.37% 19.83%
4 1949-05-22 72.6 @ Dinamo Zagreb 1 1611 51.86% Hajduk Split 1 1709 28.11% 20.03%
5 1948-10-10 72.4 Dinamo Zagreb 2 1653 15.57% @ Hajduk Split 1 1681 64.67% 19.76%
6 1949-04-03 71.3 @ Nasa Krila Zemun 1 1530 41.50% Hajduk Split 1 1706 38.49% 20.01%
7 1948-10-31 70.4 Partizan 3 1670 15.37% @ Hajduk Split 1 1701 64.88% 19.75%
8 1948-11-30 70.2 @ Lokomotiva Zagreb 1 1517 45.56% Hajduk Split 1 1665 34.41% 20.03%
9 1948-09-26 70.0 @ Hajduk Split 1 1623 68.14% Nasa Krila Zemun 1 1548 12.29% 19.57%
10 1949-05-15 68.2 Red Star Belgrade 3 1678 21.13% @ Dinamo Zagreb 1 1643 58.92% 19.94%
11 1949-05-08 67.5 @ Buducnost Titograd 1 1446 38.52% Dinamo Zagreb 1 1644 41.51% 19.97%
12 1949-04-03 67.2 @ Metalac Beograd 1 1468 45.65% Dinamo Zagreb 1 1614 34.32% 20.03%
13 1949-04-03 66.9 Red Star Belgrade 3 1630 35.44% @ Buducnost Titograd 2 1475 44.53% 20.03%
14 1948-09-26 64.9 @ Red Star Belgrade 1 1574 71.81% Buducnost Titograd 1 1437 8.95% 19.24%
15 1948-10-02 64.7 @ Nasa Krila Zemun 0 1553 60.82% Red Star Belgrade 0 1568 19.28% 19.90%
16 1948-09-19 64.2 Red Star Belgrade 2 1555 22.36% @ Sloga Novi Sad 1 1508 57.68% 19.97%
17 1949-03-13 63.5 Nasa Krila Zemun 2 1462 6.14% @ Dinamo Zagreb 0 1670 75.09% 18.77%
18 1948-12-05 62.8 @ Ponziana Trieste 0 1390 27.53% Dinamo Zagreb 0 1672 52.72% 19.75%
19 1948-09-21 62.6 @ Metalac Beograd 0 1514 59.38% Nasa Krila Zemun 0 1545 20.69% 19.93%
20 1949-05-22 62.6 @ Buducnost Titograd 2 1457 19.60% Partizan 0 1814 60.99% 19.40%
21 1948-11-21 62.3 @ Sloga Novi Sad 1 1455 58.76% Metalac Beograd 1 1492 21.30% 19.94%
22 1948-12-08 62.3 Sloga Novi Sad 2 1452 14.40% @ Nasa Krila Zemun 1 1496 65.89% 19.70%
23 1948-10-17 61.0 Partizan 1 1648 29.36% @ Nasa Krila Zemun 0 1540 50.61% 20.03%
24 1949-03-20 60.8 Hajduk Split 2 1692 44.51% @ Sloga Novi Sad 1 1473 35.56% 19.93%
25 1948-10-24 60.6 @ Red Star Belgrade 2 1577 51.50% Dinamo Zagreb 1 1679 28.47% 20.03%
# Date Excitement Winning Team Losing Team Tie %
Team Score Elo Win % Team Score Elo Win %
1 1949-05-01 31.8 @ Dinamo Zagreb 3 1640 79.69% Ponziana Trieste 0 1285 2.80% 17.51%
2 1948-10-26 34.3 @ Lokomotiva Zagreb 4 1542 71.41% Ponziana Trieste 0 1412 9.30% 19.28%
3 1949-05-15 34.9 @ Nasa Krila Zemun 4 1512 68.40% Lokomotiva Zagreb 0 1433 12.05% 19.55%
4 1949-05-29 35.4 @ Nasa Krila Zemun 6 1531 76.06% Ponziana Trieste 2 1297 5.36% 18.57%
5 1948-10-31 35.7 @ Red Star Belgrade 3 1587 74.30% Ponziana Trieste 0 1398 6.80% 18.90%
6 1949-05-18 36.5 @ Partizan 4 1813 82.95% Ponziana Trieste 0 1298 1.19% 15.85%
7 1949-05-15 37.7 @ Hajduk Split 5 1702 80.75% Ponziana Trieste 1 1301 2.19% 17.06%
8 1948-09-12 38.5 @ Metalac Beograd 7 1467 60.67% Buducnost Titograd 0 1484 19.43% 19.90%
9 1948-10-17 39.3 @ Metalac Beograd 2 1442 60.35% Ponziana Trieste 0 1463 19.74% 19.91%
10 1949-05-02 39.3 @ Metalac Beograd 2 1522 67.99% Sloga Novi Sad 0 1449 12.43% 19.58%
11 1948-10-24 40.3 @ Lokomotiva Zagreb 4 1515 61.63% Nasa Krila Zemun 0 1522 18.49% 19.87%
12 1948-12-12 40.5 @ Buducnost Titograd 3 1429 53.16% Lokomotiva Zagreb 0 1516 26.82% 20.02%
13 1949-04-17 40.5 @ Sloga Novi Sad 1 1442 63.11% Lokomotiva Zagreb 0 1432 17.07% 19.82%
14 1949-04-10 41.3 @ Hajduk Split 3 1707 76.28% Metalac Beograd 0 1467 5.19% 18.53%
15 1949-05-21 41.8 @ Lokomotiva Zagreb 1 1415 58.30% Metalac Beograd 0 1457 21.75% 19.95%
16 1948-10-03 42.2 @ Dinamo Zagreb 3 1643 71.63% Lokomotiva Zagreb 0 1509 9.10% 19.26%
17 1949-04-24 42.2 Metalac Beograd 4 1461 30.11% @ Ponziana Trieste 0 1346 49.85% 20.04%
18 1948-09-12 42.4 @ Hajduk Split 3 1610 69.03% Sloga Novi Sad 0 1521 11.47% 19.50%
19 1949-03-27 42.4 @ Nasa Krila Zemun 5 1510 64.27% Metalac Beograd 1 1487 15.95% 19.78%
20 1948-10-10 43.3 @ Red Star Belgrade 4 1572 70.92% Metalac Beograd 1 1452 9.74% 19.34%
21 1949-04-10 43.8 @ Partizan 2 1770 78.93% Sloga Novi Sad 0 1445 3.28% 17.79%
22 1948-10-13 44.8 @ Lokomotiva Zagreb 4 1498 62.27% Sloga Novi Sad 1 1499 17.88% 19.85%
23 1948-09-26 44.9 @ Partizan 2 1652 71.76% Lokomotiva Zagreb 0 1516 8.99% 19.25%
24 1949-05-02 45.0 @ Nasa Krila Zemun 3 1521 67.51% Buducnost Titograd 1 1455 12.88% 19.61%
25 1949-05-29 45.0 @ Hajduk Split 4 1711 77.82% Lokomotiva Zagreb 1 1424 4.04% 18.14%