It’s the end of the season; what now? Let’s do a check of the big board and get an H1 roadmap down. (I just googled “kanban for wordpress.”)


  1. multiway tiebreakers: This bug dominates all others right now. The tiebreakers code is painfully rigid in its two-teams-only approach. Logically we don’t have a clear ruleset and in order to implement it we need to factor out all the head-to-head checks and put a more intelligent harness around it that can decide when multiple permutations need to be checked. Not trivial, but real world data (Texas edition) has given us three way ties that are being handled wrong.
  2. more timezone fails: Some of the old games are printing out with the wrong day because the timestamp in the db and how I’m converting it. I suspect it’s because actual gametime isn’t set for the old ones.
  3. simulation board sorting: simulation board printout is unpredictable. Need to have a meta-sort for the results line items so the most likely one appears on top. (Maybe this is a feature.)
  4. Honestly the tiebreaker stuff is so bad I can’t even think of any other bugs. Must fix tiebreakers.


  1. Portability: It’s nice to have a command line executable that runs with minimal libraries needed but that’s not exactly a deliverable. First step would be some kind of docker container with a Dockerfile that takes care of all the python3 environment and cfbd libs. That way you could truly just download and run.
  2. Usability: I use 538 as a reference point for their Monte Carlo simulation, but 538 is not distributing command line scripts. They have an actual webpage with a stateful selector where you can see the leaders visually and create scenarios with a click. So far I have avoided any “state” whatsoever: there are no cookies in use on this site, and there is no stored state in the code. But if I want to keep building this to something useful it should probably get to the point where the software is usable by non-developers. A separate docker setup that can run your own stateful web app? I host a 538-style webapp tied to a db and bolt session management on the front? I don’t want to be in the hosting business but it would be an interesting experiment to try to get to a 538-level polish. Needs some more baking.
  3. Testing: You can tell this is a hobby project because there’s no state and no testing. I hate writing unit tests but we shouldn’t get much farther without something to at least regression-test the year-by-year output.
  4. History: I still plan to run the old results. I’m stalled on the 50s because I’m sitting on a long post about 1951. It will be interesting to see what the data spits out for all the available games way back to who knows when. I’ve also got a post still in planning about some of the crazy Cal State teams of the 80s. is a great resource to throw some half-baked research at the stats.
  5. Beauty: Getting generic wordpress working was a good way to get this thing out the door but it’s looking a little ugly. Maybe some art? Better design template?

Our final 2021 run after the USC/Cal irrelevant game is complete:

$ python3 ./ -v
San José State 7 at USC 30 on Sep 04, 2021
Stanford 42 at USC 28 on Sep 11, 2021
Fresno State 40 at UCLA 37 on Sep 18, 2021
UCLA 35 at Stanford 24 on Sep 25, 2021
San Diego State 19 at San José State 13 on Oct 15, 2021
Fresno State 30 at San Diego State 20 on Oct 30, 2021
UCLA 62 at USC 33 on Nov 20, 2021
California 41 at Stanford 11 on Nov 20, 2021
Fresno State 40 at San José State 9 on Nov 25, 2021
California 14 at UCLA 42 on Nov 27, 2021
USC 14 at California 24 on Dec 04, 2021

2021 final standings

Fresno State            3-0
UCLA                    3-1
California              2-1
San Diego State         1-1
Stanford                1-2
USC                     1-3
San José State          0-3

2021, 11, Fresno State, 3-0
Categorized as code