def get_intervention_label(method_name, base_intervention_name):
    """
    Maps raw method name to a readable name.

    Args:
        method_name (str): name of the folder in the experiments.
        base_intervention_name (str): filename in `configs/simulation/intervention/` folder.

    Returns:
        (str): a readable name for the intervention
    """
    assert type(method_name) == str, f"improper intervention type: {type(method_name)}"

    # when experimental runs are named something else other than the intervention config filename
    if base_intervention_name != method_name:
        return method_name.upper()

    without_hhld_string = " wo hhld" if "wo_hhld" in method_name else ""
    base_method = method_name.replace("_wo_hhld", "")
    if base_method == "bdt1":
        return "Binary Digital Tracing" + without_hhld_string

    if base_method == "bdt2":
        return "Binary Digital Tracing (recursive)" + without_hhld_string

    if base_method == "post-lockdown-no-tracing":
        return "Post Lockdown No Tracing"

    if base_method == "oracle":
        return "Oracle" + without_hhld_string

    if "heuristic" in base_method:
        version = method_name.replace("heuristic", "")
        return f"Heuristic{version}" + without_hhld_string

    if "transformer" in base_method:
        return "Transformer" + without_hhld_string

    raise ValueError(f"Unknown raw intervention name: {method_name}")