I have been creating some activity custom fields using the powerful “Fit file field” option on intervals.icu custom fields. I’ve been able to extract all this information from my Garmin sessions (F7 + HRM-Pro):
They are public and I wonder if you have discovered some more.
(2023-01-19) Edit to add field codes and descriptions.
(2023-01-19bis) Edit to add some more fields (LTGR, LTP and Performance condition).
(2023-01-31) Edit to add possible value to the Training Effect / Primary Benefit selector.
(2023-02-08) Edit to add Flight Time.
Run Cadence (Runcadence): Running Cadence as double of cycling cadence. Script activity.average_cadence*2
Stride (Stride): Average stride from activity. Filed already in the activity header, but is nice to have it next to run cadence. Script activity.average_stride
Recovery HR (RecoveryHR): Recovery Heart Rate from Garmin activity (Measured at the end of the session). FIT file field 202
Vertical Ratio (VerticalRatio): Vertical Ratio from Garmin Running Dynamics. FIT file field avg_vertical_ratio
Vertical Oscillation (VerticalOscillation): Vertical Oscillation from Garmin Running Dynamics. FIT file field avg_vertical_oscillation and Script activity.isNew ? activity.VerticalOscillation/10 : activity.VerticalOscillation
GCT (GCT): Ground Contact Time from Garmin Running Dynamics. FIT file field avg_stance_time
GCT Balance Percent (GCTBalance): Ground Contact Time Balance (Left percentage). Only needed to show GCTBalanceText. FIT file field avg_stance_time_balance
GCT Balance (GCTBalanceText): Ground Contact Time Balance (Left/Right) from Garmin Running Dynamics. It needs the “GCT Balance Percent” (GCTBalance) field created. Script:
left = activity.GCTBalance
right = 100-activity.GCTBalance
balance = left.toFixed(1) + '% L / ' + right.toFixed(1) + '% R'
Aerobic Effect (AerobicEffect): Aerobic effect from Garmin activity. FIT file field total_training_effect
Anaerobic Effect (AnaerobicEffect): Anaerobic effect from Garmin activity. FIT file field total_anaerobic_training_effect
Training Effect (TrainingEffectSelect): Training effect / Primary benefit from Garmin activity. Selector field (1=Recovery, 2=Base, 3=Tempo, 4=Threshold, 5=VO2 Max, 6=Anaerobic, 7=Sprint). FIT file field 188
Training Load (TrainingLoad): Training load from Garmin activity. It is Exercise Load based on estimated EPOC. It is a Garmin approach and totally different from TP TSS. FIT file field training_load_peak
VO2 Max (VO2MaxGarmin): VO2 Max with 2 decimals extracted from the Garmin activity. FIT file field 140.7 and Script activity.isNew ? activity.VO2MaxGarmin * 3.5 / 65536 : activity.VO2MaxGarmin
Recovery Time (RecoveryTime): Recovery Time from Garmin watches. Works for watches that don’t report this via Garmin Connect. FIT file field 140.9 and Script activity.isNew ? activity.RecoveryTime / 60 : activity.RecoveryTime
LTHR Detected (LTHRdetected): Lactate Threshold Heart Rate when detected during Garmin activity. FIT file field 140.14 and Script (Optional) activity.LTHRdetected == 0 ? NaN : activity.LTHRdetected
LTP Detected (LTPaceDetected): Lactate Threshold Pace when detected during Garmin activity. FIT file field 140.16 and Script activity.isNew ? (activity.LTPaceDetected == 0 ? NaN : activity.LTPaceDetected / 36) : (activity.LTPaceDetected == 0 ? NaN : activity.LTPaceDetected)
Performance Condition (PerformanceCondition): Performance Condition at the end of the Gamin activity. FIT file field 140.17
Flight Time (FlightTime): Flight Time is the amount of time you spend off the ground between strides when running. It needs Ground Contact Time (GCT) custom activity field created. Script activity.GCT > 0 ? (60 / (activity.average_cadence * 2) * 1000) - activity.GCT : NaN
Thanks Povedano! I saw what you did earlier but I didn’t comment. I tried to find it on custom field but couldn’t find everything. I “created” my “AVG Temperature” field and step length, but I couldn’t get Run Cadence from Garmin. Did you create a custom field that includes all all this fields?
Looks like your FIT file is very different from mine.
Looks like there needs to be a set of garmin fields for every watch!! And some will take some sleuthing to figure out where they are. The runalyze people figured out where some of them are for watches that don’t record them in the session message. I wonder how they did that??
For instance, it’s possible that my watch records training load but since I don’t know what that number would be I can’t find it. The only reason I was able to find the training effect and recovery time numbers was that runalyze told me what they were.
I might see if I can find some more info in one of my husband’s FIT files from his fancy forerunner.
I also have included the Step length / Stride like you, however I have it hidden because is something that already exists on the activity header fields (Stride). But it could be useful to show it where you have it, near the Run Cadence… I think I’m going to get it back
I found it with the name “avg_temperature”. There’s something interesting: My fit file didn’t show the fields 202 (HR Recovery) and 140.7 (VO2Max), but I used your templates and it seems it worked. Maybe they are so hide that I couldn’t find them . I’m using garmin 945. Maybe it can happen to you too. You don’t have avg_temperature in your fit file but when you import this “name” it can works.
Question: The Training Load returned by this field is Garmin’s Training Load or is it TSS?
There’s a difference between the Garmin Training Load number and the more widely used TSS. Garmin has its own calculation mode.
On Garmin Connect, you can see both.
Hi everybody, when we are adding these fields, I need to reprocess the file to get the numbers. How can I do to update all previously recorded activities without to do it manually (would be a huge amount of work)?
Thanks!