NFL Flexible Scheduling Watch: Week 6

Note: This post (mostly) does not reflect the result of the Thursday night game.

It’s time for another year of the Flex Schedule Watch, and as I alluded to in May I’m rolling out new HTML tables for the weekly display of games, even though two of the reasons I cited back then didn’t pan out. WordPress technically has a dedicated block for tables, but it also hijacks a lot of the HTML behind them, replaces some functions with its own custom code, and rejects some perfectly valid HTML if it doesn’t do things the way it wants to, which wouldn’t be quite so bad if the formatting options below the level of the entire table weren’t so limited. On its own, that would be enough to lead me to use a “custom HTML” block for the tables. The resulting table is narrow enough that I decided I wanted to have the body text wrap around it, and to avoid running into the same problem that frustrated me with the old graphics I ended up resorting to exploiting code WordPress normally only uses to support the classic editor. That could have allowed me to keep the table without resorting to the classic editor for the rest of the post, but the table is also wide enough that the text can’t squeeze in between the tables, and WordPress hijacks the HTML that would normally force the body text below any tables on the same side and I don’t know if it even has its own way of doing that, so classic editor it is.

Still, the point about screen readers remains valid, and this format allows me to include more and more descriptive notes, which is important when considering how complex and overlapping all the different factors I wanted to cover there were becoming – see the places where I noted Thursday or Monday night games in preceding or following weeks on the May post. (The main factor that convinced me to stick with this format and not go back to the previous format was just how difficult it was going to be to keep track of everything in Weeks 15 and 16 in particular. If I do ditch this format, I may still change how the weekly graphics look compared to last year.) Beyond that, I want to see how hard or easy, or fun, this will be to maintain compared to the previous system. Getting the graphics from the last couple of years to look the way I want in Excel was harder than it looked, because of a confluence of factors involving how Excel supports pictures and other visual elements that aren’t part of the cells themselves, as well as how varying border widths affects the whole spreadsheet. (Last year’s Week 15 graphics, which started with three rows of flexible windows instead of two, had to be worked on on an entirely separate set of rows from the rest of the graphics.)

This does mean I’ll have to update the team records and equivalent of the Buzzmeter manually, though, which could result in this approach taking longer than the previous system, but I could still end up deciding it’s worth it if I enjoy it more than wrestling with Excel, especially since I did something similar before with the Playoff Pictures – although it might not be a good sign that I’m probably still going to use static images for those. (Also, I’ve seriously been considering not ordering the flex candidates by quality and instead ordering them according to the order they’re in on the NFL web site, freeing me from having to copy-and-paste rows manually.) Ultimately, I consider this an experiment in whether this approach will work going forward, though I’m already not optimistic. Still, I went to all the trouble to put together new team-logo graphics and even graphics for each individual featured window, so I might as well get some use out of them.

Speaking of the Buzzmeter, because of the limitations of HTML – as, to my knowledge, I can’t crop an image with HTML alone – what I’ve done is color the background of the notes section from red to yellow to green based on the record of the worse team in each game. I was going to put a colored circle between the teams but it wasn’t big enough for the color to stand out. I’m still not completely happy with this, though, and I might end up deciding to add a blank column, either between the teams, on the far left side, or between the timeslot/broadcaster logo and the team logos. I welcome any input you might have as to what might work best.

How NFL flexible scheduling works: (see also the NFL’s own page on flex schedule procedures)

  • Up to two games in Weeks 5-10 (the “early flex” period), and any number of games from Week 11 onward, may be flexed into Sunday Night Football. Any number of games from Week 12 onward may be flexed into Monday Night Football, and up to two games from Week 13 onward may be flexed into Thursday Night Football. In addition, in select weeks in December a number of games may be listed as “TBD”, with two or three of those games being assigned to be played on Saturday. Note that I only cover early flexes if a star player on one of the teams is injured.
  • Only games scheduled for Sunday afternoon, or set aside for a potential move to Saturday, may be flexed into one of the flex-eligible windows – not existing primetime games or games in other standalone windows. The game currently listed in the flex-eligible window will take the flexed-in game’s space on the Sunday afternoon slate, generally on the network that the flexed-in game was originally scheduled for. The league may also move Sunday afternoon games between 1 PM ET and 4:05 or 4:25 PM ET.
  • Thursday Night Football flex moves must be announced 21 days in advance. Sunday and Monday Night Football moves must be announced 12 days in advance, except for Sunday night games in Week 14 onward, which can be announced at any point up until 6 days in advance.
  • CBS and Fox have the right to protect one game each per week, among the games scheduled for their networks, from being flexed into primetime windows. During the early flex period, they may protect games at any point once the league tells them they’re thinking of pulling the flex. It’s not known when they must protect games in the main flex period, only that it’s “significantly closer to each game date” relative to the old deadline of Week 5, but what evidence exists suggests they’re submitted within a week or so of the two-week deadline; what that means for Thursday night flexes that are due earlier is unclear.
  • On paper, CBS and Fox are also guaranteed one half of each division rivalry. However, in 2023 some Week 18 games (see below) had their other halves scheduled for the other conference’s network, though none were scheduled for primetime, and this year there’s another such matchup and another matchup that has one game on the other conference’s network and the other in primetime.
  • No team may appear more than seven times in primetime windows – six scheduled before the season plus one flexed in. This appears to consider only the actual time the game is played, that is, Amazon’s Black Friday game does not count even though the rest of their TNF slate does. This post contains a list of all teams’ primetime appearances entering the season.
  • Teams may play no more than two Thursday games following Sunday games, and (apparently) no more than one of them can be on the road without the team’s permission.
  • In Week 18 the entire schedule, consisting entirely of games between divisional opponents, is set on six days’ notice, usually during the previous week’s Sunday night game. One game will be scheduled for Sunday night, usually a game that decides who wins the division, a game where the winner is guaranteed to make the playoffs while the loser is out, or a game where one team makes the playoffs with a win but falls behind the winner of another game, and thus loses the division and/or misses the playoffs, with a loss. Two more games with playoff implications are scheduled for Saturday on ABC and ESPN, with the remaining games doled out to CBS and Fox on Sunday afternoon, with the league generally trying to maximize what each team has to play for. Protections and appearance limits do not apply to Week 18.
  • Click here to learn how to read the charts.

Read more