local running_average = { trackers = {} } local trackers = running_average.trackers running_average.track = function(name, value) if not trackers[name] then trackers[name] = { running_total = 0, count = 0, } end local track = trackers[name] track.running_total = track.running_total + value track.count = track.count + 1 return track.running_total / track.count end running_average.average = function(name) return trackers[name] and trackers[name].running_total / trackers[name].count end running_average.count = function(name) return trackers[name] and trackers[name].count end return running_average