Maybe revisit node flag weight calculations
Directory guards (legacy/trac#6526 (moved)) are going to shift some weight off of middle nodes and on to guard nodes. This potentially changes the weights we should give to guard nodes for the middle hop (see dir-spec.txt Section 3.5.3: https://gitweb.torproject.org/torspec.git/blob/HEAD:/dir-spec.txt#l1858).
However, the bandwidth authorities have consistently measured middle nodes as too slow, and Guard nodes as too fast, relative to the rest of the network on average. Exits come out just about even.
If I had to guess, most likely middle nodes are bogged down because nothing in the flag weight calculations takes into account the load from either dirport usage above, or hidden service usage. Directory usage is possible to estimate, but hidden service traffic sometimes involves Exits (from cannibalized circs), sometimes doesn't (from directly built internal circs), and it's nearly impossible to estimate how much of the network traffic it occupies...
So perhaps legacy/trac#6526 (moved) will magically correct this imbalance by shifting directory traffic from middle nodes to Guards. Or, perhaps it will be too much. We should keep an eye on the output of https://gitweb.torproject.org/torflow.git/blob/HEAD:/NetworkScanners/statsplitter.py either way as the directory guards code is deployed.