VO2Max from Garmin

Hey David,

I was just wondering if you collect the VO2Max metric from Garmin at all? I wanted to make a custom chart tracking that over time. It would be super cool if you did and if you already do, I am lost as to where to find it.

Thanks again for all your work.

1 Like

Intervals only gets the original FIT file from Garmin and performs all calculations based on that input. Parameters from the Garmin Connect webpage are not accessible. VO2max is a metric that became available with the Firstbeat algorithm. Firstbeat was aquired by Garmin recently.

But we get sleep data and other wellness data? Surely thatā€™s not in the fit file at all?

If it can help : when I upload .fit file from Garmin to Goldencheetah, I can see the field ā€œVO2 max detectedā€ in the form activity/detail.

1 Like

Looks like it should be possible:

https://forums.garmin.com/sports-fitness/running-multisport/f/forerunner-945/226862/extracting-precise-vo2max-from-fit-file

Didnā€™t know that it was in the fit file. Always tought it was calculated on Garmin Connect and not on the device. Sorry for the mis-information.
Now before paying too much attention to it, read these articles first:

1 Like

Not sure its in every FIT file to be fair. Iā€™ve done a bit of digging into files generated by my Garmin FR735 and canā€™t find it. Height, weight, FTP and other data is there. I see the Garmin post talks about an FR945 so maybe only in files generated by the later models? Happy to have a dig if someone want to provide a sample file from a 945.

I think I know how it goes:
The Firstbeat algorithm runs on the unit and not on Garmin Connect as I tought before. Thatā€™s pretty sure because I remember now that a new VO2max is detected right away on the unit. The message from @PASFOU made me think this over.
In that case, the VO2max value would only be present in the fit file from an activity where a new VO2max is detected and passed to Garmin Connect in that way.
Unfortunately I canā€™t check that because I disabled the notifications after reading above articles. There is not much sense in tracking a value that is not correct, but thatā€™s just my opinion.
VO2max history is probably kept on Garmin Connect, and as far as I know not available for third party software.
If anyone has a fit file from an activity where a new value was detected, this could be checked for validity.

I just had a look at my most recent ride (Garmin Edge 130+ with Polar H10) and no VO2max in the file. But my riding is in a bit of a dip so not going to be setting any new records right now.

I do have a todo list item to calculate this. I did find some good references.

1 Like

I have the same setup. My garmin connect VO2m seems to show updates on activities that are either long or involved more intense intervals. Dots show up on the graph even when values hold steady, but only if the ride is long/hard enough. I havenā€™t looked in at the files themselves

It seems that the VO2max data is stored in one (or more!) undocumented field(s) within the FIT files, so itā€™s quite difficult to find!

Fortunately, someone has done some detective work previously, and posted that here: fit4ruby/GlobalFitMessages.rb at master Ā· scrapper/fit4ruby Ā· GitHub

One of the VO2max mentions within that is as follows:

# Not part of the official ANT SDK doc
message 79, 'user_data'
field 0, 'uint16', 'metmax', :scale => 1024, :unit => 'MET' # VO2max / 3.5

Iā€™ve loaded a number of activities into www.fitfileviewer.com, and by deactivating the filter ā€œHide messages without name (ā€˜mesg_num #ā€™)ā€, you can find your Garmin determined VO2max:

A bit of maths later (x3.5/1024) reveals the VO2max value of 53.7 ml/kg/min.

Of note, I think this is your pre-activity VO2max value from Garmin Connect rather than the updated one from the activity in question, based on the values seen in a number of my FIT files.

10 Likes

Tx a stack for figuring this out!

Very nice detective work :clap:

Great work all!

I donā€™t want to spoil all you guys enthusiasm and I totally get that there may be some people getting some motivation out of this value and therefore do want to see it also in intervals.icu. So having it as a non mandatory and most importantly, opt-in field (added with the respective caveat notes) is something no one could have anything against.

A valid training metric in the case of the Garmin / firstbeat implementation, it is not. And shouldnā€™t treated as or mistaken for and especially not mixed with VO2max values as a result from metabolic tests.

In addition to the links by @MedTechCD Iā€™d like to recommend to give a listen to e.g. this podcast episode: https://endurance-innovation-podcast.simplecast.com/episodes/97-bruce-rogers-with-updates-to-dfa-a1-analysis-and-garmin-metrics where they chat with Bruce Rogers and take a critical look at Garminā€™s performance metrics.

1 Like