def _compile_interpretation(data):
    """
    Compile the interpretation data into a list of multiples, based on the keys provided.
    Disassemble the key to figure out how to place the data
    :param dict data: Interpretation data (unsorted)
    :return dict: Interpretation data (sorted)
    """
    # KEY FORMAT : "interpretation1_somekey"
    _count = 0

    # Determine how many entries we are going to need, by checking the interpretation index in the string
    for _key in data.keys():
        _key_low = _key.lower()
        # Get regex match
        m = re.match(re_interpretation, _key_low)
        # If regex match was successful..
        if m:
            # Check if this interpretation count is higher than what we have.
            _curr_count = int(m.group(1))
            if _curr_count > _count:
                # New max count, record it.
                _count = _curr_count

    # Create the empty list with X entries for the interpretation data
    _tmp = [{} for i in range(0, _count)]

    # Loop over all the interpretation keys and data
    for k, v in data.items():
        # Get the resulting regex data.
        # EXAMPLE ENTRY: "interpretation1_variable"
        # REGEX RESULT: ["1", "variable"]
        m = re.match(re_interpretation, k)
        # Get the interpretation index number
        idx = int(m.group(1))
        # Get the field variable
        key = m.group(2)
        # Place this data in the _tmp array. Remember to adjust given index number for 0-indexing
        _tmp[idx-1][key] = v

    # Return compiled interpretation data
    return _tmp