I know that the APIs that CityStrides depend on are rate limited. I think there must also be a large number of accounts which are either forgotten about or accessed very infrequently. Could performance be improve by “hibernating” accounts not accessed in, say, more than a month / 6 weeks / 6 months etc - ie not including them in every update cycle? It seems that could drastically reduce the number of API calls required, and it may be possible to kick off an immediate update of the data for any such dormant account as soon as it was logged into again. Or, they could be updated, say, once a week to keep the data relatively current, but not as frequently as regularly accessed accounts.
Maybe you already do this!