I used constant latency between all nodes to see pure results. I’ll answer in detail later. The simulator is coming out good. Here’s the response of different algorithms to 2x increases in hashrate and latency. The n values are filters to slow and smooth response (and in SMA its the actual averaging window, not a fliter). I chose them to give the same std dev in difficulty adjustment when hashrate is constant. Then the fastest response to changes is the best algorithm. Here SMA (simple moving average) won hashrate changes easily but is very time consuming to calculate in DAGs, and it has no awareness of latency changes. The Nb/Nc method counts bradpools “single block cohort” (Nc) in past 20 Nb blocks as indicated in the chart title. SMA has to go back 660 to 800 blocks instead. Bob will probably focus on the parent method since it’s so easy to calculate and is faster in responding. Notice parents= 1.44 for the parent method is the target instead of 2. I had an error in the simulation. 1.44 turned out best and proved equivalent to Bob’s Nb/Nc = 2.42 method backed by his derivation. 2.42 = 1+1/Q where Q solves 1/Q = Q * e^Q