Within the checkUpkeep function, our implementation checks whether each trade within the range has been filled by the market. Ranges are a partitioning mechanism to load balance activity across different Keepers, helping avoid running out of gas if the number of trades to be monitored grows too large. Currently, we run up to 1,000 trades through each Keeper, but we estimate a max capacity load in excess of 10,000 CivTrades per Keeper, or even more. This will keep us running for quite a while, as there’s no limit to the number of Keepers we can switch on. See the above section on cost scaling: this system grows with us!