Measure daily progress against an exercise target given by a fitness instructor

Suppose you feel physically tired and link this to your lifestyle of having long periods with no exercise. You share your concern with a friend, who happens to be a fitness instructor. Seeking only an advice, you didn't suppose what will come to you. Now your friend accepts the improvement of your physical condition as their personal task. So you are given a quick example how to make 12 different types of exercises youself. Then you both are expected to meet again at the end of the month, for a short mini-exam, where you have to demonstrate your ability. Each of the exercises in the routine must be repeated a given number of times in order to be useful. Your friend tells you that making the routine hard for you is the only way you could feel better. So you somewhat unwillingly agree to follow the recommended counts.

But then you realize that without a proper plan, you are unlikely to reach the goal at the end of the month, given all the other things you have to do. So you remember the words of Teresa Amabile that tracked, visible progress has been found to increase motivation. As a separate task, you decide to measure small-step progress against the exercise targets determined by your fitness instructor. You would like to determine your daily progress and the relative difference to the previous day (both in %), assuming that the total demand of the routine is 100%.

But you try the exercises and find some much easier than others. This leads you to believe that you can't treat all of them the same. So you decide to give them different weights: smaller weights to the easier ones and higher weights to the harder ones. This way you hope to come at a more realistic picture about your daily performance.

Then you follow the routine for 8 days, counting how many times you repeated each exercise, while using the following code to observe your results.

exercise_types = ['pushup', 'plank', 'glute bridge', 'spider lunge', 'plank tap', 'squat', 'side lunge', 'squat jump', 'jumping lunge', 'single-leg deadlift', 'reverse lunge', 'walkout'] instructor_demands = [25, 10, 10, 12, 10, 12, 15, 10, 10, 15, 10, 10] exercise_priorities_by_hardness = [6, 4, 3, 5, 8, 12, 11, 7, 9, 10, 2, 1] sum_priorities = sum(exercise_priorities_by_hardness) exercise_weights = [prio / sum_priorities for prio in exercise_priorities_by_hardness] daily_performance = [ [5, 3, 1, 2, 4, 5, 2, 6, 6, 3, 2, 0], [6, 4, 2, 0, 6, 6, 3, 5, 7, 5, 0, 0], [5, 6, 4, 4, 7, 7, 6, 3, 4, 6, 2, 1], [8, 7, 6, 4, 7, 6, 8, 4, 5, 5, 2, 2], [10, 8, 10, 3, 5, 8, 11, 6, 6, 6, 1, 2], [11, 10, 8, 6, 7, 10, 9, 8, 7, 6, 2, 3], [8, 10, 8, 5, 5, 8, 12, 8, 7, 8, 5, 5], [12, 6, 10, 8, 5, 7, 12, 9, 9, 9, 5, 7], ] print('Daily progress:') day_percents = [] for day_idx, day in enumerate(daily_performance): weighted_progress = [] for idx, exercise_count in enumerate(day): weighted_progress.append((exercise_count / instructor_demands[idx]) * exercise_weights[idx]) percent = sum(weighted_progress) * 100 if day_idx > 0: diff = percent - day_percents[day_idx - 1] sign = ['-', '+'][diff >= 0] print("{0}. {1:.2f}% {2}{3:.2f}%".format(day_idx+1, percent, sign, abs(diff))) else: print("{0}. {1:.2f}%".format(day_idx+1, percent)) day_percents.append(percent) """ Daily progress: 1. 32.31% 2. 38.17% +5.86% 3. 43.16% +4.99% 4. 47.29% +4.13% 5. 56.30% +9.01% 6. 64.54% +8.24% 7. 64.02% -0.52% 8. 68.61% +4.59% """

In only 8 days, you came at 68.61% out of 100%, which currently makes you feel good. But you can't wait to improve even further and reach your goal. Good luck!