def score_pop(
    population_value, min_population_acceptable=10, max_population_acceptable=30
):
    """
    :param population_value: population value to be scored
    :param min_population_acceptable: minimum population value in the scoring range (saturates at 0)
    :param max_population_acceptable: maximum population value in the scoring range (saturates at 1)
    :return: a score value between 0 and 1
    """
    if population_value > max_population_acceptable:
        score_population = 1.0
    elif population_value < min_population_acceptable:
        score_population = 0.0
    else:  # linear scaling between 0 and 1 for between min and max acceptable
        score_population = (population_value - min_population_acceptable) / (
            max_population_acceptable - min_population_acceptable
        )
    return score_population