‹ ›

2019-20 Macedonian First Football League Season

115 games

Final

Champion

Vardar

46 points

Relegated

No relegation

Biggest Overachiever

Borec

13.29 points above expected

27 points · 13.71 expected points

Biggest Disappointment

Shkendija

16.12 points below expected

35 points · 51.12 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 Vardar 23 13 7 3 46 33 14 +19 45.05 +0.95
2 Sileks 23 10 6 7 36 24 21 +3 30.03 +5.97
3 Shkendija 23 10 5 8 35 38 20 +18 51.12 -16.12
4 Renova 23 9 4 10 31 25 33 -8 30.07 +0.93
5 Shkupi 23 7 8 8 29 28 28 0 33.14 -4.14
6 Makedonija GP 23 7 8 8 29 24 28 -4 29.37 -0.37
7 AP Brera Strumica 23 7 7 9 28 20 20 0 33.09 -5.09
8 Rabotnicki 23 8 4 11 28 21 29 -8 27.64 +0.36
9 Borec 23 7 6 10 27 20 31 -11 13.71 +13.29
10 Struga 23 6 7 10 25 19 28 -9 23.66 +1.34

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 Borec 27 13.71 +13.29
2 Sileks 36 30.03 +5.97
3 Struga 25 23.66 +1.34
4 Vardar 46 45.05 +0.95
5 Renova 31 30.07 +0.93

Biggest Disappointments

# Team Actual Sim vsSim
1 Shkendija 35 51.12 -16.12
2 AP Brera Strumica 28 33.09 -5.09
3 Shkupi 29 33.14 -4.14
4 Makedonija GP 29 29.37 -0.37
5 Rabotnicki 28 27.64 +0.36

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 Renova 4 Feb 23 – Mar 11 1 in 168
2 Vardar 6 Aug 24 – Sep 29 1 in 89
3 Sileks 3 Oct 27 – Nov 9 1 in 18
4 Struga 2 Oct 19 – Oct 23 1 in 11
5 Rabotnicki 2 Feb 16 – Feb 23 1 in 11

Most Unlikely Losing Streaks

# Team Games Dates Probability
1 AP Brera Strumica 5 Nov 27 – Feb 23 1 in 76
2 Makedonija GP 3 Mar 1 – Mar 11 1 in 18
3 Sileks 3 Aug 25 – Sep 14 1 in 17
4 Renova 3 Sep 1 – Sep 18 1 in 16
5 Struga 3 Sep 22 – Oct 5 1 in 14

Most Unlikely Unbeaten Streaks

# Team Games Dates Probability
1 Sileks 12 Oct 27 – Mar 11 1 in 274
2 Vardar 12 Aug 18 – Nov 3 1 in 62
3 Struga 6 Nov 3 – Dec 8 1 in 59
4 Rabotnicki 5 Feb 16 – Mar 11 1 in 54
5 Makedonija GP 5 Aug 11 – Sep 14 1 in 30

Most Unlikely Winless Streaks

# Team Games Dates Probability
1 AP Brera Strumica 12 Oct 27 – Mar 11 1 in 1,104
2 Struga 7 Nov 30 – Mar 11 1 in 34
3 Renova 9 Oct 4 – Dec 1 1 in 29
4 Shkendija 4 Aug 10 – Aug 31 1 in 27
5 Makedonija GP 6 Oct 5 – Nov 9 1 in 18

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
Vardar 1373 46 -6 10 10.3 -0.3
Sileks 1271 36 +13 9 6.2 +2.8
Shkendija 1403 35 -14 7 9.8 -2.8
Renova 1247 31 +28 12 6.3 +5.7
Shkupi 1264 29 -3 7 8.3 -1.3
Makedonija GP 1223 29 -25 3 5.9 -2.9
Rabotnicki 1230 28 +30 13 5.1 +7.9
AP Brera Strumica 1246 28 -24 1 7.4 -6.4
Borec 1144 27 +25 7 3.3 +3.7
Struga 1195 25 -24 1 6.5 -5.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 ABS BOR MG RAB REN SHK SHK SIL STR VAR
AP Brera Strumica —
1-1-1
6.25
1-1-1
4.00
1-1-1
4.23
1-1-1
4.93
2-0-1
3.03
0-1-1
2.91
1-0-1
2.99
0-2-0
3.29
0-0-2
2.33
Borec
1-1-1
2.11
—
1-1-1
2.56
0-1-1
1.98
1-0-1
1.94
2-0-1
1.76
1-0-2
2.23
0-1-1
1.88
1-1-0
2.08
0-1-2
2.22
Makedonija GP
1-1-1
4.21
1-1-1
5.75
—
1-0-1
2.89
0-1-1
2.81
0-2-1
2.21
1-1-0
2.55
1-0-2
3.62
1-1-0
2.90
1-1-1
2.67
Rabotnicki
1-1-1
4.00
1-1-0
3.52
1-0-1
2.58
—
1-0-1
2.62
1-0-2
2.07
2-0-1
4.04
0-1-1
2.58
1-0-2
3.84
0-1-2
2.55
Renova
1-1-1
3.27
1-0-1
3.59
1-1-0
2.66
1-0-1
2.85
—
0-0-2
1.71
1-2-0
3.36
1-0-2
4.52
2-0-1
4.79
1-0-2
3.38
Shkendija
1-0-2
5.20
1-0-2
6.67
1-2-0
6.16
2-0-1
6.31
2-0-0
3.84
—
1-0-1
3.70
1-1-1
5.43
1-0-1
4.08
0-2-0
3.04
Shkupi
1-1-0
2.56
2-0-1
6.13
0-1-1
2.93
1-0-2
4.16
0-2-1
4.85
1-0-1
1.81
—
1-1-1
4.74
1-2-0
4.26
0-1-1
2.27
Sileks
1-0-1
2.50
1-1-0
3.63
2-0-1
4.60
1-1-0
2.88
2-0-1
3.68
1-1-1
2.83
1-1-1
3.48
—
1-1-1
4.07
0-1-1
2.03
Struga
0-2-0
2.21
0-1-1
3.42
0-1-1
2.57
2-0-1
4.39
1-0-2
3.43
1-0-1
1.48
0-2-1
3.96
1-1-1
4.13
—
1-0-2
2.33
Vardar
2-0-0
3.15
2-1-0
6.13
1-1-1
5.63
2-1-0
5.76
2-0-1
4.86
0-2-0
2.44
1-1-0
3.23
1-1-0
3.47
2-0-1
6.00
—

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.51 +7.1
Allowed 0.58 -7.8
Differential 0.71 +4.8

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
011.30%11.74%8.70%3.04%1.30%—36.09%
111.74%12.17%6.52%1.74%0.43%0.43%33.04%
28.70%6.52%3.48%1.30%0.43%—20.43%
33.04%1.74%1.30%—0.87%—6.96%
41.30%0.43%0.43%0.87%——3.04%
5+—0.43%————0.43%
Total36.09%33.04%20.43%6.96%3.04%0.43%100%

Summary Statistics

Scored Allowed Difference
Mean 1.10 1.10 +0.00
SD 1.11 1.11 1.60
CV 1.01 1.01 —
Max 6 6 +5
Min 0 0 -5

Games Played: 115

↓ Scored | Allowed →012345+Total
017.39%21.74%—4.35%——43.48%
18.70%13.04%4.35%8.70%——34.78%
213.04%4.35%————17.39%
3———————
44.35%—————4.35%
5+———————
Total43.48%39.13%4.35%13.04%——100%

Summary Statistics

Scored Allowed Difference
Mean 0.87 0.87 +0.00
SD 1.01 1.01 1.57
CV 1.17 1.17 —
Max 4 3 +4
Min 0 0 -3

Games Played: 23

↓ Scored | Allowed →012345+Total
013.04%4.35%17.39%4.35%4.35%—43.48%
113.04%13.04%8.70%4.35%——39.13%
24.35%4.35%————8.70%
3——4.35%———4.35%
4——4.35%———4.35%
5+———————
Total30.43%21.74%34.78%8.70%4.35%—100%

Summary Statistics

Scored Allowed Difference
Mean 0.87 1.35 -0.48
SD 1.06 1.15 1.59
CV 1.22 0.86 —
Max 4 4 +2
Min 0 0 -4

Games Played: 23

↓ Scored | Allowed →012345+Total
013.04%17.39%4.35%—4.35%—39.13%
14.35%21.74%—4.35%4.35%—34.78%
213.04%—————13.04%
3—4.35%4.35%———8.70%
4———4.35%——4.35%
5+———————
Total30.43%43.48%8.70%8.70%8.70%—100%

Summary Statistics

Scored Allowed Difference
Mean 1.04 1.22 -0.17
SD 1.15 1.24 1.59
CV 1.10 1.02 —
Max 4 4 +2
Min 0 0 -4

Games Played: 23

↓ Scored | Allowed →012345+Total
04.35%4.35%17.39%4.35%——30.43%
121.74%13.04%17.39%———52.17%
24.35%8.70%————13.04%
3————4.35%—4.35%
4———————
5+———————
Total30.43%26.09%34.78%4.35%4.35%—100%

Summary Statistics

Scored Allowed Difference
Mean 0.91 1.26 -0.35
SD 0.79 1.10 1.34
CV 0.87 0.87 —
Max 3 4 +2
Min 0 0 -3

Games Played: 23

↓ Scored | Allowed →012345+Total
0—21.74%13.04%4.35%——39.13%
113.04%8.70%———4.35%26.09%
28.70%8.70%8.70%———26.09%
3——4.35%———4.35%
4———4.35%——4.35%
5+———————
Total21.74%39.13%26.09%8.70%—4.35%100%

Summary Statistics

Scored Allowed Difference
Mean 1.09 1.43 -0.35
SD 1.12 1.34 1.70
CV 1.03 0.94 —
Max 4 6 +2
Min 0 0 -5

Games Played: 23

↓ Scored | Allowed →012345+Total
013.04%21.74%4.35%———39.13%
1—4.35%4.35%———8.70%
28.70%8.70%4.35%—4.35%—26.09%
38.70%—————8.70%
48.70%4.35%————13.04%
5+—4.35%————4.35%
Total39.13%43.48%13.04%—4.35%—100%

Summary Statistics

Scored Allowed Difference
Mean 1.65 0.87 +0.78
SD 1.72 0.97 2.07
CV 1.04 1.11 —
Max 6 4 +5
Min 0 0 -2

Games Played: 23

↓ Scored | Allowed →012345+Total
013.04%4.35%4.35%—4.35%—26.09%
14.35%13.04%13.04%———30.43%
217.39%4.35%8.70%8.70%——39.13%
3—4.35%————4.35%
4———————
5+———————
Total34.78%26.09%26.09%8.70%4.35%—100%

Summary Statistics

Scored Allowed Difference
Mean 1.22 1.22 +0.00
SD 0.90 1.17 1.48
CV 0.74 0.96 —
Max 3 4 +2
Min 0 0 -4

Games Played: 23

↓ Scored | Allowed →012345+Total
013.04%8.70%4.35%8.70%——34.78%
130.43%8.70%4.35%———43.48%
2——4.35%———4.35%
38.70%4.35%——4.35%—17.39%
4———————
5+———————
Total52.17%21.74%13.04%8.70%4.35%—100%

Summary Statistics

Scored Allowed Difference
Mean 1.04 0.91 +0.13
SD 1.07 1.20 1.58
CV 1.02 1.32 —
Max 3 4 +3
Min 0 0 -3

Games Played: 23

↓ Scored | Allowed →012345+Total
013.04%13.04%13.04%4.35%——43.48%
14.35%17.39%8.70%———30.43%
2—21.74%—4.35%——26.09%
3———————
4———————
5+———————
Total17.39%52.17%21.74%8.70%——100%

Summary Statistics

Scored Allowed Difference
Mean 0.83 1.22 -0.39
SD 0.83 0.85 1.16
CV 1.01 0.70 —
Max 2 3 +1
Min 0 0 -3

Games Played: 23

↓ Scored | Allowed →012345+Total
013.04%—8.70%———21.74%
117.39%8.70%4.35%———30.43%
217.39%4.35%8.70%———30.43%
313.04%4.35%————17.39%
4———————
5+———————
Total60.87%17.39%21.74%———100%

Summary Statistics

Scored Allowed Difference
Mean 1.43 0.61 +0.83
SD 1.04 0.84 1.44
CV 0.72 1.38 —
Max 3 2 +3
Min 0 0 -2

Games Played: 23

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
Shkendija 1403 35 69.03 -34.03 0.0% 52 56 64 70 73 79 84
Vardar 1373 46 62.96 -16.96 0.0% 48 52 58 62 68 74 85
Sileks 1271 36 47.94 -11.94 9.0% 33 35 43 49 53 58 64
Shkupi 1264 29 51.05 -22.05 0.0% 33 38 45 51 56 64 70
Renova 1247 31 47.98 -16.98 0.0% 34 37 43 47 52 59 64
AP Brera Strumica 1246 28 51.00 -23.00 0.0% 34 37 45 51 57 63 73
Rabotnicki 1230 28 45.55 -17.55 0.0% 33 36 40 46 50 56 63
Makedonija GP 1223 29 47.28 -18.28 3.0% 25 33 43 47 52 59 66
Struga 1195 25 41.57 -16.57 1.0% 19 28 37 43 46 51 55
Borec 1144 27 31.62 -4.62 29.0% 13 19 26 32 36 43 48

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 23% * Slight Edge: 23% to 31% * Clear Edge: 31% to 38% * Strong Edge: 38% 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
+31.30%
Clear Edge
52.17%26.96%20.87%
Elo Value
Home Edge
205 Elo
0.005 goals per Elo point
0112.54600
Scoring Tilt
Expected
+0.66 goals
Home-Tilted
-2+0.55+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 2 * Top-Heavy: 2 to 3 * Open: 3 to 4 * Wide Open: 4 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.12 * Tight Race: 0.12 to 0.25 * Comfortable: 0.25 to 0.36 * Runaway: 0.36 and up.
Title-Race Openness
2.0
One-Team Race
123410
Champion Preseason Odds
23%
Vardar, 2nd of 10
LongshotFavorite
Title Margin
Expected
0.43/gm
Runaway
00.230.6/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 4.61 * Some Luck: 4.61 to 6.92 * Lucky: 6.92 to 9.23 * Wild Swing: 9.23 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.35 * Close: 1.35 to 2.02 * Off: 2.02 to 2.69 * Way Off: 2.69 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
4.79 points
Some Luck
05.7714
Average Finish Error
Expected
1.60
Close
01.684
Biggest Overachiever
Expected 95.00%
88.19%
Borec
50100
Biggest Underachiever
Expected 5.00%
4.94%
Shkendija
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.17 * Even: 0.17 to 0.19 * Top-Heavy: 0.19 to 0.21 * Lopsided: 0.21 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.9 * Moderate Separation: 1.9 to 2.1 * Strong Separation: 2.1 to 2.3 * Wide Separation: 2.3 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 65% * Slight Edge: 65% to 70.5% * Clear Edge: 70.5% to 78% * Wide Edge: 78% 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 93% * Clear Edge: 93% to 95.5% * Strong Edge: 95.5% to 97.5% * Dominant: 97.5% 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.5% * Some Drama: 56.5% to 60.5% * Frequent: 60.5% to 63.5% * Very Frequent: 63.5% 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% * Frequent: 18% to 23% * Very Frequent: 23% and up.
Gini Index
0.09
Balanced
00.170.5
Noll-Scully
Elo SD: 77.15
0.99
Coin-Flip Parity
11.92.12.32.75
Interquartile Edge
56%
Even
50%65%78%100%
Best vs. Worst
Baseline
82%
Even
50%81%100%
Close Games
Expected
68%
Very Frequent
0%65%100%
Blowouts
Expected
10%
Rare
0%12%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.43 * Slight Separation: 0.43 to 0.46 * Notable Separation: 0.46 to 0.5 * Lopsided: 0.5 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.41 * Some Carryover: 0.41 to 0.57 * Strong Carryover: 0.57 to 0.65 * Near-Lock: 0.65 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 15% * As Expected: 15% to 18% * Upset-Prone: 18% to 21% * Very Upset-Prone: 21% 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 16.5% * Very Shaky: 16.5% and up.
Brier Score
Expected
0.62
Predictable
00.592
Matchup Imbalance
0.41
Very Even
00.430.5
Strangeness
Expected
0.70
Very Predictable
01.002
Repeatability
0.63
Strong Carryover
00.410.571
Upset Rate
Expected
25%
Very Upset-Prone
0%22%50%
Clear Favorite Upset Rate
Expected
25%
Very Shaky
0%19%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.23 * Above Noise: 0.23 to 0.3 * Well Above Noise: 0.3 and up.
Probability calibration
0.51
Excellent
0.010.050.10.51
Calibration slope
Ideal
0.35
Overconfident
0.1504031.001.8496
Calibration error (ECE)
Noise ceiling
0.076
Well Within Noise
00.1500.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
Vardar23.00%51.00%14.00%8.00%2.00%2.00%————
Sileks1.00%3.00%16.00%13.00%18.00%10.00%11.00%12.00%14.00%2.00%
Shkendija67.00%21.00%10.00%1.00%—1.00%————
Renova—1.00%14.00%8.00%16.00%19.00%18.00%17.00%5.00%2.00%
Shkupi4.00%9.00%20.00%18.00%12.00%6.00%17.00%6.00%8.00%—
Makedonija GP—2.00%9.00%15.00%21.00%12.00%10.00%13.00%12.00%6.00%
AP Brera Strumica5.00%12.00%10.00%20.00%10.00%15.00%11.00%9.00%7.00%1.00%
Rabotnicki——5.00%10.00%17.00%21.00%14.00%14.00%15.00%4.00%
Borec—————1.00%3.00%9.00%14.00%73.00%
Struga—1.00%2.00%7.00%4.00%13.00%16.00%20.00%25.00%12.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
AP Brera Strumica 100%
Borec 100%
Makedonija GP 100%
Rabotnicki 100%
Renova 100%
Shkendija 100%
Shkupi 100%
Sileks 100%
Struga 100%
Vardar 100%

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
2019-08-10 Borec W 2-028.1 1273 1112 69.91% 18.07% 12.02%+1.33 +3.8 3
2019-08-10 @ Shkupi L 0-228.1 1112 1273 12.02% 18.07% 69.91%-1.33 -3.8 0
2019-08-10 Rabotnicki W 2-145.0 1219 1245 47.85% 27.21% 24.94%+0.42 +4.2 3
2019-08-10 @ Struga L 1-245.0 1245 1219 24.94% 27.21% 47.85%-0.42 -4.2 0
2019-08-10 Shkendija W 1-045.6 1265 1424 29.56% 28.20% 42.24%-0.22 +6.6 3
2019-08-10 @ AP Brera Strumica L 0-145.6 1424 1265 42.24% 28.20% 29.56%+0.22 -6.6 0
2019-08-10 Sileks W 1-037.1 1260 1243 53.47% 25.61% 20.92%+0.63 +3.8 3
2019-08-10 @ Renova L 0-137.1 1243 1260 20.92% 25.61% 53.47%-0.63 -3.8 0
2019-08-11 Makedonija GP L 0-245.2 1331 1224 64.19% 21.07% 14.74%+1.07 -17.3 0
2019-08-11 @ Vardar W 2-045.2 1224 1331 14.74% 21.07% 64.19%-1.07 +17.3 3
2019-08-17 Shkupi W 2-035.5 1241 1277 46.42% 27.52% 26.06%+0.37 +8.7 3
2019-08-17 @ Rabotnicki L 0-235.5 1277 1241 26.06% 27.52% 46.42%-0.37 -8.7 3
2019-08-18 AP Brera Strumica D 0-048.9 1241 1272 47.14% 27.37% 25.49%+0.40 -0.8 4
2019-08-18 @ Makedonija GP D 0-048.9 1272 1241 25.49% 27.37% 47.14%-0.40 +0.8 4
2019-08-18 Shkendija W 1-045.9 1239 1417 27.26% 27.80% 44.94%-0.32 +7.0 3
2019-08-18 @ Sileks L 0-145.9 1417 1239 44.94% 27.80% 27.26%+0.32 -7.0 0
2019-08-18 Struga W 2-142.5 1264 1224 56.31% 24.58% 19.11%+0.75 +3.2 6
2019-08-18 @ Renova L 1-242.5 1224 1264 19.11% 24.58% 56.31%-0.75 -3.2 3
2019-08-18 Vardar D 0-048.8 1108 1314 24.32% 27.01% 48.67%-0.45 +0.9 1
2019-08-18 @ Borec D 0-048.8 1314 1108 48.67% 27.01% 24.32%+0.45 -0.9 1
2019-08-24 Rabotnicki W 2-031.9 1313 1249 59.12% 23.43% 17.45%+0.86 +5.9 4
2019-08-24 @ Vardar L 0-231.9 1249 1313 17.45% 23.43% 59.12%-0.86 -5.9 3
2019-08-25 Borec W 2-028.1 1272 1109 70.14% 17.94% 11.92%+1.34 +3.8 7
2019-08-25 @ AP Brera Strumica L 0-228.1 1109 1272 11.92% 17.94% 70.14%-1.34 -3.8 1
2019-08-25 Makedonija GP D 1-158.2 1410 1240 70.81% 17.57% 11.62%+1.37 -2.0 1
2019-08-25 @ Shkendija D 1-158.2 1240 1410 11.62% 17.57% 70.81%-1.37 +2.0 5
2019-08-25 Renova D 2-260.8 1268 1267 51.30% 26.30% 22.40%+0.55 -0.7 4
2019-08-25 @ Shkupi D 2-260.8 1267 1268 22.40% 26.30% 51.30%-0.55 +0.7 7
2019-08-25 Sileks W 2-145.0 1220 1246 47.85% 27.21% 24.94%+0.42 +4.2 6
2019-08-25 @ Struga L 1-245.0 1246 1220 24.94% 27.21% 47.85%-0.42 -4.2 3
2019-08-31 AP Brera Strumica L 1-251.8 1243 1276 46.88% 27.42% 25.69%+0.39 -6.8 3
2019-08-31 @ Rabotnicki W 2-151.8 1276 1243 25.69% 27.42% 46.88%-0.39 +6.8 10
2019-08-31 Makedonija GP L 3-459.3 1242 1242 51.13% 26.35% 22.52%+0.55 -6.7 3
2019-08-31 @ Sileks W 4-359.3 1242 1242 22.52% 26.35% 51.13%-0.55 +6.7 8
2019-08-31 Shkendija W 1-048.2 1105 1408 16.56% 22.72% 60.72%-0.92 +8.8 4
2019-08-31 @ Borec L 0-148.2 1408 1105 60.72% 22.72% 16.56%+0.92 -8.8 1
2019-08-31 Shkupi D 1-154.3 1224 1267 45.49% 27.70% 26.81%+0.34 -0.6 7
2019-08-31 @ Struga D 1-154.3 1267 1224 26.81% 27.70% 45.49%-0.34 +0.6 5
2019-09-01 Vardar L 0-145.3 1268 1319 44.39% 27.89% 27.72%+0.30 -6.9 7
2019-09-01 @ Renova W 1-045.3 1319 1268 27.72% 27.89% 44.39%-0.30 +6.9 7
2019-09-13 Renova W 2-033.4 1283 1261 53.98% 25.44% 20.59%+0.65 +7.0 13
2019-09-13 @ AP Brera Strumica L 0-233.4 1261 1283 20.59% 25.44% 53.98%-0.65 -7.0 7
2019-09-14 Borec W 3-134.9 1249 1114 67.14% 19.56% 13.30%+1.20 +3.7 11
2019-09-14 @ Makedonija GP L 1-334.9 1114 1249 13.30% 19.56% 67.14%-1.20 -3.7 4
2019-09-14 Rabotnicki W 3-027.4 1399 1237 70.06% 17.99% 11.96%+1.34 +5.5 4
2019-09-14 @ Shkendija L 0-327.4 1237 1399 11.96% 17.99% 70.06%-1.34 -5.5 3
2019-09-14 Sileks W 1-036.6 1268 1235 55.40% 24.93% 19.68%+0.71 +3.5 8
2019-09-14 @ Shkupi L 0-136.6 1235 1268 19.68% 24.93% 55.40%-0.71 -3.5 3
2019-09-14 Struga W 3-028.8 1326 1224 63.55% 21.38% 15.06%+1.04 +7.2 10
2019-09-14 @ Vardar L 0-328.8 1224 1326 15.06% 21.38% 63.55%-1.04 -7.2 7
2019-09-18 AP Brera Strumica D 0-048.6 1217 1290 41.30% 28.31% 30.40%+0.19 -0.4 8
2019-09-18 @ Struga D 0-048.6 1290 1217 30.40% 28.31% 41.30%-0.19 +0.4 14
2019-09-18 Borec W 3-027.6 1231 1110 65.64% 20.34% 14.02%+1.14 +6.7 6
2019-09-18 @ Sileks L 0-327.6 1110 1231 14.02% 20.34% 65.64%-1.14 -6.7 4
2019-09-18 Makedonija GP W 1-038.6 1231 1253 48.40% 27.08% 24.52%+0.44 +4.4 6
2019-09-18 @ Rabotnicki L 0-138.6 1253 1231 24.52% 27.08% 48.40%-0.44 -4.4 11
2019-09-18 Shkendija L 0-238.0 1254 1405 30.57% 28.33% 41.10%-0.18 -9.9 7
2019-09-18 @ Renova W 2-038.0 1405 1254 41.10% 28.33% 30.57%+0.18 +9.9 7
2019-09-18 Vardar L 1-251.3 1272 1333 42.92% 28.11% 28.96%+0.25 -6.3 8
2019-09-18 @ Shkupi W 2-151.3 1333 1272 28.96% 28.11% 42.92%-0.25 +6.3 13
2019-09-21 Rabotnicki D 1-153.7 1104 1236 33.02% 28.53% 38.45%-0.09 +0.2 5
2019-09-21 @ Borec D 1-153.7 1236 1104 38.45% 28.53% 33.02%+0.09 -0.2 7
2019-09-22 Renova L 0-146.5 1248 1244 51.70% 26.18% 22.12%+0.57 -7.8 11
2019-09-22 @ Makedonija GP W 1-046.5 1244 1248 22.12% 26.18% 51.70%-0.57 +7.8 10
2019-09-22 Shkupi D 0-049.7 1290 1265 54.39% 25.29% 20.32%+0.67 -1.3 15
2019-09-22 @ AP Brera Strumica D 0-049.7 1265 1290 20.32% 25.29% 54.39%-0.67 +1.3 9
2019-09-22 Sileks W 3-028.9 1340 1238 63.50% 21.41% 15.09%+1.04 +7.3 16
2019-09-22 @ Vardar L 0-328.9 1238 1340 15.09% 21.41% 63.50%-1.04 -7.3 6
2019-09-22 Struga W 2-028.0 1414 1216 73.60% 16.00% 10.40%+1.51 +3.2 10
2019-09-22 @ Shkendija L 0-228.0 1216 1414 10.40% 16.00% 73.60%-1.51 -3.2 8
2019-09-28 Shkendija W 2-041.5 1267 1418 30.49% 28.32% 41.19%-0.19 +12.3 12
2019-09-28 @ Shkupi L 0-241.5 1418 1267 41.19% 28.32% 30.49%+0.19 -12.3 10
2019-09-29 AP Brera Strumica W 1-036.4 1347 1289 58.40% 23.74% 17.86%+0.83 +3.2 19
2019-09-29 @ Vardar L 0-136.4 1289 1347 17.86% 23.74% 58.40%-0.83 -3.2 15
2019-09-29 Borec W 2-138.6 1252 1104 68.57% 18.80% 12.63%+1.27 +2.0 13
2019-09-29 @ Renova L 1-238.6 1104 1252 12.63% 18.80% 68.57%-1.27 -2.0 5
2019-09-29 Makedonija GP L 0-241.7 1213 1240 47.60% 27.27% 25.13%+0.41 -13.7 8
2019-09-29 @ Struga W 2-041.7 1240 1213 25.13% 27.27% 47.60%-0.41 +13.7 14
2019-09-29 Rabotnicki W 1-037.9 1231 1235 50.59% 26.50% 22.91%+0.52 +4.1 9
2019-09-29 @ Sileks L 0-137.9 1235 1231 22.91% 26.50% 50.59%-0.52 -4.1 7
2019-10-04 Renova W 1-038.7 1231 1254 48.21% 27.12% 24.67%+0.44 +4.4 10
2019-10-04 @ Rabotnicki L 0-138.7 1254 1231 24.67% 27.12% 48.21%-0.44 -4.4 13
2019-10-05 Shkupi D 0-049.0 1254 1279 47.96% 27.18% 24.86%+0.43 -0.8 15
2019-10-05 @ Makedonija GP D 0-049.0 1279 1254 24.86% 27.18% 47.96%-0.43 +0.8 13
2019-10-05 Sileks W 2-032.2 1286 1235 57.58% 24.08% 18.34%+0.80 +6.2 18
2019-10-05 @ AP Brera Strumica L 0-232.2 1235 1286 18.34% 24.08% 57.58%-0.80 -6.2 9
2019-10-05 Struga W 3-252.4 1102 1199 37.87% 28.55% 33.57%+0.07 +5.0 8
2019-10-05 @ Borec L 2-352.4 1199 1102 33.57% 28.55% 37.87%-0.07 -5.0 8
2019-10-05 Vardar D 0-052.2 1405 1350 58.11% 23.86% 18.03%+0.82 -1.5 11
2019-10-05 @ Shkendija D 0-052.2 1350 1405 18.03% 23.86% 58.11%-0.82 +1.5 20
2019-10-18 AP Brera Strumica L 0-150.2 1404 1292 64.64% 20.85% 14.51%+1.09 -9.2 11
2019-10-18 @ Shkendija W 1-050.2 1292 1404 14.51% 20.85% 64.64%-1.09 +9.2 21
2019-10-19 Renova W 3-033.0 1229 1250 48.44% 27.07% 24.49%+0.45 +11.9 12
2019-10-19 @ Sileks L 0-333.0 1250 1229 24.49% 27.07% 48.44%-0.45 -11.9 13
2019-10-19 Shkupi W 2-150.9 1107 1280 27.88% 27.92% 44.19%-0.29 +6.5 11
2019-10-19 @ Borec L 1-250.9 1280 1107 44.19% 27.92% 27.88%+0.29 -6.5 13
2019-10-19 Struga L 1-253.6 1236 1194 56.41% 24.54% 19.05%+0.75 -7.8 10
2019-10-19 @ Rabotnicki W 2-153.6 1194 1236 19.05% 24.54% 56.41%-0.75 +7.8 11
2019-10-19 Vardar D 1-154.5 1253 1352 37.76% 28.56% 33.68%+0.07 -0.1 16
2019-10-19 @ Makedonija GP D 1-154.5 1352 1253 33.68% 28.56% 37.76%-0.07 +0.1 21
2019-10-23 Borec W 2-026.1 1352 1113 77.27% 13.88% 8.85%+1.71 +2.6 24
2019-10-23 @ Vardar L 0-226.1 1113 1352 8.85% 13.88% 77.27%-1.71 -2.6 11
2019-10-23 Makedonija GP W 4-030.8 1301 1253 57.22% 24.22% 18.56%+0.78 +11.9 24
2019-10-23 @ AP Brera Strumica L 0-430.8 1253 1301 18.56% 24.22% 57.22%-0.78 -11.9 16
2019-10-23 Rabotnicki W 2-032.3 1273 1228 56.89% 24.35% 18.76%+0.77 +6.3 16
2019-10-23 @ Shkupi L 0-232.3 1228 1273 18.76% 24.35% 56.89%-0.77 -6.3 10
2019-10-23 Renova W 1-039.1 1202 1238 46.49% 27.50% 26.00%+0.37 +4.6 14
2019-10-23 @ Struga L 0-139.1 1238 1202 26.00% 27.50% 46.49%-0.37 -4.6 13
2019-10-23 Sileks W 3-027.6 1395 1241 69.19% 18.46% 12.35%+1.30 +5.7 14
2019-10-23 @ Shkendija L 0-327.6 1241 1395 12.35% 18.46% 69.19%-1.30 -5.7 12
2019-10-26 Vardar L 0-238.1 1222 1354 32.89% 28.52% 38.59%-0.10 -10.4 10
2019-10-26 @ Rabotnicki W 2-038.1 1354 1222 38.59% 28.52% 32.89%+0.10 +10.4 27
2019-10-27 AP Brera Strumica W 1-045.6 1111 1313 24.67% 27.13% 48.20%-0.44 +7.3 14
2019-10-27 @ Borec L 0-145.6 1313 1111 48.20% 27.13% 24.67%+0.44 -7.4 24
2019-10-27 Shkendija D 0-049.4 1241 1400 29.50% 28.19% 42.30%-0.23 +0.5 17
2019-10-27 @ Makedonija GP D 0-049.4 1400 1241 42.30% 28.19% 29.50%+0.23 -0.5 15
2019-10-27 Shkupi D 2-260.2 1233 1280 45.03% 27.78% 27.19%+0.32 -0.4 14
2019-10-27 @ Renova D 2-260.2 1280 1233 27.19% 27.78% 45.03%-0.32 +0.4 17
2019-10-27 Struga W 1-036.6 1235 1207 54.77% 25.16% 20.08%+0.68 +3.6 15
2019-10-27 @ Sileks L 0-136.6 1207 1235 20.08% 25.16% 54.77%-0.68 -3.6 14
2019-11-02 Rabotnicki D 1-156.1 1306 1211 62.72% 21.79% 15.49%+1.01 -1.6 25
2019-11-02 @ AP Brera Strumica D 1-156.1 1211 1306 15.49% 21.79% 62.72%-1.01 +1.6 11
2019-11-03 Borec W 4-023.5 1400 1118 80.87% 11.75% 7.38%+1.92 +3.9 18
2019-11-03 @ Shkendija L 0-423.5 1118 1400 7.38% 11.75% 80.87%-1.92 -3.9 14
2019-11-03 Renova W 2-029.8 1365 1233 66.85% 19.71% 13.44%+1.19 +4.3 30
2019-11-03 @ Vardar L 0-229.8 1233 1365 13.44% 19.71% 66.85%-1.19 -4.4 14
2019-11-03 Sileks L 0-146.5 1242 1238 51.62% 26.20% 22.18%+0.56 -7.8 17
2019-11-03 @ Makedonija GP W 1-046.5 1238 1242 22.18% 26.20% 51.62%-0.56 +7.8 18
2019-11-03 Struga D 0-050.2 1280 1203 60.65% 22.76% 16.59%+0.92 -1.7 18
2019-11-03 @ Shkupi D 0-050.2 1203 1280 16.59% 22.76% 60.65%-0.92 +1.7 15
2019-11-09 AP Brera Strumica D 1-154.2 1228 1304 40.94% 28.34% 30.72%+0.18 -0.3 15
2019-11-09 @ Renova D 1-154.2 1304 1228 30.72% 28.34% 40.94%-0.18 +0.3 26
2019-11-09 Makedonija GP D 1-153.7 1114 1234 34.69% 28.59% 36.72%-0.03 +0.1 15
2019-11-09 @ Borec D 1-153.7 1234 1114 36.72% 28.59% 34.69%+0.03 -0.1 18
2019-11-09 Shkupi W 1-039.2 1246 1278 46.97% 27.41% 25.63%+0.39 +4.5 21
2019-11-09 @ Sileks L 0-139.2 1278 1246 25.63% 27.41% 46.97%-0.39 -4.5 18
2019-11-09 Vardar W 2-151.1 1205 1369 28.88% 28.10% 43.02%-0.25 +6.4 18
2019-11-09 @ Struga L 1-251.1 1369 1205 43.02% 28.10% 28.88%+0.25 -6.3 30
2019-11-10 Shkendija L 1-246.1 1213 1404 25.83% 27.46% 46.70%-0.38 -4.3 11
2019-11-10 @ Rabotnicki W 2-146.1 1404 1213 46.70% 27.46% 25.83%+0.38 +4.3 21
2019-11-23 Rabotnicki W 2-032.9 1234 1208 54.44% 25.27% 20.28%+0.67 +6.9 21
2019-11-23 @ Makedonija GP L 0-232.9 1208 1234 20.28% 25.27% 54.44%-0.67 -6.9 11
2019-11-24 Renova W 6-129.6 1408 1228 71.83% 17.00% 11.17%+1.42 +6.7 24
2019-11-24 @ Shkendija L 1-629.6 1228 1408 11.17% 17.00% 71.83%-1.42 -6.7 15
2019-11-24 Shkupi D 1-156.7 1363 1274 62.06% 22.11% 15.84%+0.98 -1.6 31
2019-11-24 @ Vardar D 1-156.7 1274 1363 15.84% 22.11% 62.06%-0.98 +1.6 19
2019-11-24 Sileks D 0-048.2 1114 1251 32.40% 28.49% 39.11%-0.12 +0.2 16
2019-11-24 @ Borec D 0-048.2 1251 1114 39.11% 28.49% 32.40%+0.12 -0.2 22
2019-11-24 Struga D 1-156.1 1304 1211 62.56% 21.87% 15.57%+1.00 -1.6 27
2019-11-24 @ AP Brera Strumica D 1-156.1 1211 1304 15.57% 21.87% 62.56%-1.00 +1.6 19
2019-11-27 AP Brera Strumica W 3-141.4 1275 1303 47.57% 27.27% 25.16%+0.41 +7.3 22
2019-11-27 @ Shkupi L 1-341.4 1303 1275 25.16% 27.27% 47.57%-0.41 -7.3 27
2019-11-27 Borec W 2-140.6 1202 1115 61.83% 22.21% 15.96%+0.97 +2.7 14
2019-11-27 @ Rabotnicki L 1-240.6 1115 1202 15.96% 22.21% 61.83%-0.97 -2.7 16
2019-11-27 Makedonija GP D 1-154.4 1221 1241 48.66% 27.02% 24.33%+0.45 -0.8 16
2019-11-27 @ Renova D 1-154.4 1241 1221 24.33% 27.02% 48.66%-0.45 +0.8 22
2019-11-27 Shkendija W 2-152.8 1213 1415 24.70% 27.13% 48.17%-0.44 +6.9 22
2019-11-27 @ Struga L 1-252.8 1415 1213 48.17% 27.13% 24.70%+0.44 -6.9 24
2019-11-27 Vardar D 2-260.5 1251 1361 35.99% 28.60% 35.42%+0.01 -0.0 23
2019-11-27 @ Sileks D 2-260.5 1361 1251 35.42% 28.60% 35.99%-0.01 +0.0 32
2019-11-30 Struga D 1-154.8 1242 1220 53.99% 25.43% 20.58%+0.65 -1.1 23
2019-11-30 @ Makedonija GP D 1-154.8 1220 1242 20.58% 25.43% 53.99%-0.65 +1.1 23
2019-12-01 Renova W 1-042.0 1112 1221 36.26% 28.60% 35.14%+0.02 +5.8 19
2019-12-01 @ Borec L 0-142.0 1221 1112 35.14% 28.60% 36.26%-0.02 -5.8 16
2019-12-01 Shkupi W 4-029.2 1408 1283 66.13% 20.09% 13.78%+1.16 +8.5 27
2019-12-01 @ Shkendija L 0-429.2 1283 1408 13.78% 20.09% 66.13%-1.16 -8.5 22
2019-12-01 Sileks D 1-154.1 1204 1250 45.03% 27.78% 27.19%+0.32 -0.6 15
2019-12-01 @ Rabotnicki D 1-154.1 1250 1204 27.19% 27.78% 45.03%-0.32 +0.6 24
2019-12-01 Vardar L 0-339.7 1296 1361 42.39% 28.18% 29.43%+0.23 -18.2 27
2019-12-01 @ AP Brera Strumica W 3-039.7 1361 1296 29.43% 28.18% 42.39%-0.23 +18.2 35
2019-12-08 AP Brera Strumica W 3-141.1 1251 1277 47.74% 27.23% 25.03%+0.42 +7.2 27
2019-12-08 @ Sileks L 1-341.1 1277 1251 25.03% 27.23% 47.74%-0.42 -7.2 27
2019-12-08 Borec D 1-155.9 1221 1118 63.67% 21.33% 15.00%+1.05 -1.7 24
2019-12-08 @ Struga D 1-155.9 1118 1221 15.00% 21.33% 63.67%-1.05 +1.7 20
2019-12-08 Makedonija GP L 2-358.3 1274 1240 55.46% 24.91% 19.64%+0.71 -7.3 22
2019-12-08 @ Shkupi W 3-258.3 1240 1274 19.64% 24.91% 55.46%-0.71 +7.3 26
2019-12-08 Rabotnicki W 4-350.1 1215 1204 52.63% 25.88% 21.48%+0.60 +3.4 19
2019-12-08 @ Renova L 3-450.1 1204 1215 21.48% 25.88% 52.63%-0.60 -3.4 15
2019-12-08 Shkendija D 2-263.4 1379 1416 46.29% 27.55% 26.16%+0.37 -0.5 36
2019-12-08 @ Vardar D 2-263.4 1416 1379 26.16% 27.55% 46.29%-0.37 +0.5 28
2020-02-15 Makedonija GP W 3-136.0 1379 1248 66.75% 19.76% 13.48%+1.19 +3.8 39
2020-02-15 @ Vardar L 1-336.0 1248 1379 13.48% 19.76% 66.75%-1.19 -3.8 26
2020-02-16 Borec W 2-028.6 1267 1119 68.49% 18.84% 12.67%+1.26 +4.0 25
2020-02-16 @ Shkupi L 0-228.6 1119 1267 12.67% 18.84% 68.49%-1.26 -4.1 20
2020-02-16 Rabotnicki L 0-146.7 1219 1200 53.62% 25.56% 20.82%+0.64 -8.0 24
2020-02-16 @ Struga W 1-046.7 1200 1219 20.82% 25.56% 53.62%-0.64 +8.0 18
2020-02-16 Shkendija L 1-248.6 1270 1417 31.04% 28.38% 40.58%-0.17 -5.0 27
2020-02-16 @ AP Brera Strumica W 2-148.6 1417 1270 40.58% 28.38% 31.04%+0.17 +5.0 31
2020-02-16 Sileks L 0-145.1 1218 1258 45.87% 27.63% 26.50%+0.35 -7.1 19
2020-02-16 @ Renova W 1-045.1 1258 1218 26.50% 27.63% 45.87%-0.35 +7.1 30
2020-02-22 Vardar L 0-136.2 1115 1383 18.99% 24.50% 56.51%-0.75 -3.4 20
2020-02-22 @ Borec W 1-036.2 1383 1115 56.51% 24.50% 18.99%+0.75 +3.4 42
2020-02-23 AP Brera Strumica W 1-038.7 1244 1265 48.43% 27.07% 24.50%+0.44 +4.3 29
2020-02-23 @ Makedonija GP L 0-138.7 1265 1244 24.50% 27.07% 48.43%-0.44 -4.4 27
2020-02-23 Shkendija D 0-049.9 1265 1422 29.82% 28.24% 41.94%-0.21 +0.4 31
2020-02-23 @ Sileks D 0-049.9 1422 1265 41.94% 28.24% 29.82%+0.21 -0.4 32
2020-02-23 Shkupi W 2-146.6 1208 1271 42.79% 28.13% 29.08%+0.24 +4.7 21
2020-02-23 @ Rabotnicki L 1-246.6 1271 1208 29.08% 28.13% 42.79%-0.24 -4.7 25
2020-02-23 Struga W 2-033.8 1211 1211 51.18% 26.33% 22.48%+0.55 +7.6 22
2020-02-23 @ Renova L 0-233.8 1211 1211 22.48% 26.33% 51.18%-0.55 -7.6 24
2020-02-29 Rabotnicki D 0-052.3 1386 1213 71.14% 17.39% 11.47%+1.39 -2.3 43
2020-02-29 @ Vardar D 0-052.3 1213 1386 11.47% 17.39% 71.14%-1.39 +2.3 22
2020-02-29 Sileks D 0-048.5 1204 1266 42.84% 28.12% 29.04%+0.24 -0.5 25
2020-02-29 @ Struga D 0-048.5 1266 1204 29.04% 28.12% 42.84%-0.24 +0.5 32
2020-03-01 Borec D 0-051.2 1261 1112 68.65% 18.75% 12.60%+1.27 -2.2 28
2020-03-01 @ AP Brera Strumica D 0-051.2 1112 1261 12.60% 18.75% 68.65%-1.27 +2.1 21
2020-03-01 Makedonija GP W 4-132.0 1421 1248 71.14% 17.39% 11.47%+1.39 +4.4 35
2020-03-01 @ Shkendija L 1-432.0 1248 1421 11.47% 17.39% 71.14%-1.39 -4.4 29
2020-03-01 Renova L 2-358.5 1266 1219 57.14% 24.25% 18.60%+0.78 -7.5 25
2020-03-01 @ Shkupi W 3-258.5 1219 1266 18.60% 24.25% 57.14%-0.78 +7.5 25
2020-03-07 AP Brera Strumica W 1-039.5 1215 1259 45.43% 27.71% 26.86%+0.34 +4.7 25
2020-03-07 @ Rabotnicki L 0-139.5 1259 1215 26.86% 27.71% 45.43%-0.34 -4.7 28
2020-03-08 Makedonija GP W 1-037.0 1266 1244 54.05% 25.41% 20.54%+0.66 +3.7 35
2020-03-08 @ Sileks L 0-137.0 1244 1266 20.54% 25.41% 54.05%-0.66 -3.7 29
2020-03-08 Shkendija W 4-253.8 1114 1426 15.98% 22.23% 61.79%-0.97 +13.0 24
2020-03-08 @ Borec L 2-453.8 1426 1114 61.79% 22.23% 15.98%+0.97 -13.0 35
2020-03-08 Shkupi L 1-250.9 1203 1259 43.78% 27.99% 28.23%+0.28 -6.4 25
2020-03-08 @ Struga W 2-150.9 1259 1203 28.23% 27.99% 43.78%-0.28 +6.4 28
2020-03-08 Vardar W 2-041.0 1226 1384 29.68% 28.22% 42.10%-0.22 +12.5 28
2020-03-08 @ Renova L 0-241.0 1384 1226 42.10% 28.22% 29.68%+0.22 -12.5 43
2020-03-11 Borec L 0-244.8 1240 1127 64.80% 20.77% 14.43%+1.10 -17.4 29
2020-03-11 @ Makedonija GP W 2-044.8 1127 1240 14.43% 20.77% 64.80%-1.10 +17.4 27
2020-03-11 Rabotnicki L 0-150.7 1413 1220 73.09% 16.29% 10.62%+1.49 -10.0 35
2020-03-11 @ Shkendija W 1-050.7 1220 1413 10.62% 16.29% 73.09%-1.49 +10.0 28
2020-03-11 Renova L 0-146.8 1254 1239 53.15% 25.72% 21.13%+0.62 -7.9 28
2020-03-11 @ AP Brera Strumica W 1-046.8 1239 1254 21.13% 25.72% 53.15%-0.62 +7.9 31
2020-03-11 Sileks D 1-154.8 1265 1270 50.55% 26.52% 22.94%+0.52 -0.9 29
2020-03-11 @ Shkupi D 1-154.8 1270 1265 22.94% 26.52% 50.55%-0.52 +0.9 36
2020-03-11 Struga W 1-032.1 1371 1197 71.29% 17.30% 11.40%+1.40 +1.9 46
2020-03-11 @ Vardar L 0-132.1 1197 1371 11.40% 17.30% 71.29%-1.40 -1.9 25

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 2020-03-11 10.62% Rabotnicki 1220 1 @ Shkendija 1413 0
2 2020-03-11 14.43% Borec 1127 2 @ Makedonija GP 1240 0
3 2019-10-18 14.51% AP Brera Strumica 1292 1 @ Shkendija 1404 0
4 2019-08-11 14.74% Makedonija GP 1224 2 @ Vardar 1331 0
5 2020-03-08 15.98% @ Borec 1114 4 Shkendija 1426 2
6 2019-08-31 16.56% @ Borec 1105 1 Shkendija 1408 0
7 2020-03-01 18.60% Renova 1219 3 @ Shkupi 1266 2
8 2019-10-19 19.05% Struga 1194 2 @ Rabotnicki 1236 1
9 2019-12-08 19.64% Makedonija GP 1240 3 @ Shkupi 1274 2
10 2020-02-16 20.82% Rabotnicki 1200 1 @ Struga 1219 0
11 2020-03-11 21.13% Renova 1239 1 @ AP Brera Strumica 1254 0
12 2019-09-22 22.12% Renova 1244 1 @ Makedonija GP 1248 0
13 2019-11-03 22.18% Sileks 1238 1 @ Makedonija GP 1242 0
14 2019-08-31 22.52% Makedonija GP 1242 4 @ Sileks 1242 3
15 2019-10-27 24.67% @ Borec 1111 1 AP Brera Strumica 1313 0
16 2019-11-27 24.70% @ Struga 1213 2 Shkendija 1415 1
17 2019-09-29 25.13% Makedonija GP 1240 2 @ Struga 1213 0
18 2019-08-31 25.69% AP Brera Strumica 1276 2 @ Rabotnicki 1243 1
19 2020-02-16 26.50% Sileks 1258 1 @ Renova 1218 0
20 2019-08-18 27.26% @ Sileks 1239 1 Shkendija 1417 0
21 2019-09-01 27.72% Vardar 1319 1 @ Renova 1268 0
22 2019-10-19 27.88% @ Borec 1107 2 Shkupi 1280 1
23 2020-03-08 28.23% Shkupi 1259 2 @ Struga 1203 1
24 2019-11-09 28.88% @ Struga 1205 2 Vardar 1369 1
25 2019-09-18 28.96% Vardar 1333 2 @ Shkupi 1272 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 2019-12-01 18.23 Vardar 3 1361 29.43% @ AP Brera Strumica 0 1296 42.39% 28.18%
2 2020-03-11 17.38 Borec 2 1127 14.43% @ Makedonija GP 0 1240 64.80% 20.77%
3 2019-08-11 17.27 Makedonija GP 2 1224 14.74% @ Vardar 0 1331 64.19% 21.07%
4 2019-09-29 13.72 Makedonija GP 2 1240 25.13% @ Struga 0 1213 47.60% 27.27%
5 2020-03-08 13.01 @ Borec 4 1114 15.98% Shkendija 2 1426 61.79% 22.23%
6 2020-03-08 12.49 @ Renova 2 1226 29.68% Vardar 0 1384 42.10% 28.22%
7 2019-09-28 12.29 @ Shkupi 2 1267 30.49% Shkendija 0 1418 41.19% 28.32%
8 2019-10-19 11.94 @ Sileks 3 1229 48.44% Renova 0 1250 24.49% 27.07%
9 2019-10-23 11.93 @ AP Brera Strumica 4 1301 57.22% Makedonija GP 0 1253 18.56% 24.22%
10 2019-10-26 10.42 Vardar 2 1354 38.59% @ Rabotnicki 0 1222 32.89% 28.52%
11 2020-03-11 10.01 Rabotnicki 1 1220 10.62% @ Shkendija 0 1413 73.09% 16.29%
12 2019-09-18 9.86 Shkendija 2 1405 41.10% @ Renova 0 1254 30.57% 28.33%
13 2019-10-18 9.20 AP Brera Strumica 1 1292 14.51% @ Shkendija 0 1404 64.64% 20.85%
14 2019-08-31 8.79 @ Borec 1 1105 16.56% Shkendija 0 1408 60.72% 22.72%
15 2019-08-17 8.67 @ Rabotnicki 2 1241 46.42% Shkupi 0 1277 26.06% 27.52%
16 2019-12-01 8.51 @ Shkendija 4 1408 66.13% Shkupi 0 1283 13.78% 20.09%
17 2020-02-16 7.99 Rabotnicki 1 1200 20.82% @ Struga 0 1219 53.62% 25.56%
18 2020-03-11 7.93 Renova 1 1239 21.13% @ AP Brera Strumica 0 1254 53.15% 25.72%
19 2019-10-19 7.83 Struga 2 1194 19.05% @ Rabotnicki 1 1236 56.41% 24.54%
20 2019-09-22 7.76 Renova 1 1244 22.12% @ Makedonija GP 0 1248 51.70% 26.18%
21 2019-11-03 7.75 Sileks 1 1238 22.18% @ Makedonija GP 0 1242 51.62% 26.20%
22 2020-02-23 7.61 @ Renova 2 1211 51.18% Struga 0 1211 22.48% 26.33%
23 2020-03-01 7.50 Renova 3 1219 18.60% @ Shkupi 2 1266 57.14% 24.25%
24 2019-10-27 7.35 @ Borec 1 1111 24.67% AP Brera Strumica 0 1313 48.20% 27.13%
25 2019-12-08 7.34 Makedonija GP 3 1240 19.64% @ Shkupi 2 1274 55.46% 24.91%

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 2019-12-08 63.4 @ Vardar 2 1379 46.29% Shkendija 2 1416 26.16% 27.55%
2 2019-08-25 60.8 @ Shkupi 2 1268 51.30% Renova 2 1267 22.40% 26.30%
3 2019-11-27 60.5 @ Sileks 2 1251 35.99% Vardar 2 1361 35.42% 28.60%
4 2019-10-27 60.2 @ Renova 2 1233 45.03% Shkupi 2 1280 27.19% 27.78%
5 2019-08-31 59.3 Makedonija GP 4 1242 22.52% @ Sileks 3 1242 51.13% 26.35%
6 2020-03-01 58.5 Renova 3 1219 18.60% @ Shkupi 2 1266 57.14% 24.25%
7 2019-12-08 58.3 Makedonija GP 3 1240 19.64% @ Shkupi 2 1274 55.46% 24.91%
8 2019-08-25 58.2 @ Shkendija 1 1410 70.81% Makedonija GP 1 1240 11.62% 17.57%
9 2019-11-24 56.7 @ Vardar 1 1363 62.06% Shkupi 1 1274 15.84% 22.11%
10 2019-11-02 56.1 @ AP Brera Strumica 1 1306 62.72% Rabotnicki 1 1211 15.49% 21.79%
11 2019-11-24 56.1 @ AP Brera Strumica 1 1304 62.56% Struga 1 1211 15.57% 21.87%
12 2019-12-08 55.9 @ Struga 1 1221 63.67% Borec 1 1118 15.00% 21.33%
13 2019-11-30 54.8 @ Makedonija GP 1 1242 53.99% Struga 1 1220 20.58% 25.43%
14 2020-03-11 54.8 @ Shkupi 1 1265 50.55% Sileks 1 1270 22.94% 26.52%
15 2019-10-19 54.5 @ Makedonija GP 1 1253 37.76% Vardar 1 1352 33.68% 28.56%
16 2019-11-27 54.4 @ Renova 1 1221 48.66% Makedonija GP 1 1241 24.33% 27.02%
17 2019-08-31 54.3 @ Struga 1 1224 45.49% Shkupi 1 1267 26.81% 27.70%
18 2019-11-09 54.2 @ Renova 1 1228 40.94% AP Brera Strumica 1 1304 30.72% 28.34%
19 2019-12-01 54.1 @ Rabotnicki 1 1204 45.03% Sileks 1 1250 27.19% 27.78%
20 2020-03-08 53.8 @ Borec 4 1114 15.98% Shkendija 2 1426 61.79% 22.23%
21 2019-09-21 53.7 @ Borec 1 1104 33.02% Rabotnicki 1 1236 38.45% 28.53%
22 2019-11-09 53.7 @ Borec 1 1114 34.69% Makedonija GP 1 1234 36.72% 28.59%
23 2019-10-19 53.6 Struga 2 1194 19.05% @ Rabotnicki 1 1236 56.41% 24.54%
24 2019-11-27 52.8 @ Struga 2 1213 24.70% Shkendija 1 1415 48.17% 27.13%
25 2019-10-05 52.4 @ Borec 3 1102 37.87% Struga 2 1199 33.57% 28.55%
# Date Excitement Winning Team Losing Team Tie %
Team Score Elo Win % Team Score Elo Win %
1 2019-11-03 23.5 @ Shkendija 4 1400 80.87% Borec 0 1118 7.38% 11.75%
2 2019-10-23 26.1 @ Vardar 2 1352 77.27% Borec 0 1113 8.85% 13.88%
3 2019-09-14 27.4 @ Shkendija 3 1399 70.06% Rabotnicki 0 1237 11.96% 17.99%
4 2019-09-18 27.6 @ Sileks 3 1231 65.64% Borec 0 1110 14.02% 20.34%
5 2019-10-23 27.6 @ Shkendija 3 1395 69.19% Sileks 0 1241 12.35% 18.46%
6 2019-09-22 28.0 @ Shkendija 2 1414 73.60% Struga 0 1216 10.40% 16.00%
7 2019-08-10 28.1 @ Shkupi 2 1273 69.91% Borec 0 1112 12.02% 18.07%
8 2019-08-25 28.1 @ AP Brera Strumica 2 1272 70.14% Borec 0 1109 11.92% 17.94%
9 2020-02-16 28.6 @ Shkupi 2 1267 68.49% Borec 0 1119 12.67% 18.84%
10 2019-09-14 28.8 @ Vardar 3 1326 63.55% Struga 0 1224 15.06% 21.38%
11 2019-09-22 28.9 @ Vardar 3 1340 63.50% Sileks 0 1238 15.09% 21.41%
12 2019-12-01 29.2 @ Shkendija 4 1408 66.13% Shkupi 0 1283 13.78% 20.09%
13 2019-11-24 29.6 @ Shkendija 6 1408 71.83% Renova 1 1228 11.17% 17.00%
14 2019-11-03 29.8 @ Vardar 2 1365 66.85% Renova 0 1233 13.44% 19.71%
15 2019-10-23 30.8 @ AP Brera Strumica 4 1301 57.22% Makedonija GP 0 1253 18.56% 24.22%
16 2019-08-24 31.9 @ Vardar 2 1313 59.12% Rabotnicki 0 1249 17.45% 23.43%
17 2020-03-01 32.0 @ Shkendija 4 1421 71.14% Makedonija GP 1 1248 11.47% 17.39%
18 2020-03-11 32.1 @ Vardar 1 1371 71.29% Struga 0 1197 11.40% 17.30%
19 2019-10-05 32.2 @ AP Brera Strumica 2 1286 57.58% Sileks 0 1235 18.34% 24.08%
20 2019-10-23 32.3 @ Shkupi 2 1273 56.89% Rabotnicki 0 1228 18.76% 24.35%
21 2019-11-23 32.9 @ Makedonija GP 2 1234 54.44% Rabotnicki 0 1208 20.28% 25.27%
22 2019-10-19 33.0 @ Sileks 3 1229 48.44% Renova 0 1250 24.49% 27.07%
23 2019-09-13 33.4 @ AP Brera Strumica 2 1283 53.98% Renova 0 1261 20.59% 25.44%
24 2020-02-23 33.8 @ Renova 2 1211 51.18% Struga 0 1211 22.48% 26.33%
25 2019-09-14 34.9 @ Makedonija GP 3 1249 67.14% Borec 1 1114 13.30% 19.56%