Garmin asks me how many kCalories I ate and how many water bottles I drank when I’m saving an activity. Only the kCalories seems to be exposed by intervals.icu, though. Why isn’t there a field displaying “fluid consumed”?
It may not be exported by Garmin.
If that is the case, you can create a custom field and fill it in choosing the record field.
I’ve tried using the field, but it doesn’t populate. I’ve also tried setting it to:
179
fluid_consumed
fluid consumed
It always ends up blank. I’ve pulled the FIT file for the activity I’m working with, and it has a number in the field.
(I’ve changed this to a bug report since it seems like a bug in the FIT file parser)
I tried finding this field using a script, and it looks like the field list for Session inside the FIT file is incomplete. FitFileViewer shows 64 fields in the Session section, but I only count 54 fields when running this script:
{
let s = icu.fit?.m_18?.[0];
if (!s) {
console.log(‘no session message’);
} else {
console.log(‘field count:’, s.length, ‘| keys on a field:’, Object.keys(s[0]).join(‘,’));
console.log(s.map((x, i) => i + ‘:’ + (x.name ?? x.num)).join(’ '));
s.filter(x => x.num === 179 || x.num === 177 || /fluid|calor|17[79]/i.test(String(x.name)))
.forEach(x => console.log(‘HIT’, x.name, x.num, x.value ?? x.getValue?.()));
}
}
output:
ield count: 54 | keys on a field: getNumValues,getIsAccumulated,getValueName,getName,toString,getValue,getUnits,getNum
0:timestamp 1:start_time 2:start_position_lat 3:start_position_long 4:total_elapsed_time 5:total_timer_time 6:total_distance 7:total_cycles 8:nec_lat 9:nec_long 10:swc_lat 11:swc_long 12:end_position_lat 13:end_position_long 14:total_work 15:sport_profile_name 16:enhanced_avg_speed 17:enhanced_max_speed 18:training_load_peak 19:message_index 20:total_calories 21:avg_power 22:max_power 23:total_ascent 24:total_descent 25:first_lap_index 26:num_laps 27:normalized_power 28:training_stress_score 29:intensity_factor 30:left_right_balance 31:threshold_power 32:unknown 33:avg_vam 34:enhanced_avg_respiration_rate 35:enhanced_max_respiration_rate 36:enhanced_min_respiration_rate 37:metabolic_calories 38:event 39:event_type 40:sport 41:sub_sport 42:avg_heart_rate 43:max_heart_rate 44:avg_cadence 45:max_cadence 46:total_training_effect 47:trigger 48:avg_temperature 49:max_temperature 50:avg_fractional_cadence 51:max_fractional_cadence 52:total_anaerobic_training_effect 53:min_temperature
HIT total_calories 11 2353
HIT metabolic_calories 196 262
Here is the same file in FitFileViewer showing all 64 fields:
I tried looking at some other rides, and the field is populating properly just using 179 as the FIT file field. There must be something in the FIT file I was using to test that is causing a parsing issue (activity i198117200).
I think you missed the hint that Garmin is filtering data recently
You can check by comparing fit file from intervals and fit file from Garmin.






