It would be good to wrap the updating of all these different stats in Angular service.  Otherwise you're duplicating the same logic or very similar logic.