We have done something similar to this as a customization through professional services. In our workflow, we created profile fields for the user that indciate the level of "complete-ness" they have acheived. Then, each time the user logs in, we update that field with any changes.
Another method would be to do the calculation on the fly. This has greater responsiveness (you give a kudo, your bar ticks up) but can be heavier on the rest calls as you will need to do the calculation everytime the page is loaded.