def METHOD_NAME(self, return_obj, response_code, raw_response, limit):
    """
    status progress calculation
    :param return_obj: dict, building return response dict
    :param raw_response: str, Api response,
    :param response_code: int, Api call response code
    :param limit: int, limit for status calculation """
    if 199 < response_code < 300:
        response_dict = json.loads(raw_response)
        return_obj['success'] = True
        return_obj['status'] = self.__getStatus(response_dict['status'])
        results = int(response_dict['hit'])
        if return_obj['status'] == 'COMPLETED':
            return_obj['progress'] = 100
        elif return_obj['status'] == 'RUNNING':
            progress = (results / int(limit)) * 100
            progress_floor = math.floor(progress)
            return_obj['progress'] = progress_floor
            if return_obj['progress'] >= 100:
                return_obj['progress'] = 100
                return_obj['status'] = 'COMPLETED'
        else:
            return_obj['progress'] = 0
    # arcsight logger error codes - currently unavailable state
    elif response_code in [500, 503]:
        response_string = raw_response.decode()
        ErrorResponder.fill_error(return_obj, response_string, ['message'], connector=self.connector)
    elif isinstance(json.loads(raw_response), dict):
        response_error = json.loads(raw_response)
        response_dict = response_error['errors'][0]
        ErrorResponder.fill_error(return_obj, response_dict, ['message'], connector=self.connector)
    else:
        raise Exception(raw_response)