def METHOD_NAME(self, trial_job_id, trial_history):
    curr_step = len(trial_history)
    if curr_step < self._start_step:
        return AssessResult.Good
    scalar_trial_history = extract_scalar_history(trial_history)
    self._update_data(trial_job_id, scalar_trial_history)
    if self._high_better:
        best_history = max(scalar_trial_history)
    else:
        best_history = min(scalar_trial_history)
    avg_array = []
    for id_ in self._completed_avg_history:
        if len(self._completed_avg_history[id_]) >= curr_step:
            avg_array.append(self._completed_avg_history[id_][curr_step - 1])
    if avg_array:
        avg_array.sort()
        if self._high_better:
            median = avg_array[(len(avg_array)-1) // 2]
            return AssessResult.Bad if best_history < median else AssessResult.Good
        else:
            median = avg_array[len(avg_array) // 2]
            return AssessResult.Bad if best_history > median else AssessResult.Good
    else:
        return AssessResult.Good