This can be run at any time, as it clears the values before it runs.
Redis' incr functionality can't handle floats, which we need, so we need to do this ourselves.
This makes it much, much, easier to test these rather important functions, while also clearer what they do. It also means that changing them will be much simpler & easier to understand. Tests becuase they're so needed. No functional changes.