def METHOD_NAME(self):
    """Is all the data for this contest up to date (i.e. not invalidated
    since the last recalculation succeeded)?
    If it is not up_to_date we still guarantee that the data is
    in consistent state from the last recalculation.
    """
    return not self.needs_recalculation and self.recalc_in_progress_id is None