On Dec 1, 10:15 pm, Sean Rhea <
sean.c.r...@gmail.com> wrote:
> In case it isn't clear to anyone, the purpose of this list is to act
> as a forum where the developers and users of GoldenCheetah can discuss
> how to make it even more awesome than it already is. That includes
> bug reports, patches, feature requests and descriptions, crazy ideas,
> brainstorming, requests for code review, and constructive criticism.
> Those without interest in such topics are welcome to move on.
I think what you're saying is you're quite happy for this discussion
to continue, so I will add some further thoughts.
I have just constructed a spreadsheet to experiment with a few
scenarios. I calculated NP, TSS, and TSS2 (using IF^4). FTP is assumed
at 300W.
Scenario 1: Cyclist outputs 500W for 10 seconds, then 0W for 50
seconds, repeated 6 times. I had some zeroes before the start and
after the end to make sure nothing got lost in the smoothing. Total
duration 420 seconds.
Scenario 2: Cyclist outputs 500W for 60 seconds, 0W at all other
times. Total duration 420 seconds as above, i.e. lots of recorded
zeroes on the end.
Scenario 3: As scenario 2 but trimmed to 150seconds.
Results:
1: NP = 130W, TSS = 2.04, TSS2 = 0.38
2: NP = 286W, TSS = 9.89, TSS2 = 9.01
3: NP = 384W, TSS = 5.50, TSS2 = 9.01
The reason for choosing these 3 scenarios is that in all 3 cases the
cyclist has spent 60 seconds outputting 500W. You can see that neither
model is additive, due to the effect of the 30 second smoothing.
Scenario 2 shows how TSS is inflated by the zeroes at the end. I think
the people who consider this a desirable effect are very much in a
minority. I don't accept that this is a realistic model of glycogen
depletion in those minutes of outputting zero watts, as I don't see
how the model can know whether or not I'm stuffing myself with cake in
the middle of a club run.
Setting that aside for now, the real comparison is between TSS giving
5.50 for 3 vs 2.04 for 1, whereas TSS2 gives 9.01 for 3 vs 0.38 for 1.
This is a very significant difference, and I'm not sure the choice
between these two options should be made based on the zero padding
issue.
I have a suggestion for TSS3 as follows:
In addition to calculating NP, also calculate NP' by taking the 30
second smoothed data, and eliminating any data points that have a
smoothed value of 0W. Calculate TSS3 in the same way as TSS, but using
NP' instead of NP.
Here is my table again with NP' and TSS3 incorporated:
Results:
1: NP = 130W, NP' = 148W, TSS = 2.04, TSS2 = 0.38, TSS3 = 1.58
2: NP = 286W, NP' = 414W, TSS = 9.89, TSS2 = 9.01, TSS3 = 4.72
3: NP = 384W, NP' = 414W, TSS = 5.50, TSS2 = 9.01, TSS3 = 4.72
NP' will always be greater than NP, due to eliminating the zero values
(after smoothing) from the average. TSS3 will always be smaller than
TSS.
As you can see, TSS3 eliminates the zero padding problem without
introducing a drastic change in the relative stress score of the two
workouts compared to TSS.
The other thing to note is that NP' is the same between scenarios 2
and 3, unlike NP. If NP' is displayed to the user, then the duration
it is based on would also need to be displayed alongside it. I am not
suggesting it should replace NP, as that has its own uses.
The version of GoldenCheetah I'm using is the last pre-built, 1.2.0.
xPower and BikeScore in that version have a similar issue with zeroes
on the end of a ride, so while I've talked about NP and TSS I'm
assuming it is also relevant to xPower and BikeScore.