from typing import List


def _get_bl(grouped_levels: List[str], bottom_levels: List[str]) -> List[List[str]]:
    """
    Get bottom level columns required to sum to create grouped columns.

    Parameters
    ----------
    grouped_levels : List[str]
        Grouped level, underscore delimited, column names.
    bottom_levels : List[str]
        Bottom level, underscore delimited, column names.

    Returns
    -------
    List[List[str]]
        Bottom level column names that make up each individual aggregated node in the hierarchy.
    """
    # Split groupings by "_" b/c this makes it possible to search column names
    grouped_levels_split = [lev.split("_") for lev in grouped_levels]
    bottom_levels_split = [lev.split("_") for lev in bottom_levels]

    cols_to_add = []
    for lev in grouped_levels_split:
        group_bl_cols = [
            bl_col for bl_col in bottom_levels_split if set(lev).issubset(bl_col)
        ]
        cols_to_add.append(["_".join(lev) for lev in group_bl_cols])
    return cols_to_add