VO2max increased after a trail run (it's turned off)

I checked and double checked, VO2max is turned off in the Trail Run activity menu. My VO2max has stayed at 51 for a long time but after a 15km/1004m trail run yesterday at an 14:40/min Avg Pace over 3h 40mins my VO2max went up to 52. Has this happened to anyone? Typically I would have had to have done a super hard trail activity for the VO2max needle to move, this time despite it being turned off, there was some background computation going on. | Fenix 7x SS ver 17.23

  • I am pretty sure GAP is already factored in even in the regular running mode. Many times I observed my performance score going several points up while running an easy uphill during a road run.

    I suspect that the algorithm is exactly the same between running and trail running, and most likely uses estimated power rather than pace, which should factor in both pace and elevation changes. But I think when running uphill on a trail surface with a lot of turns, Garmin simply can't estimate the power output correctly because there is a lot of deceleration. Also there is a lot of muscle strain when going steep uphill so that may be the limiting factor rather than the aerobic capacity, but the algorithm likely doesn't factor that in because its model is probably trained on people running on easy and runnable terrain. 

  • I am pretty sure GAP is already factored in even in the regular running mode. Many times I observed my performance score going several points up while running an easy uphill during a road run.

    Correct, since the merged algorithm came out with the Enduro. The box-out quoting Herman Bonner in this dcrainmaker review is very informative. One thing it does imply is that if you switch off VO2max for a trail run, it is just ignored, because it might involve things like heavy packs that the algorithm has no way to deal with, which is why it's intriguing that there are still small changes around trail runs. 

    To answer your question in the other post, the simple way to get two-decimal-place values for VO2max is to use runalyze. There are actually something like 5 VO2max-like fields (recorded as METs) in FIT files, all undocumented, two always blank if the activity wasn't logging VO2max. runalyze uses one of those two values from message 140 if it's available, otherwise the value in message 79, so far as I can tell. (This file on Github has a lot of community interpretations of undocumented fields and that's where I got those values from). Pretty easy to extract using the FIT SDK but I'm not sure if it tells you much more than just using runalyze would.

  • Thank you! I look inside FIT files regularly, so this is helpful. I was thinking about using Runalyze. Perhaps this is a good reason to start using it. 

  • I suspect that the algorithm is exactly the same between running and trail running,

    The article that refers to above states that additional data from the accelerometers are fed into the single VO2 max model, yes.

    It is fair to make a reference to running power, although we don't know if the additional data is identical. If the VO2 Max model attempts to model slippage on the trail terrain, it might differ from the running power model, for example.

    One thing it does imply is that if you switch off VO2max for a trail run, it is just ignored

    That is the part I don't understand. If turning the VO2 max model off for trail running should prevent the data from these runs from modifying the VO2 Max, why does the VO2 Max number changes after a trail run, as the OP and I have observed?

  • That is the part I don't understand. If turning the VO2 max model off for trail running should prevent the data from these runs from modifying the VO2 Max, why does the VO2 Max number changes after a trail run, as the OP and I have observed?

    I've seen that too. I've also seen things like multiple trail runs and short hikes in the same day where there is no change whatsoever.

    My speculation is that it's an artifact of the smoothing of VO2max; again, if you look at something like Runalyze, you'll see that the VO2max they calculate per activity goes up and down much more than the file value. I suspect that it's values from a few weeks ago falling off the calculation inputs, so the output number changes a little because of that, and it would have changed by exactly the same amount if you hadn't done the trail run. I guess you *might* be able to interrogate that by doing something like a breathwork activity that can't possibly change VO2max and see what happens to the graph then.

  • My speculation is that it's an artifact of the smoothing of VO2max;

    I like that assumption; it would make sense.

    However, the trail running activity would still be seen as a qualifying VO2 Max activity that would permit the generation of a new VO2 Max number. In that sense, it wouldn't behave quite as the toggle would suggest.

    By turning the toggle off, I would not expect a new VO2 Max (no "dot" on the graph) until a new qualifying road run. 

    At any rate, if I turn the toggle on, choose the trail profile and run on the road, I could still see a new VO2 Max, not only because of the smoothing trailing effect but also because different data was fed to the model, resulting in some "incremental" standard error.

  • Yes, and it would probably be exactly the same as if you picked the normal run profile and did the same run.

    Just had a poke at my last few activities. Message 140 of one activity (if not zero) usually shows a value very similar to message 79 of the next activity, let me call them end value and start value. End value for yesterday's road run was 50.39, start value for a yoga session this morning was 50.40 (zeros in the end message), start value for the run after the yoga also 50.40. So I'd say it's consistent with the smoothing idea, as I'm not seeing how you'd get a VO2max out of yoga!