maybe move this to the publisher project and merge the rate logic from here and daemon.py into one place.