There are approximately a quadrillion possible schedule combinations for each NFL season. We chatted with VP of Broadcasting, Mike North, to learn about the science—and art—behind finding “the one.”
Each year, we have to wait to see who wins the Super Bowl before we can start the process. The next day, we’re right back in the office starting to run schedule simulations because we’re officially on the clock—the NFL only has about 3 months to create the schedule for the upcoming season.
And it all starts with determining the value of each of our 272 games. Each game is an asset. Our job is to try and figure out how to maximize the value and return for each of these assets during an 18-week period. The goal is to land on the optimal schedule for fans, teams, and television partners in the shortest amount of time.
The best thing our partnership is that AWS is not a one-stop shop. They did not say to us, “Here’s our product, good luck with it.” They sat in the scheduling room with us. They played along at home with us for a couple of years. And then they came up with a plan to really help maximize what AWS could bring to the table in terms of software and hardware and monitoring the performance of each of these machines.
Every night, every single computer we deploy this project on is monitored. Is it working in the most efficient way? Should it be building seed schedules? Should it be building full schedules? Should it be counting up viewership or should it be counting up three-game road trips? How do we get not just maximum value from each of the 272 games, but gain maximum value from each of the 3500-4000 Spot Instances that we've got running overnight?
And AWS has jumped right into the deep end of the pool with us. They are understanding our problem more and more each day. And I'm really looking forward to the next version of the AWS-NFL partnership where we not only talk about not just how best to use the Spot Instances in searches, but use the Spot Instances smarter and search through the solution space smarter.
But it’s not just about raw compute. This is a close collaboration where we need both expert people and sophisticated technology to be flexible enough to answer questions like “what would it cost the NFL to change this?” or “what is the impact of this change at this time?”
We obviously use past data as well, but we’re constantly incorporating new data sets like daily interactions with fans, which can be rather complex. Our fans tell us every day what they are interested in by who they are clicking on when they go to NFL.com and watching videos, who they are playing on their fantasy teams, whose jerseys they are buying, and who they're following on Instagram. Every time a fan makes a choice about how they interact with the NFL, we can take that information, add it to our ever-evolving data set, and then use that information to help us determine the value each of these 272 games.
Every single one of these games can be played in any of the 18 weeks on any one of seven television networks at any one of eight time slots. The number of possible schedules is well into the quadrillions and we're looking for the magical, mythical unicorn NFL schedule that satisfies all 32 teams equally and all seven network partners equally. That schedule probably does not exist, so it becomes an exercise not only in optimization, but also in pain management.
It wasn’t so long ago we used did use to do this by hand on a cork board and produce 1-2 different schedule options a year. But the complexity of assembling the NFL schedule continues to grow exponentially. So, what used to be done manually, has turned into one of those classic “needle in a haystack” engineering problems.
We first start by defining all known possible factors and inputting them into a rules engine before we begin generating schedule simulations. For the 2022-2023 season, there were over 26,000 rules to take into consideration. This includes things like making sure teams that share a stadium aren’t hosting home games on the same day, maximizing late-season division games, travel before and after international games, and many others. For any schedule to be an option, it has to adhere to these rules.
Once all these different scenarios are being run, this is where the numbers start to escalate and it becomes clearer why we use AWS high-performance computing to help with this process. There are nearly 1 billion options for each team and a quadrillion—1,000,000,000,000,000—total possible schedule combinations that could occur. This year, we’ve put together and analyzed over 100,000 finished schedules with AWS, something that would have otherwise taken thousands of people hours to do manually, and we whittled it down to the one schedule we chose for the season.
So, what we can do now every single night is deploy thousands of AWS Spot Instances, searching through all different branches of the search tree, but all still talking to each other, all are still working off the same set of variables the same set of rules, the same set of constraints, the same scoring system, but maybe just giving it a nudge into a slightly different starting spot.
We always liken it to finding the best grain of sand on a gigantic beach. How would you even begin? Well, the first thing you do is you would get as many of your friends as you possibly could. And you would spread them out across the beach. And we would tell everybody, this is what the best grain of sand looks like—this size, this shape, this color. If somebody's getting close, well then maybe somebody who's not getting close was just on the wrong part of the beach. So they can leave that part of the beach and come over here where somebody is getting close. And let's do a deeper dive in this area of the beach because whatever it is about the sand and the sun and the water and the jellyfish and the crayfish that makes this grain of sand closer to what we're looking for, hopefully there are many others like it in this section.
And then, all of a sudden, something shifts like Tom Brady retiring. Now, the definition of the best grain of sand on the beach has changed. Tom Brady's not in the league anymore, everybody back to your starting points, here's the new definition of the best grain of sand. And then 30 days later, Tom Brady changes in his mind. Everybody back to your original starting point. Now here's the new new definition of the best grain of sand. Start digging again. And we start digging again every night over and over again for 14 weeks. We find what we think is as close as we can get in the time we have because at some point, we've got to pick a winner.
There are tons of examples, but let’s take a look at NFL free agency. Right after the Super Bowl ends, we have to start generating schedules. This year, we saw shocking trades and big signings that fundamentally changed the landscape of the league. All of a sudden, we have players in different conferences and a variety of new matchups that impact where certain games could be slotted.
And while this offseason was fairly unprecedented, it isn’t necessarily a new issue though. Take a look at Tom Brady again. All we have to do is look back to when he signed with the Tampa Bay Buccaneers in March, 2020. At the time, the team was coming off a third-place finish in its division with a 7-9 record and our modeling the first few weeks reflected that performance. However, once they landed one of the marquee players in the league, their odds for the upcoming season changed and they became a better fit to be scheduled for primetime games.
From a technology standpoint, we need the flexibility AWS provides to account for these changes while leveraging the baseline models developed right after the season ends. In practice, this means we modify weighting for certain teams in the rules engine, or moving individual games by hand, within an existing schedule.
All of our problems are just a little bit different. Some are different in size. We only play 17 games per season so the stakes are a little bit higher for us. When other leagues build their schedule and they have a game or series or two deployed aren’t quite deployed in an optimal way, there’s another game next in the next day or two. For the NFL, every game matters so we really need to be strategic about how we deploy each one of these assets.
That's something that we're going through right now as we deploy one of our packages of games on Amazon Prime Video. We’re asking our fans to shift the way they consume our product. And they're going to have to go to a streaming service to find games now. We have spent 50 years building an audience on network television and promoting and driving people to the three-letter networks. This is the next evolution in that.
Just like any other industry as your audience changes, as what they want changes, as what they're willing to spend changes, your product changes. You have to change right along with them. So, we’re constantly reevaluating, not just how to deploy these best assets but where to deploy these best assets if we really want to make the streaming service on Thursday night on Amazon jump off the page and be successful.
We couldn't do that if we were still building the schedule by hand. So, we have to take advantage of that data. We have to listen to our fans. And we have to be strategic about deploying each of these.
But it's also a little bit about looking backward. You know what has worked for you in the past. You don't necessarily want to completely abandon it. Maybe you kind of roll out a new way to solve this thing in parallel, kind of as a pilot program, and have parallel paths going until you're 100% sure that the new way works. You don't want to abandon the old way too quickly.
We've also learned a lot over the years by talking to everybody we could think of, including the NFL’s corporate partners. The one that may be closest to what we're trying to do, believe it or not, is Frito Lay. Every single time Frito Lay pulls a potato out of the ground, they have to make a decision. How do I get maximum return from this one potato? Do I cook it right now? Or do I freeze it and save it for later? Do I make sour cream and onion or do I make barbecue? Do I put it in a little bag and put it in a high school cafeteria vending machine? Or do I put it in a big bag and put it on the shelves at Costco? It’s the same thing we're trying to do right now … being strategic with each of our games.
AWS is also looking into how computational life science challenges are being solved and seeing what concepts could be used to address the mathematical problems we face when putting the NFL schedule together. Genetic Algorithm is one of many methods that can be used to create a schedule. This method determines the best schedule using fitness cost calculation, which can compare the quality of one schedule against the other. Then, using crossover, mutation, and elitism selections, we can determine better schedules. We are very excited to see where AWS can help us go in the next year or two or eight or ten … all of us working together to get maximum value out of each one of our 272 potatoes!