Some points of info based on different things said in this thread. As a Regional FTA that also does off-season events, the MatchMaker utility is something I use offline as well (and have used it for things not robot competition based as well). It allows me to manually enter various parameters versus what I see when FMS runs it. The base utility is the same, but FMS feeds specific parameters based on the event size and field configuration. Since many off-seasons are pretty small, you have to override some of the defaults to make it work at all.
When you run it manually, you tell it how many teams, how many matches per, minimum matches between appearances, number per alliance, surrogates into what round, quality of schedules (how many to generate before starting to score them), optionally a team number list to use AFTER everything else is done, and most recently a mirroring of the alliance stations (to deal with the Steamworks field being a mirror and not symmetrical).
That second to last item is one of the most important ones. It doesn’t know ANYTHING about who is in a competition at all. It doesn’t care. It makes the schedule using numbers 1 to N. It might as well use color names or pictures of unicorns (my 7 year old would love this). Only after the best scored schedule of the 5 million it generates (using best quality) has been determined to the criteria it has been told to use, does it actually fill in a team number into each of the slots, randomly. Argue all you want about “random”, but by the time it gets to this part of the process, there isn’t a whole lot you can do to force a specific team(s) to be in a specific slot(s) of the schedule beforehand. It doesn’t care that 254, 1114, 1678, 2056 are all at the same as the rookie team that literally brought all of their kickoff stuff to the event, unopened, because they thought that was how it worked. They are treated equally. Any “bias” seen because you have examined 6 events worth of results is BECAUSE you only examined 6 events worth of results and not thousands.
When the FMS runs it, the FTA/Scorekeeper does not have ANY input into the parameters it will use. We hit a button that says Run MatchMaker and it then tells us how long the estimate is. When it spits out the results, the statistics can be looked at to see if there are any interesting outliers. If something looks really weird (why is one team paired up with only 6 unique other teams in a 12 match per team, 40 team competition when it should be 24?), we contact our support to also look and if they also determine it to be weird and needs correction, we then have to call Frank before going back and running it again. Since there is NOTHING else we can do with the schedule we now have (cannot edit teams, cannot edit match order, NOTHING), the next step is the click the Activate button, which pushes it out to the OFFICIAL public server at firstinspires.org and the various NON-OFFICIAL sites then pull it via the API (Spider, The Blue Alliance, etc.).
Again, we cannot edit the schedule at an event. It can either be published as created or recreated. Each time it is run, it is recorded as such and a rerun can only be granted by HQ themselves after serious discussions as to why you feel the need to. Having to do that once, due to a team really not showing up after loading in their robot the night before, is something I do not want to have to do again since I understand how much work many teams go through in (over)analyzing what their schedule is the literal second it hits the public space.
With all of the turnover you have within teams over the years, as well as turnover of just teams, making a schedule that just “doesn’t care” and literally just treats them as a number is, in my mind, the simplest solution. That is what we have now and really hope it doesn’t change. The MatchMaker program is freely available for your use. Run thousands of iterations and “statisfy” the results over time, you know…like what was done for its creation.
If you are at Arizona West in a couple of weeks and want to discuss, I will GLADLY sit down over a “soda” as this tool is one of the things I love to talk about for some reason… I’ll be the guy in the dark blue shirt/khakis at the field. You might need to break me out of an FRC Karaoke session though (this years playlist has me singing at the field… “Star Trekking Across the Universe”…)