progress analysis functions