Search code examples
algorithmmathweighted-average

Normalizing workouts based on activity, total milage, and total time


My friends and I are competing in our own fitness challenge (Sober October) where we are keeping track of Activity, Total Time Spent Moving, and Distance. Our activities include running (outdoors), running (treadmill), running (elliptical), rowing, biking (stationary), biking (outdoors), swimming, and stair stepper.

As a group, we weren't really interested in using a calorie estimation because those results can be easily manipulated by increasing the weight that the equation uses, so we wanted to keep it based on just distance and time.

What kind of equation should I use to best normalize such exercises? I'm looking for something that would weight distance and time differently based on the activity; for example, when compared to running,biking should give more weight to time than to milage because it takes less work to go a mile on a bike than it does on foot.

I was able to find this article on how calories are calculated, and just thought about removing the weight portion of the equation to get our normalized number, but wanted to see if there was a better way to calculate what I'm looking for.


Solution

  • Objective measure

    You are seeking an objective measurement which is independent of weight. Use METs.

    A human expends a baseline of one MET sitting quietly. Maybe your measure will be excess-MET-hours.

    Score = (METs - 1) × Hours

    MET values

    On that link above you can find reference METs values for various activities, including several of your target activities. These are independent of speed.

    You can further improve the calculation by factoring in your distance/time measurements. For example, given cited METs figures:

    • Walking slowly (1 mph) = 2.0 MET
    • Walking (3 mph) = 3.0 MET
    • Jogging (6.8 mph) = 11.2 MET

    You can fit them to a curve. Use Desmos.

    enter image description here

    So your score for walking/jogging/running is:

    Excess METs = [1 + 0.2 × (miles/hours) ^ 2 - 1] × hours

    You can make similar estimations for other activities.