I'd rather throw a RuntimeException here.  -1 would indicate we've got a granularity that isn't registered properly.