def apmAggregate(self, **criteria):
        """collect all match history's apm data to report player's calculated MMR"""
        apms = [m.apm(self) for m in self.matchSubset(**criteria)]
        if not apms: return 0 # no apm information without match history
        return sum(apms) / len(apms)