Simulating Scorigami (or how to ruin the NFL)
Introduction
Most sports are boring. Not to watch or play of course, but to score! In football and hockey, no matter how or when you score, you receive a measly 1 point. Basketball is slightly more interesting as you could earn 1, 2, or 3 points, but this is still quite simple. American football does not have this problem, but arguably has the opposite problem – the scoring system is far too complicated.
In the NFL, the principal league of American football, depending on how you score you could earn either 2, 3, 6, 7, or 8 points, with many of these tied together in confusing ways. This means there are thousands of possible results that can be formed from some combination of these scores, with some being much more likely than others.
Following on from our previous work ruining football[1] and tennis[2], and with the Super Bowl just round the corner, I thought I would take a shot at ruining the NFL and try to predict the future. We can ask, given the 17,949 games of the NFL that have been played and the 1091 unique results[3] that have happened at time of writing, what results have never happened. When a game ends with one of these never before seen results, we call it a scorigami. I hope to figure out what is the chance that a game ends in a scorigami? And what scorigami is most likely to happen next?
Scorigami
Scorigami is a portmanteau of ‘Score’ and ‘Origami’, referring to the precise set of scores (or folds to humour the metaphor) that is needed to achieve a result that has never happened before. It was first introduced by sports journalist Jon Bois in 2014[4] (whose excellent video [5] on it is essential further watching) and has since taken on a life of its own, being frequently referenced by pundits and fans alike. There is even a Twitter/X page dedicated to tracking scorigami and how likely each game is to end in a novel score, which has almost 500k followers at the time of writing[6]. To understand why it took off, we must discuss the NFL scoring system.
In an NFL game, each team has some number of opportunities to score called drives. The two most common ways of scoring on these drives are via Field Goals (FGs) worth 3 points and Touchdowns (TDs) worth 6 points. Additionally, after scoring a TD the team has the opportunity to score an additional 1 or 2 points for either 6, 7 or 8 in total. Of these, scoring 7 is by far the most common, with 6 and 8 being rarer (but far from impossible). Roughly 60-70% of scores are TDs, with the majority of the remaining 30-40% of scores being FGs.
This means the most common final results are those that are multiples of 3 or 7, with rarer results involving 8 pointer(s) in the game (6 pointers do not matter as much as they are the same as two FGs). On a good day, teams can earn 40-50+ points, but most results are lower than this, the most common in NFL history being 20-17. But as all of the scores occur at least somewhat often, it is surprising that some possible lower final results, such as 8-7, have still not occurred. One reason for this is that teams score a lot – an 8 point TD has been scored plenty of times, but no game has ended 8-7 as other scores happened too! Another reason lies in the 2 point score – the Safety.
Safeties are one of the rarest possible ways to score in the NFL, if not in all of sport. In 2023, there were 1302 TDs and 911 FGs across the NFL, but there were only 17 (seventeen!) safeties. A result like 4-4, which initially appears quite easy to achieve, should actually occur once every 1.7 billion years[7].
The Model
With this background, we can now try answering our questions! To figure out what the chance a game ends in a scorigami is, and what the most likely next scorigami is, I decided to simulate lots of NFL games using Python code. We can then compare the frequency of scores found in the simulation with that of real life, find out what the most likely scores are in my simulation that have not happened yet, and there we have our answer! But first, we have to develop the model.
Part 1: Method
The first and most important thing to figure out for the model was how to simulate a single NFL game. I considered the following two options.
- Use a poisson distribution for each score (2, 3, 6, 7, or 8) and combine the outputs to generate a team’s score. Two random team’s score can then be combined to make a game’s final result
- Sample some number of drives from a distribution for each game, find the score of each drive using some set probabilities, and add up these points to make a final result.
I chose to go with the second method, as it meant I only had to find one statistic for each game – the number of drives – compared to the poisson distributions which would require at least ten variates for each game. Also, the poisson method is the most common method used to simulate NFL games by other sources, and so it is interesting to see if this alternative method agrees with their results.
To use this method, we need to find the number of drives that have occurred in each game, how often each drive ends in each score, and what NFL results have happened.
Part 2: Data Collection
Before collecting this data, we needed to decide the range of dates to take data from. The initial guess would be to use all available data, but there are several reasons not to do this.
- American Football during the early days of the NFL in the 1920s was very different to the American football we watch now, as strategies have completely changed and the quality of players has greatly improved.
- Not all of our desired data is immediately available, as our primary source only has the number of drives in each game going back to 1994. Whilst we could shift to using plays instead, we would have to redesign the model and it would likely be of little use because…
- The rules of the NFL change regularly. In 2015, the rules for scoring the additional one point after a TD was changed making it harder to achieve. This meant there has been a noticeable growth in teams deciding to go for two points instead of one – the average number of 2 point conversions made per season between 1994 and 2014 was approximately 34, whilst between 2015 and 2023 it is just over 57[8]. This means 6/8 point TDs have become more likely, at the cost of the 7 pointer.
Because of this rule change, and that more 8 pointers mean more rare scores, we will only use data from the full seasons between 2015 and 2023 – worry not, as we still have over 50,000 drives to draw data from.
To collect the data, I used a variety of sources. Information about how each drive ends as well as the full archive of NFL scores was found using pro-football-reference [9], while everything else was found using the nfl_data_py Python package [10].
Part 3: Drive Distribution
Once we have the drive data from nfl_data_py, we can plot the frequencies to get an idea of the rough shape of the distribution.

Figure 1: Chart showing the frequency of the total number of drives in each NFL game between 2015 and 2023.
The distribution appears fairly normally distributed with a slight positive skew. This leads us to consider two different options for our drive distribution – a typical normal distribution, or a skewed normal distribution. Using the sample mean, variance, and skewness from the data, we found the following curves.
Figure 2: Charts showing the frequency of the total number of drives we would expect to have seen using each distribution. This is laid on top of the chart from Figure 1.
It immediately appears that the skewed distribution is our best option, but to provide greater confidence we can perform a chi-squared test on each distribution. Our null hypotheses will be that the drive frequency matches the distributions, whilst our alternative hypothesis will be that it does not match them. There is a significant outlier in the data, with 38 drives occurring in a single game not once but twice, so we will perform the test both with and without this value.
It is clear to see from the p-values that the skewed normal distribution is the best model of the two and, if we ignore the outlier, it actually appears to be a very good model for the frequencies. Therefore, we will use this distribution.
Part 4: The Code
With all this data, we can now finally turn to the model! The model is made up of three main components – a function simulating a single game, a function simulating some input number of games, and a function that finds our scorigami’s and other interesting statistics from this.
The first function simulates a single game. It first samples our skewed normal distribution for a variate, which we take as our number of drives. As our output is (almost surely) not an integer, we round it to the nearest integer to get our final number. For each drive, it randomly chooses how it ends using our probabilities found earlier, and adds that to a running total. For example, there is a roughly 15% chance a drive ends with a field goal, so 15% of the time the running total will increase by 3-0. The drives alternate between each team, and this repeats until all of the drives have been ran. It then outputs the final score, ordered such that the largest number of points is first e.g. 20 – 17 instead of 17 – 20.
The second function takes as an input some integer, and runs that number of games using the first function. It adds the final score from each game to an array, which is its sole output. I chose to simulate 1,000,000 games for this article.
The third and final function is the most important, as it provides us with the answers to our questions! It takes in an integer as the input, and runs the second function to create the array. This array is then compared against an array containing every single NFL score that has happened to find which entries in the simulation are not in this array i.e. our scorigamis. It adds them to a new array, alongside the number of times it occurs, and determines what proportion of scores found in the simulation are scorigamis and which scorigamis occur the most. It returns this information, and some other interesting results, which helps us answer our questions.
The Results
Now, to what you’ve all been waiting for…
The model predicted that around 4.81% of games would end in a scorigami – that is roughly once every 20.8 games or about 13.1 scorigamis a season. The score it predicted as the most likely scorigami was…
36 – 23
It predicted that a game has a 0.12% chance of ending in this exact score, so across the 17,949 games that have happened we would have expected this result to happen 21 times, instead of the 0 it actually has.

Figure 3: Chart showing the frequency of each score in the simulation, with the winning teams score on the x axis and the losing teams on the y axis. Red is more common, while blue is less common. The top left triangle is empty as no team can score the most points and lose.
Now we know what the most likely next scorigami will be, we can ask how confident we are with these findings – how accurate was this model? There are several things we can look at to judge this.
- One of the best ways is by comparing the frequency of each score found in the model to the frequency in real life. The most common score in the NFL is 20-17, which the model agrees with, but it only predicted it to happen half as often as it does real life, and if we look at the top 100 scores, we can see a big difference in the shape of the distributions (see below).
- The model predicted we would see almost 12 scorigamis a season, but there hasn’t been more than 11 scorigamis in the league since 2002, suggesting this is likely far too high a number.
- Every time the model was ran, even with an extremely high number of simulations, there was still a lot of variation in the results. To account for all cases, we would likely need to run tens of millions of simulations, but unfortunately for us (and fortunately for my laptop), I only managed to simulate a million games.

Figure 4: Charts showing the frequency each score occurred in my simulation and in the NFL between 2015 and 2023.
Improvements
There are many factors this model does not consider that by addressing could help improve its accuracy.
- The most important improvement that could be made is factoring in game state – that is, how many points a team is trailing by, how long is left, and how does this impact scoring probabilities. How many points a team is trailing/winning by has a great impact on what scores they are happy to settle for – a team 8 points behind with a minute to go has no reason to settle for a field goal or even a 7 point TD, as they will still lose. In scenarios like this, teams have to be riskier and will go for harder (and therefore rarer) point scores like the 8 point TD, which greatly increases the chances of a scorigami.
- The model also ignores field position – where the ball starts each drive. Depending on how the previous team ended their drive, the opposition might need to travel the full length of the pitch or just a couple of yards. The shorter they need to travel, the more likely they are to score either a TD or FG (and less likely a safety), and the chance of a scorigami changes.
- We could also improve the distribution we found for the drive frequency, as we are using a continuous distribution to simulate a discrete variable, and although we are correcting by rounding it will likely still have some impact on our results (though how large is hard to say).
- In our model, if a game is drawn it still ends. Whereas in reality there would be some overtime where each team has further opportunities to score. Since 2017, 111 regular season games were drawn by the end of the fourth quarter – that is about 5.3% of games, not far off the 3.5% of games in our simulation that were tied. However, of these only 7 remained drawn after overtime, meaning only 0.33% of games are actually tied – 10x less then we predicted![11] This means we could be slightly underestimating final scores, and the higher the score the more likely a scorigami.
Conclusion
In a more thorough investigation then mine, a paper published this summer by researchers at Bucknell university uses a model which considers lots of these improvements[12]. They use the poisson distribution method mentioned earlier to find the result for each game, and then improve on this with a non-stationary poisson process to try and account for game state. Using this latter method, they find that 32-26 is the next most likely scorigami, rather than 36-23 (although this is close behind in 2nd place), and that the chance of a game ending in a scorigami is 5.52% – much higher than the probability we found. This is extremely interesting because…

Scorigami is a uniquely interesting aspect of the NFL, as it can only occur due to the strangely complicated scoring system. Seeing the success of the Bucknell model only fills me with confidence that a game will end 36-23 sooner rather than later. With the Super Bowl just round the corner, hopefully you now have something extra to keep an eye on, and maybe we’ll have something else to celebrate that morning!
Sources
[1] https://aprllp.com/apr-modelling-how-to-ruin-football/
[2] https://aprllp.com/how-to-ruin-tennis-a-modelling-sequel/
[3] https://www.pro-football-reference.com/boxscores/game-scores.htm
[4] Chart Party: Exploring ‘scoragami,’ the art of inventing new final scores – SBNation.com
[5] https://www.youtube.com/watch?v=9l5C8cGMueY
[6] Scorigami (@NFL_Scorigami) / X
[7] https://youtu.be/9l5C8cGMueY?feature=shared&t=239
[8] https://www.pro-football-reference.com/years/NFL/scoring.htm
[9] https://www.pro-football-reference.com/
[10] GitHub – nflverse/nfl_data_py: Python code for working with NFL play by play data
[11] List of NFL tied games – Wikipedia
[12] https://www.bucknell.edu/news/bucknell-researchers-predict-next-nfl-scorigami-new-paper
Ben Tocher
January 2025

Introduction