def calculate_over_under(rolled_up):
    """
    >>> calculate_over_under([{'name': 'Ximena', 'paid': 165}, {'name': 'Clara', 'paid': 159}, {'name': 'Cassidy', 'paid': 216}])
    [{'name': 'Ximena', 'paid': 165, 'over_under': 15.0, 'owed': 180.0, 'percent_paid': 0.9166666666666666}, {'name': 'Clara', 'paid': 159, 'over_under': 21.0, 'owed': 180.0, 'percent_paid': 0.8833333333333333}, {'name': 'Cassidy', 'paid': 216, 'over_under': -36.0, 'owed': 180.0, 'percent_paid': 1.2}]
    """
    owed = sum([rup["paid"] for rup in rolled_up]) / len(rolled_up)
    for rup in rolled_up:
        rup["over_under"] = owed - rup["paid"]
        rup["owed"] = owed
        rup["percent_paid"] = rup["paid"] / rup["owed"]

    return rolled_up