Refactor the time slot code to use explicit "temporal bins"

We're still computing this internally for now, but the idea is
to take as parameters.