Plotting Alan Couzens' VO2 Scores

448 views
Skip to first unread message

Ale Martinez

unread,
Apr 25, 2017, 9:08:03 AM4/25/17
to golden-cheetah-users
The attached chart plots VO2 Scores for cycling and running based on the article Using VO2 Scores to Benchmark Performance in Triathletes

Formulas are base on 60 min Peak Power and HR during that effort for cycling:

60_min_Peak_Power/75*1000/Athlete_Weight/((60_min_Peak_Power_HR-config(rhr))/(config(maxhr)-config(rhr)))


and 60' min Peak Pace and HR during that effort (available on v3.5 development builds) for running:

(210/60_min_Peak_Pace)/((60_min_Peak_Pace_HR-config(rhr))/(config(maxhr)-config(rhr)))


If you don't have regular steady 60' efforts the duration can be lowered to 30' or 20', it seems to be an interesting way to look at the HR vs Power/Pace relationship.

VO2_Scores.gchart

Theodor Milkov

unread,
Apr 26, 2017, 5:25:11 AM4/26/17
to golden-cheetah-users
I wonder how relevant this chart would be for non-steady state sports like mountain biking, where Normalized Power is more useful than Average Power?

Ale Martinez

unread,
Apr 26, 2017, 9:09:39 AM4/26/17
to golden-cheetah-users
El miércoles, 26 de abril de 2017, 6:25:11 (UTC-3), Theodor Milkov escribió:
I wonder how relevant this chart would be for non-steady state sports like mountain biking, where Normalized Power is more useful than Average Power?
The attached version adds 2 more curves with VO2scores based on NP/Average_Heart_Rate for rides and xPace/Average_Heart_Rate for runs if you want to try.
VO2Scores-NPxPace .gchart

Theodor Milkov

unread,
Apr 26, 2017, 2:39:40 PM4/26/17
to golden-cheetah-users

Thanks!

I guess aggregating is deliberately set to "average" instead of "peak" for the NP derived curve?

Ale Martinez

unread,
Apr 26, 2017, 3:17:54 PM4/26/17
to golden-cheetah-users
El miércoles, 26 de abril de 2017, 15:39:40 (UTC-3), Theodor Milkov escribió:
I guess aggregating is deliberately set to "average" instead of "peak" for the NP derived curve?
No, it's the default setting and I forgot to change it, Peak makes more sense IMHO. 

Manuel Oberti

unread,
Apr 27, 2017, 9:48:22 AM4/27/17
to golden-cheetah-users
Hi Ale,
config(rhr) it's a rest heart rate ? Where I can set this value ?

THANKS

Ale Martinez

unread,
Apr 27, 2017, 10:35:56 AM4/27/17
to golden-cheetah-users
Yes. In Heartrate Zones

Manuel Oberti

unread,
Apr 27, 2017, 10:40:11 AM4/27/17
to golden-cheetah-users
Thanks Ale


Il giorno martedì 25 aprile 2017 15:08:03 UTC+2, Ale Martinez ha scritto:

Jean Div

unread,
Apr 28, 2017, 6:13:47 AM4/28/17
to golden-cheetah-users
Thanks for this Ale!

Just had a look @ my chart from the last 12 months vs. what I know from my V02Max tests during the time. A little high on the run, bike starts off okay, and then gets crazy. I have been struggling with HR straps though, so probably has something to do with that.

Jean Div

unread,
Apr 28, 2017, 6:28:26 AM4/28/17
to golden-cheetah-users

..forgot to mention - the existing V02 measures in GC get it right the whole time, as below. (Potentially they are not using HR, but some power-only calc?). Consistent with Lab tests too. Impressed!
Message has been deleted

Ron George

unread,
Apr 29, 2017, 4:18:26 PM4/29/17
to golden-cheetah-users
Ale,

I think this formula needs to have a condition to compute only when HR is present. If HR recording is absent, the graph messes up. Would this be a correct assessment?

Ron 

Ale Martinez

unread,
Apr 29, 2017, 5:02:13 PM4/29/17
to golden-cheetah-users
El sábado, 29 de abril de 2017, 17:18:26 (UTC-3), Ron George escribió:
Ale,

I think this formula needs to have a condition to compute only when HR is present. If HR recording is absent, the graph messes up. Would this be a correct assessment?
 
That's right, if you look at the charts I attached the bike curve has this filter: Data contains "H" && Data contains "P", and the run one: isRun=1 && Data contains "H"

Chris Aitken

unread,
Apr 30, 2017, 12:46:46 PM4/30/17
to golden-cheetah-users
On Friday, 28 April 2017 11:28:26 UTC+1, Jean Div wrote:

..forgot to mention - the existing V02 measures in GC get it right the whole time, as below. (Potentially they are not using HR, but some power-only calc?). Consistent with Lab tests too. Impressed!
 
That's interesting.

Does anyone know the differences between the extended model Vo2Max Estimated & the 'Estimated VO2Max'?
I see I can call Estimated_Vo2Max in a function, but estimate(ext, vo2max) does not return anything.
 

Ale Martinez

unread,
Apr 30, 2017, 2:20:09 PM4/30/17
to golden-cheetah-users
El domingo, 30 de abril de 2017, 13:46:46 (UTC-3), Chris Aitken escribió:
Does anyone know the differences between the extended model Vo2Max Estimated & the 'Estimated VO2Max'?
I see I can call Estimated_Vo2Max in a function, but estimate(ext, vo2max) does not return anything.

The "Estimated VO2MAX" metric is based on your measured Peak 5' WPKg, it has the following description you can see hovering the mouse over the metric list on config:  "Estimated VO2max from 5 min Peak Power relative to Athlete Weight using new ACSM formula: 10.8 * Watts / KG + 7 (3.5 per leg).", the model estimate uses the same formula but it is based on model-derived 5' WPKg

Chris Aitken

unread,
Apr 30, 2017, 2:56:42 PM4/30/17
to golden-cheetah-users
The "Estimated VO2MAX" metric is based on your measured Peak 5' WPKg, it has the following description you can see hovering the mouse over the metric list on config:  "Estimated VO2max from 5 min Peak Power relative to Athlete Weight using new ACSM formula: 10.8 * Watts / KG + 7 (3.5 per leg).", the model estimate uses the same formula but it is based on model-derived 5' WPKg.

Many thanks Ale.

That would explain the differences I am seeing.

estimate(cp,....) only appears to support ftp/cp/w' but not VO2Max.
Is there a way to get the model estimated VO2Max within a formula?



Ale Martinez

unread,
Apr 30, 2017, 3:56:45 PM4/30/17
to golden-cheetah-users
Yes, you could use the ACSM formula with the model-estimated 5' power, for example using the 2 parameters CP model: 10.8*estimate(2p, 300)/Athlete_Weight+7

Chris Aitken

unread,
Apr 30, 2017, 4:00:46 PM4/30/17
to Ale Martinez, golden-cheetah-users
Thanks again & that is what I have resorted to.
It took me a while to work out what the 'x' was in estimate(cp, x); once I realised it was the duration I was on to a winner :)
Reply all
Reply to author
Forward
0 new messages