ATL and CTL Calculation

216 views
Skip to first unread message

Antoine Abou-Samra

unread,
Dec 28, 2022, 4:28:51 PM12/28/22
to golden-cheetah-users
Hello,
My understanding is that ATL (STS) is calculated as a 7-day moving average of my Triscore (for Running or Cycling), and CTL (LTS) as a 42-day average. This was set up in preferences.
When I do the manual calculation based on the Triscore, I don't get the same values.
I have included a screenshot of a portion of the spreadsheet, where you can see the discrepancies.
Why are the numbers not the same?
Thank you

Screen Shot 2022-12-28 at 23.23.11 .png

Ale Martinez

unread,
Dec 28, 2022, 4:47:03 PM12/28/22
to golden-cheetah-users
El miércoles, 28 de diciembre de 2022 a la(s) 18:28:51 UTC-3, antoine....@gmail.com escribió:
Hello,
My understanding is that ATL (STS) is calculated as a 7-day moving average of my Triscore (for Running or Cycling), and CTL (LTS) as a 42-day average.

That is incorrect, see the Glossary in the wiki. 

Antoine Abou-Samra

unread,
Dec 29, 2022, 1:56:43 AM12/29/22
to golden-cheetah-users
Indeed it is! Should have looked at the wiki :)
Afterwards, I had trouble finding the right formula for the exponentially weighted moving average, as there are so many floating around. Until I got to the original formula used by Coggan:

CTL-today = CTL-yesterday + (TSS-today - CTL-yesterday)*(1/CTL time constant)
ATL-today = ATL-yesterday + (TSS-today - ATL-yesterday)*(1/ATL time constant)

And now, I get the same numbers (regardless of some minor rounding).
Thank you

Ale Martinez

unread,
Jan 2, 2023, 12:06:02 PM1/2/23
to golden-cheetah-users
El jueves, 29 de diciembre de 2022 a la(s) 03:56:43 UTC-3, antoine....@gmail.com escribió:
Indeed it is! Should have looked at the wiki :)
Afterwards, I had trouble finding the right formula for the exponentially weighted moving average, as there are so many floating around. Until I got to the original formula used by Coggan:

CTL-today = CTL-yesterday + (TSS-today - CTL-yesterday)*(1/CTL time constant)
ATL-today = ATL-yesterday + (TSS-today - ATL-yesterday)*(1/ATL time constant)

And now, I get the same numbers (regardless of some minor rounding).

The minor difference is not due to rounding errors,  GC uses an exponential function i.e. exp(-1/T) for the weighting, and your formulation is the 1st order approximation using the Tailor series expansion, which is not exactly the same, but likely good enough for all practical purposes, anyway.
Reply all
Reply to author
Forward
0 new messages