Polarized TID index custom metric ?

101 views
Skip to first unread message

gilles....@gmail.com

unread,
Jun 12, 2026, 6:20:09 AMJun 12
to golden-cheetah-users
Hi,

In ( Spragg, 2023 ), it is shown that a polarized TID, is associated with an improved fatigued power profile. 
The TID is an index defined as following ( Treff , 2019 ) :
log10(Zone 1/Zone 2∗Zone 3∗100)
where Zones 1–3 refer to aggregated volume (time) spent with low, mid, or high intensity training. In  ( Spragg, 2023), Zone 1 is the training time below the first ventilatory threshold, Zone 2 is the  training time between  first and second ventilatory thresholds, and Zone 3 is  the training time above the second ventilatory threshold.
Ventilatory thresholds were determined using Open circuit spiro ergometry with a breath-by-breath technique (ZAN600, nSpire Health) and corresponding HR values were determined (HR(VT1) and HR(VT2)).
Training intensity distribution (TID) was quantified via TotalTime accumulated at a HR below that corresponding to VT1 (Time<VT1), a HR between VT1 and VT2 (Time_VT1-2) and a HR above VT2 (Time>VT2) as derived from laboratory testing.

In ( Spragg, 2023), season periods where the TID is calculated are early-season (February to April), mid-season (May to July), and late-season (August to October).

Considering Golden Cheetah enables customized metrics which take  athlete's values HR(VT1) and HR(VT2) as input, has anyone programmed the TID metric ?

Thanks in advance

Best regards

Gilles


Spragg, James, Peter Leo, et Jeroen Swart. 2023. « The Relationship between Training Characteristics and Durability in Professional Cyclists across a Competitive Season ». European Journal of Sport Science 23 (4): 489‑98. https://doi.org/10.1080/17461391.2022.2049886.


Treff, Gunnar, Kay Winkert, Mahdi Sareban, Jürgen M. Steinacker, et Billy Sperlich. 2019. « The Polarization-Index: A Simple Calculation to Distinguish Polarized From Non-polarized Training Intensity Distributions ». Frontiers in Physiology 10 (juin): 707. https://doi.org/10.3389/fphys.2019.00707.

Ale Martinez

unread,
Jun 12, 2026, 8:27:53 AMJun 12
to golden-cheetah-users
El viernes, 12 de junio de 2026 a la(s) 7:20:09 a.m. UTC-3, gilles....@gmail.com escribió:
Hi,

In ( Spragg, 2023 ), it is shown that a polarized TID, is associated with an improved fatigued power profile. 
The TID is an index defined as following ( Treff , 2019 ) :
log10(Zone 1/Zone 2∗Zone 3∗100)
where Zones 1–3 refer to aggregated volume (time) spent with low, mid, or high intensity training. In  ( Spragg, 2023), Zone 1 is the training time below the first ventilatory threshold, Zone 2 is the  training time between  first and second ventilatory thresholds, and Zone 3 is  the training time above the second ventilatory threshold.
Ventilatory thresholds were determined using Open circuit spiro ergometry with a breath-by-breath technique (ZAN600, nSpire Health) and corresponding HR values were determined (HR(VT1) and HR(VT2)).
Training intensity distribution (TID) was quantified via TotalTime accumulated at a HR below that corresponding to VT1 (Time<VT1), a HR between VT1 and VT2 (Time_VT1-2) and a HR above VT2 (Time>VT2) as derived from laboratory testing.

In ( Spragg, 2023), season periods where the TID is calculated are early-season (February to April), mid-season (May to July), and late-season (August to October).

Considering Golden Cheetah enables customized metrics which take  athlete's values HR(VT1) and HR(VT2) as input, has anyone programmed the TID metric ?

I don’t know, but there are built in metrics for time and percent in zone I/II/III based on HR/Power/Pace, so there should be trivial to compute TID as defined above in formulas or as a custom metric.

Ale Martinez

unread,
Jun 12, 2026, 11:45:27 AMJun 12
to golden-cheetah-users
El viernes, 12 de junio de 2026 a la(s) 9:27:53 a.m. UTC-3, Ale Martinez escribió:
El viernes, 12 de junio de 2026 a la(s) 7:20:09 a.m. UTC-3, gilles....@gmail.com escribió:
Hi,

In ( Spragg, 2023 ), it is shown that a polarized TID, is associated with an improved fatigued power profile. 
The TID is an index defined as following ( Treff , 2019 ) :
log10(Zone 1/Zone 2∗Zone 3∗100)
where Zones 1–3 refer to aggregated volume (time) spent with low, mid, or high intensity training. In  ( Spragg, 2023), Zone 1 is the training time below the first ventilatory threshold, Zone 2 is the  training time between  first and second ventilatory thresholds, and Zone 3 is  the training time above the second ventilatory threshold.
Ventilatory thresholds were determined using Open circuit spiro ergometry with a breath-by-breath technique (ZAN600, nSpire Health) and corresponding HR values were determined (HR(VT1) and HR(VT2)).
Training intensity distribution (TID) was quantified via TotalTime accumulated at a HR below that corresponding to VT1 (Time<VT1), a HR between VT1 and VT2 (Time_VT1-2) and a HR above VT2 (Time>VT2) as derived from laboratory testing.

In ( Spragg, 2023), season periods where the TID is calculated are early-season (February to April), mid-season (May to July), and late-season (August to October).

Considering Golden Cheetah enables customized metrics which take  athlete's values HR(VT1) and HR(VT2) as input, has anyone programmed the TID metric ?

I don’t know, but there are built in metrics for time and percent in zone I/II/III based on HR/Power/Pace, so there should be trivial to compute TID as defined above in formulas or as a custom metric.

I mean, the formula can be transliterated almost without changes: log10(HI_Time_in_Zone/HII_Time_in_Zone*HII_Time_in_Zone*100)

gilles....@gmail.com

unread,
Jun 12, 2026, 4:58:16 PMJun 12
to golden-cheetah-users
Thanks !

I did not know that GC features  
"Heart Rate Zone I - Below AeT" 
+  "Heart Rate Zone II - Between AeT and LT"
 + " Heart Rate Zone III - Above LT" 
builtin metrics !

In (Treff, 2019), "Zone X" is the ratio of time spent in a zone X (with X=1, 2, or 3)...
Capture d'écran 2026-06-12 200150.png

Then, I implemented 4 KPI Tiles as following :
Capture d'écran 2026-06-12 205705.png

According to (Treff, 2019), my training is *not polarized* (Polarization Index < 2), and "Pyramidal TID" as depicted in the following figure...

Capture d'écran 2026-06-12 200831.png

According to (Spragg, 2023), the spectrum of my TID is associated with an improved fatigued power profile.
Capture d'écran 2026-06-12 204910.png

The formula for the TID Polarization Index is :

{

tiz1 <- sum(metrics(HI_Time_in_Zone));

tiz2 <- sum(metrics(HII_Time_in_Zone));

tiz3 <- sum(metrics(HIII_Time_in_Zone));

z1 <- tiz1/(tiz1+tiz2+tiz3);

z2 <- tiz2/(tiz1+tiz2+tiz3);

z3 <- tiz3/(tiz1+tiz2+tiz3);

round(log10(z1/z2*z3*100),2);

}


And the formula to get  the ratio of time spent in a zone X (with X=1, 2, or 3) is

{

tiz1 <- sum(metrics(HI_Time_in_Zone));

tiz2 <- sum(metrics(HII_Time_in_Zone));

tiz3 <- sum(metrics(HIII_Time_in_Zone));

z1 <- tiz1/(tiz1+tiz2+tiz3);

z2 <- tiz3/(tiz1+tiz2+tiz3);

z3 <- tiz3/(tiz1+tiz2+tiz3);

round(100*z1,1);

}

(replace z1 with z2 or z3 for time spent in other zones).



Regards

Gilles
Message has been deleted
Message has been deleted
Message has been deleted

Ale Martinez

unread,
Jun 12, 2026, 10:16:01 PMJun 12
to golden-cheetah-users
El viernes, 12 de junio de 2026 a la(s) 5:58:16 p.m. UTC-3, gilles....@gmail.com escribió:
Thanks !

I did not know that GC features  
"Heart Rate Zone I - Below AeT" 
+  "Heart Rate Zone II - Between AeT and LT"
 + " Heart Rate Zone III - Above LT" 
builtin metrics !

In (Treff, 2019), "Zone X" is the ratio of time spent in a zone X (with X=1, 2, or 3)...
Capture d'écran 2026-06-12 200150.png

Then, I implemented 4 KPI Tiles as following :
Capture d'écran 2026-06-12 205705.png

According to (Treff, 2019), my training is *not polarized* (Polarization Index < 2), and "Pyramidal TID" as depicted in the following figure...

Capture d'écran 2026-06-12 200831.png

You can have thi plot checking the polarized checkbox in a HR Zones tile on a Trends Overview chart: https://github.com/GoldenCheetah/GoldenCheetah/wiki/UG_ChartTypes_Trends#overview-zones-tile

gilles....@gmail.com

unread,
Jun 13, 2026, 8:59:41 AMJun 13
to golden-cheetah-users
Hello

Indeed, the HR zones histogram with the checkbox "Polarized" displays the percentages of time spent in zones I, I, III.

Thanks for information !

I checked this, and values are coherent with the calculations in "KPI" tile using above code.

Best regards
Reply all
Reply to author
Forward
0 new messages