How to calculate Exponential Moving Average to show Fitness and Fatigue

I think I may have it :slight_smile:

You need to do a couple of seperate measures to get there. I’ll show how I got to Fitness CTL first.

First you need Standard 42 Day Moving average which is this

TSS 42 Day Moving Average = 
AVERAGEX(
	DATESINPERIOD( Dates[Date],
		LASTDATE( Dates[Date] ),
		-42, DAY ),
		[Total TSS] )

Then you need yesterdays 42 Day Moving Average which is this.

Yesterdays 42 Day Moving Average = 
CALCULATE( 
	[TSS 42 Day Moving Average] , 
		PREVIOUSDAY( Dates[Date] ))

You then need to calculate the 42 Day Weighting multiplier which is as I calculated above

(2/(42+1) = 0.0465

You can then calculate fitness using the following formula (I think)

Fitness (CTL) = 
(0.0465*([Total TSS]-[Yesterdays 42 Day Moving Average])) + [Yesterdays 42 Day Moving Average]

To Fatigue you do something similar

TSS 7 Day Moving Average = 
AVERAGEX(
	DATESINPERIOD( Dates[Date],
		LASTDATE( Dates[Date] ),
		-7, DAY ),
		[Total TSS] )

Yesterdays 7 Day Moving Average = 
CALCULATE( 
	[TSS 7 Day Moving Average] , 
		PREVIOUSDAY( Dates[Date] ))

Then

7 Day Weighting Multiplier

(2/(7+1) = 0.25

Then

Fatigue (ATL) = 
(0.25*([Total TSS]-[Yesterdays 7 Day Moving Average])) + [Yesterdays 7 Day Moving Average]

Then to finally calculate form you need yesterdays Fitness and yesterdays fatigue

Yesterdays Fitness = 
CALCULATE( 
	[Fitness (CTL)] , 
		PREVIOUSDAY( Dates[Date] ))

Yesterdays Fatigue = 
CALCULATE( 
	[Fatigue (ATL)] , 
		PREVIOUSDAY( Dates[Date] ))

Which when subtracted from each other gives you todays Form

Form (TSB) =
CALCULATE([Yesterdays Fitness] - [Yesterdays Fatigue])

I feel like my numbers are right but when I put my TSS scores in My fitness appears high.

Let me know how you go and if you think I should make a change somewhere. I think a few people would be interested in calculating this so my donation to the group :slight_smile:

1 Like