Definition from the api-docs: The Training Effect score of the current activity.
I am experimenting with this value as part of developing a Data Field. Although it worked as expected on my simulator, I got unexpected results running on my Fenix 6S. I did some further testing and found the following behavior:
- If you have selected an Activity type on a watch (Running, Walking, Cardio, whatever) but haven't started the activity, info.trainingEffect returns the final value of the most recent activity. Not even the last workout of the same Activity type, but the most recent activity, period. If you pull this data on a new Walking activity, and your last activity was Cardio, it will show you the Training Effect value from that Cardio activity.
- Once you Start your new activity, the value of info.trainingEffect drops to 0. It will then accurately reflect the current activity through all starts and stops up until the activity is saved.
I tested recording multiple activities in a row in case this would return the highest training impact (sort of like how Garmin Connect may show the highest for the day) but again, it's the most recent activity.
Prior to starting a new activity, I expected this to either be null, or to be 0. It means that if you look at data screens before you get started, any value based on Training Effect could be incorrect. I tested this with both Simple and Complex Data Fields and got the same result.
I tried detecting ActivityRecording.isRecording thinking that maybe I could use my own variable, set it to 0, and once we've started recording at least once to then load in info.trainingEffect, but ActivityRecording isn't available to Data Fields, so that's a no-go.
Am I doing something wrong? Is this a bug?
EDIT: While I'm asking... is there a way to extract Anaerobic Effect in addition to the Aerobic Effect that is provided? Or to pull the Primary Benefit at any given point during the workout (Base, Threshold, Sprint, etc.)