The initial log dictionary is currently initialized outside of this function - given that these changes make the coach reporting fairly efficient, I am not sure that the efficiency savings that motivated this (i.e. keeping user data in memory at the expense of real time updating to user logs) are worth keeping it in this way. As such, the log dict generated could be moved inside this function.