At champs, there are 6 fields, plus wireless practice fields. To avoid co-channel interference, it’s important the fields all be on separate non-overlapping channels.
There are only 13 non-overlapping channels with 40 MHz bandwidth, and all but 4 of those are DFS channels (Dynamic Frequency Selection), which are non-ideal as those channels can be forced to dynamically frequency hop based on nearby radars. At 25 MHz bandwidth, there are a total of 25 non-overlapping channels, but again the vast majority of these are DFS; only 15 are non-DFS.
With clearly not enough channels for every robot to be on its own 20 MHz channel at champs, that means you have 3-6 robots per channel. In the best case 802.11n in 20 MHz can get 72 Mbps, so divided by 6 = 12 Mbps. In the worst case (poor transmit environment), it only gets 6.5 Mbps, so divided by 6 = ~1 Mbps. The reality lies in between those extremes.
However, both these numbers assume the best case in terms of airtime. This doesn’t account for the bandwidth loss (significant) caused by thousands of cell phones searching for wifi–a single “ping” for nearby APs takes a huge amount of airtime, or the fact that radios mounted in noisy robots/buried in metal will significantly drop their modulation rates, decreasing not only their max bandwidth, but consuming airtime that other robots could use. The latter is a particular concern this year–if you have one robot with a badly positioned radio trying to use 4 Mbps, it could easily eat up the equivalent airtime of 2-3 other robots sending 4 Mbps in best case wireless conditions. Plus, robots use a fair amount of airtime even when not using a commensurate amount of bandwidth, because each command and status packet takes airtime even if there’s no other data to send.