Garmin Health Data Metrics and Meanings

Below is a Garmin Health data dictionary highlighting the different data types and their subsequent meanings.

local_time_offset_in_hours Calendar time is based off of GMT-0 (UTC). The offset is the number of hours to add or subtract to the time to get the local time
duration_in_seconds Duration in seconds of the recording.
minute_bpm Average heart rate in beats per minute for that minute
minute_stress Stress Details summaries contain the user’s stress level values for a given day. Stress levels are provided as 3-minute averages of the real-time stress scores generated on the device with values ranging from 1 to 100. A value of -1 means there was not enough data to detect stress, and -2 means there was too much motion (e.g. the user was walking or running). Scores between 1 and 25 are considered “rest” (i.e. not stressful), 26-50 as “low” stress, 51-75 “medium” stress, and 76-100 as “high” stress. These numbers are derived based on a combination of many device sensors and will automatically adjust to the wearer of the device and gain accuracy over time as the stress algorithms learn the user’s natural biometric norms. Stress values from the Health API are exactly the stress values shown on Garmin Connect.
minute_sleep If pulse ox (SpO2) is turned on during sleep, then you'll see this data. This is the blood oxygen saturation recorded during sleep
minute_pulse_ox Oxygen Saturation level in that minute
minute_body_battery body battery stress score 2-100
epoch_activity_type Text description of the activity type.
epoch_active_calories Active kilocalories (dietary calories) burned during the monitoring period. This includes only the calories burned by the activity and not calories burned as part of the basal metabolic rate (BMR).
epoch_active_time Portion of the monitoring period (in seconds) in which the device wearer was active for this activity type. The sum of active times of all epochs of the same start time (and different activity types) should be equal to the duration.
epoch_met MET (Metabolic Equivalent of Task) value for the active time for this activity type. See Appendix B.
epoch_intensity Qualitative measure of intensity. See Appendix A.
epoch_max_motion_intensity The largest motion intensity score of any minute in this monitoring period. See Appendix C for information on motion intensity.
epoch_mean_motion_intensity The average of motion intensity scores for all minutes in this monitoring period. See Appendix C for information on motion intensity.
aggregate_distance Distance traveled in meters in the Epoch period (15m)
aggregate_steps total steps within a certain period of time (see the "duration" of the entry)
daily_activity_type This field is included in daily summaries for backwards compatibility purposes. It can be ignored and will always default to WALKING.
daily_activity_calories Active kilocalories (dietary calories) burned through actual movement and activity during the monitoring period.
daily_activity_time Portion of the monitoring period (in seconds) in which the device wearer was considered Active. This relies on heuristics internal to each device.
daily_bmr_calories BMR Kilocalories burned by existing Basal Metabolic Rate (calculated based on user height/weight/age/other demographic data).
daily_steps Count of steps recorded during the monitoring period.
daily_distance daily_moderate_duration Cumulative duration of activities of moderate intensity, lasting at least 600 seconds at a time. Moderate intensity is defined as activity with MET value range 3-6.
daily_vigorous_duration Cumulative duration of activities of vigorous intensity, lasting at least 600 seconds at a time. Vigorous intensity is defined as activity with MET value > 6.
daily_floor_climbed Number of floors climbed during the monitoring period.
daily_min_hr Minimum of heart rate values captured during the monitoring period, in beats per minute.
daily_max_hr Maximum of heart rate values captured during the monitoring period, in beats per minute.
daily_avg_hr Average of heart rate values captured during the last 7 days, in beats per minute. The average heart rate value for the monitoring period can be calculated based on the data from timeOffsetHeartRateSamples.
daily_rest_hr Average heart rate at rest during the monitoring period, in beats per minute.
daily_max_stress The highest stress level measurement taken during this monitoring period.
daily_avg_stress An abstraction of the user’s average stress level in this monitoring period, measured from 1 to 100, or -1 if there is not enough data to calculate average stress. Scores between 1 and 25 are considered “rest” (i.e not stressful), 26-50 as “low” stress, 51-75 “medium” stress, and 76-100 as “high” stress.
daily_stress_duration The number of seconds in this monitoring period where stress level measurements were in the stressful range (26-100).
daily_rest_stress_duration The number of seconds in this monitoring period where stress level measurements were in the restful range (1 to 25).
daily_activity_stress_duration daily_low_stress_duration The portion of the user’s stress duration where the measured stress score was in the low range (26-50).
daily_medium_stress_duration The portion of the user’s stress duration where the measured stress score was in the medium range (51-75).
daily_high_stress_duration The portion of the user’s stress duration where the measured stress score was in the high range (76-100).
daily_stress_qualifier

A qualitative label applied based on all stress measurements in this monitoring period. Possible values: unknown, calm, balanced, stressful, very_stressful, calm_awake, balanced_awake, stressful_awake, very_stressful_awake. This matches what the user will see in Garmin Connect. It is recommended that implementations that use the stressQualifier be tolerant of unknown values in case more granular values are added.


Appendix A- Wellness monitoring intensity

Below is the list of possible intensity values for wellness monitoring summaries.
 
Monitoring Intensity Notes
SEDENTARY Little to no activity monitored. This could be due to minimal movement, sitting, resting, or sleeping.
ACTIVE Some activity monitored. A brisk walk could achieve this intensity.
HIGHLY_ACTIVE High activity monitored. Running or speed walking could achieve this intensity.

Appendix B- Wellness monitoring intensity


Metabolic Equivalent of Task (MET)
is an official measure of activity intensity. Garmin’s calculation of MET is an estimation based on the biometric data provided (height, weight, date of birth, gender) and improves in accuracy if heart rate data is also captured. The following linked document hosted by the US Centers for Disease Control and Prevention provides detailed information on MET and physical


Appendix C – Motion Intensity

Motion Intensity is a numerical abstraction of low-level accelerometer data, provided for use in further analysis. This data is not exposed directly to the consumer by Garmin but is used in in the creation of other metrics.

Motion Intensity is calculated at minute-level granularity as a number between 0 and 7, with 0 being absolutely still and 7 being constant, sharp motion. 


Unlike steps, distance, or activity type, which take net movement in to account, motion intensity will increase even if the user does not move in space.

For instance, if a user were to jump up and down or fidget with a pencil they would not get credit for any distance, but their motion intensity scores for that monitoring period would increase. It is very common to see mid-range max motion intensities even for sedentary epochs as most people do not sit absolutely still.