The Schedule Builder Learned What It Was Getting Wrong
A rebuild let the scheduler place each rivalry game in a week that suits those two rosters instead of forcing everyone into the same weeks. Then it produced a season with zero division games on bye weeks and a division race that ended in Week 4 β so a new rule went in, and the schedule you already have turns out to have been right.
The Full Story
A hidden assumption ran through every schedule this league has ever generated: division games came in complete rounds, so if your rivalry game was in Week 9, so was everyone elseβs. Nobody chose that. It fell out of how the builder assembled a season.
The rebuilt version does not need that. A week only has to give every franchise exactly one game β not the same KIND of game β so a week can hold two rivalry games and four ordinary ones, and each matchup can go where those two rosters are healthy.
Turned loose, it found something uncomfortable. It produced a season with ZERO division games on bye weeks and not a single starter missing from a rivalry game. It did that by cramming all 48 division games into Weeks 1 through 4 and Week 12, leaving Weeks 5 to 11, 13 and 14 without one, and the finale with none at all. Perfect on paper. A division race decided in September.
The old builder had prevented that for free, by construction, which is exactly why nobody had ever written it down as a rule. So it is written down now: every franchise plays roughly half its division games after the midpoint, ranked just below keeping them off bye weeks.
With that rule in place the arithmetic settles it. A 50/50 split needs 24 division games after Week 7, only one clean week remains that late, and it holds 16 β so at least eight must land on a bye week. Eight is exactly what the current schedule has. The schedule you are playing was already the right answer; we just proved it instead of assuming it.
Message