2023 Simulated Schedules
See the 2022 Simulated Schedules.
Introduction
With the 2024 season coming up, let’s look back at last season and see how different the outcome could have been if the schedule had been different.
Every week, each team ‘plays’ another team in the league. However, there is no real interaction between the two teams. Each team tries to score the most points they can, independent of their opponent. That is, Team A’s owner will roster the players he thinks will get the most points that week, regardless of whether he is playing Team B, C, or D.
Using this premise we’ll perform the following workflow:
- Generate a new season schedule
- Use the number of points each team actually scored in each week to determine the outcome of every game
- Calculate the season standings from the new schedule
Some questions we’ll answer:
- What were the chances of team X placing where they did last season?
- What were the chances of each team placing first/last for the season?
- What were each team’s chances of making the playoffs?
Lastly, we’ll look at some interesting and unlikley rankings that could have occured.
Just The Regular Season
Unfortunately, this analysis is only for the regular season. The reason I can’t include the playoffs is because of the first-round byes that four teams have. These byes mean that I don’t have team point totals for four teams from week fifteen. When we simulate a new schedule, those four teams that had byes might not have them anymore, but since they didn’t play that week, we can’t determine the game outcome.
If you guys enjoy this analysis then next year I can include the playoffs. We’ll just have to have the four teams with first-round byes tell me the players they would roster for that week if they didn’t have a bye.
Schedule Generation
At the start of the season Sleeper randomly generates the season schedules. The regular season is fourteen weeks long. In the first eleven weeks, each team plays every other team once. Then, the first three weeks are repeated for the last three weeks.
Ideally, we could generate every possible schedule, which would give us an exact distribution of each owner’s rankings. The exact number of possible schedules is a tricky combinatorics problem, but I’ve estimated it to be somewhere around 10^25 (a 1 with 25 zeros after it). With this many possible schedules, we can’t generate them all, but we can generate a very large number that will give us a fairly accurate picture of the ‘true’ distribution.
Season Results
It’s been a few months since the season ended, so as a reminder, here are the final standings from the regular season.
| Rank | Username | Points For | Points Against | Record |
|---|---|---|---|---|
| 1 | pacc | 2008.96 | 1765.22 | 9-5 |
| 2 | thezirconisdragon | 2000.73 | 1895.99 | 9-5 |
| 3 | herbietime | 2114.47 | 1990.59 | 8-6 |
| 4 | alecwilson | 2107.20 | 1854.36 | 8-6 |
| 5 | empireyikesback | 1798.42 | 1662.93 | 8-6 |
| 6 | burgertownthicnred | 1769.67 | 1778.89 | 8-6 |
| 7 | therealfergus | 1814.81 | 2027.19 | 6-8 |
| 8 | mackjyers21 | 1730.29 | 1818.54 | 6-8 |
| 9 | shakylegs | 1650.25 | 1838.57 | 6-8 |
| 10 | tonygordzilla22 | 1625.72 | 1735.48 | 6-8 |
| 11 | black8yellownation | 1495.60 | 1615.37 | 6-8 |
| 12 | namebrant | 1645.83 | 1778.82 | 4-10 |
10 Million Simulations
I simulated 10 million possible schedules, and recorded the final season rankings for each. Lets look at some of the results.
Ranking Counts
These are the raw counts from the 10 million simulations. For example, herbietime placed first in 5,191,110 simulations, whereas tonygordzilla22 placed first only 36 times. Some interesting things to note:
- Every team except herbietime could have placed last
- Every team except blackandyelllownation could have placed first
There could be schedules were herbietime placed last or blackandyellownation placed first. However, they didn’t occur in the 10 million simulations performed here.
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| herbietime | 5191110 | 2466258 | 1263125 | 638384 | 281700 | 108655 | 38014 | 10242 | 2192 | 300 | 20 | 0 |
| thezirconisdragon | 2074697 | 2171155 | 2116925 | 1910464 | 908055 | 432684 | 211870 | 104144 | 44943 | 18354 | 6032 | 677 |
| pacc | 1301049 | 2361512 | 2587268 | 2017290 | 952164 | 439508 | 200778 | 89029 | 34619 | 12850 | 3618 | 315 |
| alecwilson | 1209358 | 2309450 | 2423388 | 2001998 | 1123941 | 556264 | 243843 | 95928 | 28520 | 6519 | 771 | 20 |
| empireyikesback | 100340 | 300327 | 652351 | 1275076 | 2215778 | 2300439 | 1551716 | 906495 | 443471 | 187408 | 59043 | 7556 |
| therealfergus | 79027 | 231050 | 524234 | 1112273 | 2232044 | 2101218 | 1603096 | 1077066 | 611100 | 301181 | 112416 | 15295 |
| mackjyers21 | 29770 | 97803 | 239929 | 529663 | 1024433 | 1574398 | 2006172 | 2136204 | 1266054 | 688986 | 334023 | 72565 |
| burgertownthicnred | 12441 | 50768 | 148201 | 374902 | 863380 | 1594773 | 2346878 | 2212003 | 1351781 | 705852 | 291124 | 47897 |
| shakylegs | 1832 | 8321 | 27895 | 79198 | 204288 | 428686 | 818694 | 1486333 | 2669906 | 2335301 | 1514670 | 424876 |
| namebrant | 340 | 2944 | 13802 | 46325 | 136744 | 302059 | 591635 | 1072327 | 1910769 | 2822535 | 2315996 | 784524 |
| tonygordzilla22 | 36 | 403 | 2825 | 14000 | 54992 | 151888 | 361161 | 736419 | 1446341 | 2425927 | 3904713 | 901295 |
| black8yellownation | 0 | 9 | 57 | 427 | 2481 | 9428 | 26143 | 73810 | 190304 | 494787 | 1457574 | 7744980 |
Ranking Percentage
This is the same table as above, however, now it shows as a percentage. I’ve also highlighted the ranking that each team actually had in the 2023 season. Now, we can see the herbietime had about a 51.9% chance of taking first place, a 24.6% chance of taking second, and a 12.6% chance of taking third, which he did.
- The first column is each team’s chance of placing first
- The last column is each team’s chance of placing last
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| username | ||||||||||||
| herbietime | 51.9111 | 24.66258 | 12.63125 | 6.38384 | 2.817 | 1.08655 | 0.38014 | 0.10242 | 0.02192 | 0.003 | 0.0002 | 0.0 |
| thezirconisdragon | 20.74697 | 21.71155 | 21.16925 | 19.10464 | 9.08055 | 4.32684 | 2.1187 | 1.04144 | 0.44943 | 0.18354 | 0.06032 | 0.00677 |
| pacc | 13.01049 | 23.61512 | 25.87268 | 20.1729 | 9.52164 | 4.39508 | 2.00778 | 0.89029 | 0.34619 | 0.1285 | 0.03618 | 0.00315 |
| alecwilson | 12.09358 | 23.0945 | 24.23388 | 20.01998 | 11.23941 | 5.56264 | 2.43843 | 0.95928 | 0.2852 | 0.06519 | 0.00771 | 0.0002 |
| empireyikesback | 1.0034 | 3.00327 | 6.52351 | 12.75076 | 22.15778 | 23.00439 | 15.51716 | 9.06495 | 4.43471 | 1.87408 | 0.59043 | 0.07556 |
| therealfergus | 0.79027 | 2.3105 | 5.24234 | 11.12273 | 22.32044 | 21.01218 | 16.03096 | 10.77066 | 6.111 | 3.01181 | 1.12416 | 0.15295 |
| mackjyers21 | 0.2977 | 0.97803 | 2.39929 | 5.29663 | 10.24433 | 15.74398 | 20.06172 | 21.36204 | 12.66054 | 6.88986 | 3.34023 | 0.72565 |
| burgertownthicnred | 0.12441 | 0.50768 | 1.48201 | 3.74902 | 8.6338 | 15.94773 | 23.46878 | 22.12003 | 13.51781 | 7.05852 | 2.91124 | 0.47897 |
| shakylegs | 0.01832 | 0.08321 | 0.27895 | 0.79198 | 2.04288 | 4.28686 | 8.18694 | 14.86333 | 26.69906 | 23.35301 | 15.1467 | 4.24876 |
| namebrant | 0.0034 | 0.02944 | 0.13802 | 0.46325 | 1.36744 | 3.02059 | 5.91635 | 10.72327 | 19.10769 | 28.22535 | 23.15996 | 7.84524 |
| tonygordzilla22 | 0.00036 | 0.00403 | 0.02825 | 0.14 | 0.54992 | 1.51888 | 3.61161 | 7.36419 | 14.46341 | 24.25927 | 39.04713 | 9.01295 |
| black8yellownation | 0.0 | 9e-05 | 0.00057 | 0.00427 | 0.02481 | 0.09428 | 0.26143 | 0.7381 | 1.90304 | 4.94787 | 14.57574 | 77.4498 |
Playoff Chances
This table aggregates the previous one into a more readable format. Each column is the percentage of simulations where each team placed better, equal, or worse than their actual ranking for the season. The last column in the percentage of simulations where they placed in the top six teams.
Here was can really see who got lucky and unlucky with the schedule.
- Pacc took first place, a 13% chance, but he had an 87% chance of placing worse than that.
- Namebrant took last place, a 7.8% chance, but he had a 92.2% chance of placing better (better luck next year Brant).
- The playoff teams were about as expected except for burgertownthicnred sliding into the playoffs with a 30.5% chance and kicking therealfergus to the losers bracket despite his 62.8% chance.
| Rank | Username | Better | Equal | Worse | Playoff |
|---|---|---|---|---|---|
| 1 | pacc | 0.00 | 13.01 | 86.99 | 96.59 |
| 2 | thezirconisdragon | 20.75 | 21.71 | 57.54 | 96.14 |
| 3 | herbietime | 76.57 | 12.63 | 10.80 | 99.49 |
| 4 | alecwilson | 59.42 | 20.02 | 20.56 | 96.24 |
| 5 | empireyikesback | 23.28 | 22.16 | 54.56 | 68.44 |
| 6 | burgertownthicnred | 14.50 | 15.95 | 69.56 | 30.44 |
| 7 | therealfergus | 62.80 | 16.03 | 21.17 | 62.80 |
| 8 | mackjyers21 | 55.02 | 21.36 | 23.62 | 34.96 |
| 9 | shakylegs | 30.55 | 26.70 | 42.75 | 7.50 |
| 10 | tonygordzilla22 | 27.68 | 24.26 | 48.06 | 2.24 |
| 11 | black8yellownation | 7.97 | 14.58 | 77.45 | 0.12 |
| 12 | namebrant | 92.15 | 7.85 | 0.00 | 5.02 |
For you visual minded guys, here’s a chart of the previous table:
Some Interesting Rankings
Here are some interesting rankings from all ten million simulations. The columns in these tables are given:
- The Chance >= column contains the percentage of simulations in which that team placed greater than or equal to their given ranking.
- The Playoff column contains the percentage of simulations in which that team made the playoffs
Most Common Ranking
The most common ranking order appeared 15,053 times:
| Rank | Username | Chance >= | Playoff |
|---|---|---|---|
| 1 | herbietime | 51.91110 | 99.49 |
| 2 | thezirconisdragon | 42.45852 | 96.14 |
| 3 | alecwilson | 59.42196 | 96.24 |
| 4 | pacc | 82.67119 | 96.59 |
| 5 | therealfergus | 41.78628 | 62.80 |
| 6 | empireyikesback | 68.44311 | 68.44 |
| 7 | burgertownthicnred | 53.91343 | 30.44 |
| 8 | mackjyers21 | 76.38372 | 34.96 |
| 9 | shakylegs | 57.25153 | 7.50 |
| 10 | namebrant | 68.99480 | 5.02 |
| 11 | tonygordzilla22 | 90.98705 | 2.24 |
| 12 | black8yellownation | 100.00000 | 0.12 |
Unlikely Top 3
In this ranking, mackjeyers, burgertownthicnred, and shakylegs take the top spots despite each having a less than one percent chance of doing so.
| Rank | Username | Chance >= | Playoff |
|---|---|---|---|
| 1 | mackjyers21 | 0.29770 | 34.96 |
| 2 | burgertownthicnred | 0.63209 | 30.44 |
| 3 | shakylegs | 0.38048 | 7.50 |
| 4 | herbietime | 95.58877 | 99.49 |
| 5 | alecwilson | 90.68135 | 96.24 |
| 6 | pacc | 96.58791 | 96.59 |
| 7 | thezirconisdragon | 98.25850 | 96.14 |
| 8 | therealfergus | 89.60008 | 62.80 |
| 9 | empireyikesback | 97.45993 | 68.44 |
| 10 | namebrant | 68.99480 | 5.02 |
| 11 | tonygordzilla22 | 90.98705 | 2.24 |
| 12 | black8yellownation | 100.00000 | 0.12 |
Lopsided Playoffs
Here, we have the bottom three teams in terms of playoff chances all making the playoffs.
| Rank | Username | Chance >= | Playoff |
|---|---|---|---|
| 1 | herbietime | 51.91110 | 99.49 |
| 2 | pacc | 36.62561 | 96.59 |
| 3 | thezirconisdragon | 63.62777 | 96.14 |
| 4 | namebrant | 0.63411 | 5.02 |
| 5 | tonygordzilla22 | 0.72256 | 2.24 |
| 6 | black8yellownation | 0.12402 | 0.12 |
| 7 | alecwilson | 98.68242 | 96.24 |
| 8 | empireyikesback | 93.02522 | 68.44 |
| 9 | burgertownthicnred | 89.55127 | 30.44 |
| 10 | therealfergus | 98.72289 | 62.80 |
| 11 | mackjyers21 | 99.27435 | 34.96 |
| 12 | shakylegs | 100.00000 | 7.50 |
End
We can see that no matter how good or bad your team is, you can still get incredibly lucky or unlucky with the season schedule. Let me know what you guys think about this analysis and if you want to see anything else.