'In addition to the fields in ScoreBase, also includes:
:param tw_earned: Total aggregated sum of all weighted earned values
:type tw_earned: int|float|None
:param tw_possible: Total aggregated sum of all weighted possible values
:type tw_possible: int|float|None'

@contract
def __init__(self, tw_earned, tw_possible, *args, **kwargs):

    super(AggregatedScore, self).__init__(*args, **kwargs)
    self.earned = (float(tw_earned) if (tw_earned is not None) else None)
    self.possible = (float(tw_possible) if (tw_possible is not None) else None)
