Data Dictionary, Full Field Reference

Every table Cordelia creates in your SQLite database, and every column in it: 124 tables, 1635 fields.

Generated from Cordelia's own source code: every table and column name below is the literal SQL Cordelia executes, and every description is that field's documentation comment.

Every table also has a RecordNumber integer primary key column, added automatically by Cordelia and not part of the FIT data itself, so it is omitted from the per-table lists below since it's the same on every table.

See also

Tables

AadAccelFeatures

Number of accelerometer zero crossings summed over the specified time interval.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
timeINTEGERTime interval length in seconds.
energy_totalINTEGERTotal accelerometer energy in the interval.
zero_cross_cntINTEGERCount of zero crossings.
instanceINTEGERInstance ID of zero crossing algorithm.
time_above_thresholdREALTotal accelerometer time above the threshold in the interval. Units: s.

AccelerometerData

contains raw and calibrated accelerometer sensor readings.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
timestamp_msINTEGERMillisecond part of the timestamp.
sample_time_offsetTEXTEach time in the array describes the time, in milliseconds, at which the accelerometer sample with the corresponding index was taken. Limited to 30 samples per message; the samples may span across seconds. Array size must match the number of samples in accel_x, accel_y, and accel_z.One value per sample, index-aligned with accel_x/accel_y/accel_z.
accel_xTEXTthese are the raw ADC reading. The maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read.One value per sample, index-aligned with sample_time_offset.
accel_yTEXTthese are the raw ADC reading. The maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read.One value per sample, index-aligned with sample_time_offset.
accel_zTEXTthese are the raw ADC reading. The maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read.One value per sample, index-aligned with sample_time_offset.
calibrated_accel_xTEXTcalibrated X acceleration reading. Units: g.One value per sample, index-aligned with sample_time_offset.
calibrated_accel_yTEXTcalibrated Y acceleration reading. Units: g.One value per sample, index-aligned with sample_time_offset.
calibrated_accel_zTEXTcalibrated Z acceleration reading. Units: g.One value per sample, index-aligned with sample_time_offset.
compressed_calibrated_accel_xTEXTcalibrated X acceleration reading. Units: mG.One value per sample, index-aligned with sample_time_offset.
compressed_calibrated_accel_yTEXTcalibrated Y acceleration reading. Units: mG.One value per sample, index-aligned with sample_time_offset.
compressed_calibrated_accel_zTEXTcalibrated Z acceleration reading. Units: mG.One value per sample, index-aligned with sample_time_offset.

Activity

Summarizes an entire activity session including duration, distance, and performance metrics.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
total_timer_timeREALTotal time taken, excluding pauses. Units: s.
number_sessionsINTEGERNumber of Sessions.
typeINTEGERActivity type.
event_idINTEGERFIT event code identifying what triggered this record, such as a timer start/stop or a lap marker.
event_typeINTEGERFIT event-type code describing how the event occurred, such as start, stop, or marker.
local_timestampTEXTTimestamp epoch expressed in local time, in ISO8601 format. Used to convert activity timestamps to local time.
event_groupINTEGERGroups related events together, distinguishing concurrent event streams (such as separate segments within a multisport session) that share the same event_id and event_type.

AntChannelId

Identifies which ANT+ sensor device is paired to a specific ANT channel.

FieldTypeDescription
file_numberINTEGERThe file number.
channel_numberINTEGERANT channel number used for this transmission.
device_typeINTEGERDevice Type,.
device_numberINTEGERNumeric ANT device ID of the specific sensor paired on this channel.
transmission_typeINTEGERTransmission Type,.
device_indexINTEGERDevice Index,.

AntRx

Ant Rx message data.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
fractional_timestampREALFractional-second part of the timestamp, in seconds.
message_idINTEGERANT message ID identifying the type of this raw ANT message.
message_dataTEXTRaw ANT message payload bytes.One byte per element, in the order received in the raw ANT message payload.
channel_numberINTEGERANT channel number used for this transmission.
dataTEXTRaw bytes of the received ANT+ message.One byte per element, in the order received in the raw ANT+ message.

AntTx

Ant TX record.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
fractional_timestampREALFractional milliseconds part of timestamp.
message_idINTEGERANT message ID identifying the type of this raw ANT message.
message_dataTEXTRaw ANT message payload bytes.One byte per element, in the order received in the raw ANT message payload.
channel_numberINTEGERANT channel number used for this transmission.
dataTEXTRaw bytes of the transmitted ANT+ message.One byte per element, in the order transmitted in the raw ANT+ message.

AviationAttitude

contains flight attitude data including pitch, roll, and heading.

FieldTypeDescription
file_numberINTEGERThe source FIT file number.
timestampTEXTIn ISO8601 format.
timestamp_msINTEGERMillisecond part of the timestamp.
system_timeTEXTSystem time associated with the sample expressed in milliseconds.One value per attitude sample in this message.
pitchTEXTPitch in radians.One value per attitude sample, index-aligned with system_time.
rollTEXTRoll in radians.One value per attitude sample, index-aligned with system_time.
accel_lateralTEXTLateral acceleration. Units: m/s^2; scale: 100; Range -78.4 to +78.4 (-8 Gs to 8 Gs).One value per attitude sample, index-aligned with system_time.
accel_normalTEXTNormal acceleration. Units: m/s^2; scale: 100; Range -78.4 to +78.4 (-8 Gs to 8 Gs).One value per attitude sample, index-aligned with system_time.
turn_rateTEXTTurn rate. Units: radians/second; scale: 1024; Range -8.727 to +8.727 (-500 degs/sec to +500 degs/sec).One value per attitude sample, index-aligned with system_time.
stageTEXTFlight stage during which this attitude reading was recorded.One value per attitude sample, index-aligned with system_time.
attitude_stage_completeTEXTAttitude stage complete. Units: %; The percent complete of the current attitude stage. Set to 0 for attitude stages 0, 1, and 2 and to 100 for attitude stage 3 by AHRS modules that do not support it. Range - 100.One value per attitude sample, index-aligned with system_time.
trackTEXTTrack. Units: radians; scale: 10430.38; Track Angle/Heading Range 0 - 2pi.One value per attitude sample, index-aligned with system_time.
validityTEXTWhether this attitude reading is valid.One value per attitude sample, index-aligned with system_time.

BarometerData

contains raw barometric pressure readings.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
timestamp_msINTEGERMillisecond part of the timestamp.
sample_time_offsetTEXTEach time in the array describes the time, in milliseconds, at which the barometer sample with the corresponding index was taken. The samples may span across seconds. Array size must match the number of samples in barometric_pressure.One value per sample, index-aligned with barometric_pressure.
barometric_pressureTEXTBarometric pressure. Units: Pa; These are the raw ADC reading. The samples may span across seconds. A conversion will need to be done on this data once read.One value per sample, index-aligned with sample_time_offset.

BeatIntervals

Array of heart beat intervals.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
timestamp_msINTEGERMillisecond part of the timestamp.
timeTEXTArray of millisecond times between beats.One value per successive heartbeat interval, in chronological order.

BikeProfile

contains bike-specific settings including sensors, wheel size, and calibration data.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
bike_profile_nameTEXTUser-assigned name for this bike profile.
sport_idINTEGERSport-type code identifying the sport, such as running or cycling; sub_sport_id narrows this further.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
sub_sport_idINTEGERSub-sport-type code providing a more specific classification within sport_id, such as indoor cycling or trail running.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
odometerREALIn metres.
bike_spd_ant_idINTEGERBike Speed ANT ID.
bike_cad_ant_idINTEGERBike Cadence ANT ID.
bike_spdcad_ant_idINTEGERANT device ID of the combined speed/cadence sensor paired with this bike.
bike_power_ant_idINTEGERANT device ID of the power meter paired with this bike.
custom_wheelsizeREALCustom wheel size in centimeters.
auto_wheelsizeREALAutomatic wheel size. Units: m.
bike_weightREALWeight of the bike in kilograms.
power_cal_factorREALPower calculation factor. Units: %.
auto_wheel_calINTEGERWhether wheel circumference is calibrated automatically rather than using custom_wheelsize.Stored in SQLite as INTEGER: 0 = false, 1 = true.
auto_power_zeroINTEGERWhether the power meter zero-offset is calibrated automatically.Stored in SQLite as INTEGER: 0 = false, 1 = true.
idINTEGERIdentifier of this bike profile.
spd_enabledINTEGERSpeed Enabled.Stored in SQLite as INTEGER: 0 = false, 1 = true.
cad_enabledINTEGERCadence Enabled.Stored in SQLite as INTEGER: 0 = false, 1 = true.
spdcad_enabledINTEGERWhether the combined speed/cadence sensor is enabled for this bike.Stored in SQLite as INTEGER: 0 = false, 1 = true.
power_enabledINTEGERWhether the power meter is enabled for this bike.Stored in SQLite as INTEGER: 0 = false, 1 = true.
crank_lengthREALCrank length. offset: -110.
enabledINTEGERWhether this bike profile is enabled.Stored in SQLite as INTEGER: 0 = false, 1 = true.
bike_spd_ant_id_trans_typeINTEGERBike Speed ANT ID Trans Type.
bike_cad_ant_id_trans_typeINTEGERBike Cadence ANT ID Trans Type.
bike_spdcad_ant_id_trans_typeINTEGERANT transmission type of the combined speed/cadence sensor identified by bike_spdcad_ant_id.
bike_power_ant_id_trans_typeINTEGERANT transmission type of the power meter identified by bike_power_ant_id.
odometer_rolloverINTEGERRollover counter that can be used to extend the odometer.
front_gear_numberINTEGERNumber of front gears.
front_gearTEXTNumber of teeth on each gear 0 is innermost.One value per gear; index 0 is the innermost gear.
rear_gear_numberINTEGERNumber of rear gears.
rear_gearTEXTNumber of teeth on each gear 0 is innermost.One value per gear; index 0 is the innermost gear.
shimano_di2_enabledINTEGERShimano Di 2 Enabled.Stored in SQLite as INTEGER: 0 = false, 1 = true.

BloodPressure

Blood pressure readings taken by a connected blood-pressure monitor.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
systolic_pressureINTEGERSystolic blood pressure in millimeters of mercury.
diastolic_pressureINTEGERDiastolic blood pressure in millimeters of mercury.
mean_arterial_pressureINTEGERMean arterial pressure in millimeters of mercury.
map3_sample_meanINTEGERMap sample mean.
map_morning_valuesINTEGERMorning values. Units: mmHg.
map_evening_valuesINTEGEREvening values. Units: mmHg.
heart_rateINTEGERHeart rate in beats per minute.
heart_rate_typeINTEGERMethod used to measure heart rate for this reading, such as from a paired sensor or an estimate.
statusINTEGERStatus of the blood pressure reading, such as valid or error.
user_profile_indexINTEGERAssociates this blood pressure message to a user. This corresponds to the index of the user profile message in the blood pressure file.

CadenceZone

Defines cadence training zones.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
high_valueINTEGERUpper boundary of this cadence zone, in revolutions per minute.
NameTEXTUser-assigned name for this cadence zone.

CameraEvent

Records events related to camera usage during an activity.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
timestamp_msINTEGERMillisecond part of the timestamp.
camera_event_typeINTEGERFIT event code identifying what camera action occurred, such as capture start or capture end.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
camera_file_uuidTEXTUnique identifier of the camera file (photo or video) associated with this event.
camera_orientationINTEGEROrientation of the camera at the time of this event.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.

Capabilities

Describes supported languages, sports, and connectivity features of the device.

FieldTypeDescription
file_numberINTEGERThe file number.
languagesTEXTUse language_bits_x types where x is index of array.One bitmask byte per language_bits_x index, x being the element's position in this array.
sportsTEXTUse sport_bits_x types where x is index of array.One bitmask byte per sport_bits_x index, x being the element's position in this array.
workouts_supportedINTEGERBitmask of workout_capabilities flags describing which workout step types this device supports.
connectivity_supportedINTEGERBitmask of connectivity_capabilities flags describing which wireless connectivity features this device supports.

ChronoShotData

Individual projectile-speed reading for one shot, as measured by a Garmin XERO chronograph device.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
shot_speedREALProjectile speed in meters per second.
shot_numberINTEGERIndex identifying this shot within the chrono shot session.

ChronoShotSession

Summary statistics (min/max/average speed, shot count) for a shooting session recorded by a Garmin XERO chronograph device.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
min_speedREALMinimum speed. Units: m/s.
max_speedREALMaximum speed. Units: m/s.
avg_speedREALAverage speed. Units: m/s.
shot_countINTEGERTotal number of shots recorded in this session.
projectile_typeINTEGERType of projectile measured, such as arrow or bullet.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
grain_weightREALProjectile weight in grains.
standard_deviationREALStandard deviation of shot speed, in meters per second.

ClimbPro

Climb Pro record.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
position_latINTEGERPosition latitude. Units: semicircles.
position_longINTEGERPosition longitude. Units: semicircles.
climb_pro_eventINTEGERFIT event code identifying the ClimbPro state change, such as climb start or climb complete.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
climb_numberINTEGERIndex identifying which climb (in a sequence of climbs on the course) this event pertains to.
climb_categoryINTEGERDifficulty category assigned to this climb, such as by length and grade.
current_distREALCurrent distance. Units: m.

Connectivity

Defines wireless and network connectivity options such as Bluetooth and ANT+.

FieldTypeDescription
file_numberINTEGERThe file number.
bluetooth_enabledINTEGERUse Bluetooth for connectivity features.Stored in SQLite as INTEGER: 0 = false, 1 = true.
bluetooth_le_enabledINTEGERUse Bluetooth Low Energy for connectivity features.Stored in SQLite as INTEGER: 0 = false, 1 = true.
ant_enabledINTEGERUse ANT for connectivity features.Stored in SQLite as INTEGER: 0 = false, 1 = true.
NameTEXTName of the paired companion app or service providing connectivity.
live_tracking_enabledINTEGERWhether live tracking (sharing real-time location with others) is enabled.Stored in SQLite as INTEGER: 0 = false, 1 = true.
weather_conditions_enabledINTEGERWhether current weather conditions can be downloaded to the device.Stored in SQLite as INTEGER: 0 = false, 1 = true.
weather_alerts_enabledINTEGERWhether severe weather alerts can be downloaded to the device.Stored in SQLite as INTEGER: 0 = false, 1 = true.
auto_activity_upload_enabledINTEGERWhether completed activities are automatically uploaded to the companion app.Stored in SQLite as INTEGER: 0 = false, 1 = true.
course_download_enabledINTEGERWhether courses can be downloaded to the device from the companion app.Stored in SQLite as INTEGER: 0 = false, 1 = true.
workout_download_enabledINTEGERWhether workouts can be downloaded to the device from the companion app.Stored in SQLite as INTEGER: 0 = false, 1 = true.
gps_ephemeris_download_enabledINTEGERWhether GPS ephemeris data (for faster satellite fix) can be downloaded to the device.Stored in SQLite as INTEGER: 0 = false, 1 = true.
incident_detection_enabledINTEGERWhether incident detection (automatically alerting contacts after a suspected fall or crash) is enabled.Stored in SQLite as INTEGER: 0 = false, 1 = true.
grouptrack_enabledINTEGERWhether GroupTrack (sharing live location with other paired devices in the same group) is enabled.Stored in SQLite as INTEGER: 0 = false, 1 = true.

Course

Record.

FieldTypeDescription
file_numberINTEGERThe file number.
sport_idINTEGERSport-type code identifying the sport, such as running or cycling; sub_sport_id narrows this further.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
NameTEXTUser-assigned name for this course.
capabilities_idINTEGERBitmask of course_capabilities flags describing which optional data types (such as heart rate or power) this course includes.
sub_sport_idINTEGERSub-sport-type code providing a more specific classification within sport_id, such as indoor cycling or trail running.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.

CoursePoint

Course Point record.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
timestampTEXTIn ISO8601 format.
position_latINTEGERLatitude position. Units: semicircles.
position_longINTEGERLongitude position. Units: semicircles.
distanceREALDistance from the start of the course to this point, in meters.
typeINTEGERType of course point, such as summit, water station, or danger.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
NameTEXTUser-assigned or generated name for this course point.
favoriteINTEGERWhether this course point is marked as a favorite.Stored in SQLite as INTEGER: 0 = false, 1 = true.

DeveloperCIQFields

a single Developer/CIQ field value attached to a native message row (Record/Lap/Session). Generic storage for dynamic, app-defined FIT developer fields -- see docs/notes/fit-import-gaps-plan-2026-07-03.md section 3b for the schema rationale.

FieldTypeDescription
file_numberINTEGERThe file number.
table_attached_toTEXTWhich native table key_into_attached_table refers to (e.g. "Record").
key_into_attached_tableINTEGERThe native row's own real primary key.
developer_data_indexINTEGERCorrelates to DeveloperDataId.developer_data_index.
field_definition_numberINTEGERCorrelates to FieldDescription.field_definition_number.
field_typeINTEGER0=Unknown, 1=INTEGER, 2=REAL, 3=INTEGER VECTOR, 4=REAL VECTOR, 5=STRING, 6=STRING VECTOR -- see the FieldTypeLookup table for the code-to-description mapping.
field_value_numericREALPopulated only when field_type is 1 (INTEGER) or 2 (REAL); NULL in the database otherwise.
field_as_textTEXTPopulated only when field_type is 3, 4, 5, or 6 (any vector type or STRING), via the same bind_numeric_array/bind_string_array encoding used for native vector<T> fields; NULL in the database otherwise.

DeveloperDataId

Developer_data_id: Must be logged before field description.

FieldTypeDescription
file_numberINTEGERThe file number.
developer_idTEXTUnique identifier of the developer or company that created this custom data source.One byte per element of this single identifier, not one value per sample.
application_idTEXTUnique identifier of the specific application that created this custom data source.One byte per element of this single identifier, not one value per sample.
manufacturer_idINTEGERFIT manufacturer code identifying the device maker, such as Garmin or a third-party partner.
developer_data_indexINTEGERIndex uniquely identifying this developer data source within the file; FieldDescription entries reference this value via their own developer_data_index field.
application_versionINTEGERVersion number of the application identified by application_id.

DeviceAuxBatteryInfo

Provides information about auxiliary batteries connected to the device.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
device_indexINTEGERIndex identifying which connected device this data pertains to, matching a device_info record's own device_index.
battery_voltageREALBattery voltage in volts.
battery_statusINTEGERBattery charge-level bucket, such as new, good, ok, low, or critical.
battery_identifierINTEGERIdentifies which of the device's auxiliary batteries this reading is for, when a device has more than one.

DeviceInfo

Provides details about connected devices including manufacturer, serial number, and battery status.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
device_indexINTEGERIndex uniquely identifying this device within the file; other messages reference this value via their own device_index field to indicate which device produced their data.
device_typeINTEGERManufacturer-specific device-type code for this device; interpreted using its own manufacturer_id/garmin_product_id.
ble_device_typeINTEGERDevice-type code as reported over Bluetooth Low Energy.
antplus_device_typeINTEGERANT+ Device Type.
ant_device_typeINTEGERDevice-type code as reported over ANT.
local_device_typeINTEGERLocally-assigned device-type code, used for devices without a standard ANT/BLE device-type code.
manufacturer_idINTEGERFIT manufacturer code identifying the device maker, such as Garmin or a third-party partner.
serial_numberINTEGERSerial number of the device, when available.
product_idINTEGERManufacturer-specific product code identifying the device model; interpreted via garmin_product_id or favero_product_id when the manufacturer defines its own product-code table.
favero_product_idINTEGERFavero-specific product code identifying the device model, valid only when manufacturer_id is Favero Electronics.
garmin_product_idINTEGERGarmin-specific product code identifying the device model, valid only when manufacturer_id is Garmin.
software_versionREALSoftware or firmware version installed on the device.
hardware_versionINTEGERHardware revision number of the device.
cumulative_operating_timeINTEGERCumulative operating time, in seconds.
battery_voltageREALBattery voltage in volts.
battery_statusINTEGERBattery charge-level bucket, such as new, good, ok, low, or critical.
sensor_positionINTEGERIndicates the location of the sensor.
descriptorTEXTUsed to describe the sensor or location.
ant_transmission_typeINTEGERANT transmission type of this device, paired with ant_device_number to uniquely identify it on the ANT network.
ant_device_numberINTEGERANT device number of this device, paired with ant_transmission_type to uniquely identify it on the ANT network.
ant_networkINTEGERANT network this device communicates on, such as the public network or a Garmin-private network.
source_typeINTEGERTransport this device connects over, such as ANT, ANT+, or Bluetooth Low Energy.
product_nameTEXTOptional free form string to indicate the devices name or model.
battery_levelINTEGERRemaining battery level as a percentage.

DeviceSettings

Stores user-configurable settings such as time zones, display modes, and backlight options.

FieldTypeDescription
file_numberINTEGERThe file number.
active_time_zoneINTEGERIndex into time zone arrays.
utc_offsetINTEGEROffset from system time. Required to convert timestamp from system time to UTC.
time_offsetTEXTTimeoffset. units: s; Offset from system time.One value per configured time zone, indexed by active_time_zone.
time_modeTEXTDisplay mode for the time.One value per configured time zone, indexed by active_time_zone.
time_zone_offsetTEXTTime zone offset. units: hr; scale: 4; timezone offset in 1/4 hour increments.One value per configured time zone, indexed by active_time_zone.
backlight_modeINTEGERMode for backlight.
activity_tracker_enabledINTEGEREnabled state of the activity tracker functionality.Stored in SQLite as INTEGER: 0 = false, 1 = true.
clock_timeTEXTUTC timestamp used to set the device's clock and date, in ISO8601 format.
pages_enabledTEXTBitfield to configure enabled screens for each supported loop.One bitfield value per supported display loop.
move_alert_enabledINTEGEREnabled state of the move alert.Stored in SQLite as INTEGER: 0 = false, 1 = true.
date_modeINTEGERDisplay mode for the date.
display_orientationINTEGEROrientation the device's display is rotated to, such as portrait or landscape.
mounting_sideINTEGERWhich side of the body (or bike) the device is mounted on, used to orient the display correctly.
default_pageTEXTBitfield to indicate one page as default for each supported loop.One bitfield value per supported display loop.
autosync_min_stepsINTEGERAuto sync minimum steps. Minimum steps before an autosync can occur.
autosync_min_timeINTEGERAuto sync minimum time. Minimum minutes before an autosync can occur.
lactate_threshold_autodetect_enabledINTEGEREnable auto-detect setting for the lactate threshold feature.Stored in SQLite as INTEGER: 0 = false, 1 = true.
ble_auto_upload_enabledINTEGERAutomatically upload using BLE.Stored in SQLite as INTEGER: 0 = false, 1 = true.
auto_sync_frequencyINTEGERHelps to conserve battery by changing modes.
auto_activity_detectINTEGERAllows setting specific activities auto-activity detect enabled/disabled settings.
number_of_screensINTEGERNumber of screens configured to display.
smart_notification_display_orientationINTEGEROrientation used specifically for displaying smart notifications, which may differ from the main display_orientation.
tap_interfaceINTEGERMode controlling how tap gestures on the device are interpreted.
tap_sensitivityINTEGERUsed to hold the tap threshold setting.

DiveAlarm

Defines alarms for depth, time, and other dive conditions.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of the alarm.
depthREALDepth setting, in metres, for depth-type alarms.
timeINTEGERTime setting (s) for time type alarms. Units: s.
enabledINTEGEREnablement flag.Stored in SQLite as INTEGER: 0 = false, 1 = true.
alarm_typeINTEGERAlarm type setting.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
soundINTEGERTone and Vibe setting for the alarm.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
dive_typesTEXTDive types the alarm will trigger on.One value per configured dive type.
idINTEGERAlarm ID.
popup_enabledINTEGERShow a visible pop-up for this alarm.Stored in SQLite as INTEGER: 0 = false, 1 = true.
trigger_on_descentINTEGERTrigger the alarm on descent.Stored in SQLite as INTEGER: 0 = false, 1 = true.
trigger_on_ascentINTEGERTrigger the alarm on ascent.Stored in SQLite as INTEGER: 0 = false, 1 = true.
repeatingINTEGERRepeat alarm each time threshold is crossed.Stored in SQLite as INTEGER: 0 = false, 1 = true.
speedREALAscent/descent rate (mps) setting for speed type alarms. Units: mps.

DiveApneaAlarm

Defines alarms specific to apnea diving.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of the alarm.
depthREALDepth setting, in metres, for depth-type alarms.
timeINTEGERTime setting (s) for time type alarms. Units: s.
enabledINTEGEREnablement flag.Stored in SQLite as INTEGER: 0 = false, 1 = true.
alarm_typeINTEGERAlarm type setting.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
soundINTEGERTone and Vibe setting for the alarm.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
dive_typesTEXTDive types the alarm will trigger on.One value per configured dive type.
idINTEGERAlarm ID.
popup_enabledINTEGERShow a visible pop-up for this alarm.Stored in SQLite as INTEGER: 0 = false, 1 = true.
trigger_on_descentINTEGERTrigger the alarm on descent.Stored in SQLite as INTEGER: 0 = false, 1 = true.
trigger_on_ascentINTEGERTrigger the alarm on ascent.Stored in SQLite as INTEGER: 0 = false, 1 = true.
repeatingINTEGERRepeat alarm each time threshold is crossed?.Stored in SQLite as INTEGER: 0 = false, 1 = true.
speedREALAscent/descent rate (mps) setting for speed type alarms. Units: mps.

DiveGas

Specifies gas mixture details for diving activities.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
helium_contentINTEGERHelium content of the gas mix, as a percentage.
oxygen_contentINTEGEROxygen content of the gas mix, as a percentage.
statusINTEGERStatus of this gas mix, such as enabled or disabled.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
modeINTEGERGas mode, such as open-circuit or closed-circuit rebreather.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.

DiveSettings

DiveSettings contains configuration for dive activities including gas mixtures and safety parameters.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
dive_settings_nameTEXTUser-assigned name for this dive settings profile.
modelINTEGERDecompression model used for dive calculations.
gf_lowINTEGERG flow.
gf_highINTEGERG flow high.
water_typeINTEGERType of water the dive computer is calibrated for, such as fresh or salt water.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
water_densityREALWater density. Fresh water is usually 1000; salt water is usually 1025. Units: kg/m^3.
po2_warnREALP O2 warning. Typically 1.40. Units: percent.
po2_criticalREALP O2 critical. Typically 1.60. Units: percent.
po2_decoREALP O2 deco. Units: percent.
safety_stop_enabledINTEGERWhether safety stop guidance is enabled during ascent.Stored in SQLite as INTEGER: 0 = false, 1 = true.
bottom_depthREALTarget bottom depth configured for this dive, in meters.
bottom_timeINTEGERTarget bottom time configured for this dive, in seconds.
apnea_countdown_enabledINTEGERWhether the apnea (breath-hold) countdown timer is enabled.Stored in SQLite as INTEGER: 0 = false, 1 = true.
apnea_countdown_timeINTEGERDuration of the apnea countdown timer, in seconds.
backlight_modeINTEGERMode controlling when the display backlight turns on during a dive.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
backlight_brightnessINTEGERBrightness level of the display backlight during a dive.
backlight_timeoutINTEGERHow long the display backlight stays on before turning off automatically, in seconds.
repeat_dive_intervalINTEGERRepeat dive interval. Time between surfacing and ending the activity. Units: s.
safety_stop_timeINTEGERSafety stop time. Time at safety stop (if enabled). Units: s.
heart_rate_source_typeINTEGERTransport the heart rate source connects over, such as ANT or a local sensor.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
heart_rate_sourceINTEGERWhich paired heart rate source is used during dives.
heart_rate_antplus_device_typeINTEGERHeart Rate ANT+ Device Type.
heart_rate_local_device_typeINTEGERLocally-assigned device-type code of the heart rate source, when heart_rate_source_type is a local device.
travel_gasINTEGERIndex of travel dive_gas message.
ccr_low_setpoint_switch_modeINTEGERIf low PO2 should be switched to automatically.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
ccr_low_setpointREALTarget PO2 when using low setpoint. Units: percent.
ccr_low_setpoint_depthREALDepth to switch to low setpoint in automatic mode. Units: m.
ccr_high_setpoint_switch_modeINTEGERIf high PO2 should be switched to automatically.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
ccr_high_setpointREALTarget PO2 when using high setpoint. Units: percent.
ccr_high_setpoint_depthREALDepth to switch to high setpoint in automatic mode. Units: m.
gas_consumption_displayINTEGERType of gas consumption rate to display. Some values are only valid if tank volume is known.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
up_key_enabledINTEGERIndicates whether the up key is enabled during dives.Stored in SQLite as INTEGER: 0 = false, 1 = true.
dive_soundsINTEGERSounds and vibration enabled or disabled in-dive.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
last_stop_multipleREALUsually 1.0/1.5/2.0 representing 3/4.5/6m or 10/15/20ft.
no_fly_time_modeINTEGERIndicates which guidelines to use for no-fly surface interval.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.

DiveSummary

Summary statistics for a single dive -- depth, surface interval, and CNS/gas-loading figures.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
reference_mesgINTEGERReference Message.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
reference_indexINTEGERIndex of the specific referenced record (paired with reference_mesg, which identifies its message type).
avg_depthREALAverage deph. 0 if above water,. Units: m.
max_depthREALMaximum depth. 0 if above water,. Units: m.
surface_intervalINTEGERSurface interval. Time since end of last dive,. Units: s.
start_cnsINTEGERCNS oxygen toxicity load at the start of the dive, as a percentage.
end_cnsINTEGERCNS oxygen toxicity load at the end of the dive, as a percentage.
start_n2INTEGERNitrogen loading at the start of the dive, as a percentage.
end_n2INTEGERNitrogen loading at the end of the dive, as a percentage.
o2_toxicityINTEGEROxygen toxicity load, in OTUs (oxygen toxicity units).
dive_numberINTEGERNumber identifying this dive within a multi-dive activity file, when applicable.
bottom_timeREALTime spent at depth during the dive, in seconds.
avg_pressure_sacREALAverage pressure. Average pressure-based surface air consumption. Units: bar/min.
avg_volume_sacREALAverage volume. Average volumetric surface air consumption. Units: L/min.
avg_rmvREALAverage RMV. Average respiratory minute volume.
descent_timeREALDescent time. Time to reach deepest level stop. Units: s.
ascent_timeREALAscent time. Time after leaving bottom until reaching surface. Units: s.
avg_ascent_rateREALAverage ascent time. Average ascent rate, not including descents or stops. Units: m/s.
avg_descent_rateREALAverage descent rate. Average descent rate, not including ascents or stops. Units: m/s.
max_ascent_rateREALMaximum ascent rate. Maximum ascent rate. Units: m/s.
max_descent_rateREALMaximum descent rate. Maximum descent rate. Units: m/s.
hang_timeREALHang time. Time spent neither ascending nor descending. Units: s.

Event

event_id: Represents significant occurrences during an activity such as start, stop, or alerts.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
event_idINTEGERFIT event code identifying what triggered this record, such as a timer start/stop or a lap marker.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
event_typeINTEGERFIT event-type code describing how the event occurred, such as start, stop, or marker.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
data16INTEGERData 16.
dataINTEGEREvent-specific data value; its meaning depends on the event and event type.
timer_triggerINTEGERWhat triggered this timer-related event, such as a manual button press or auto-detected activity.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
course_point_indexINTEGERIndex of the course point this event corresponds to, when triggered by reaching one.
battery_levelREALRaw battery voltage reading reported by this event, in volts -- distinct from the percentage-based battery_level fields on DeviceInfo/Record.
virtual_partner_speedREALVirtial partner speed. Units: m/s.
heart_rate_high_alertINTEGERHR high alert.
heart_rate_low_alertINTEGERHR low alert.
speed_high_alertREALSpeed threshold for a high-speed alert, in meters per second.
speed_low_alertREALSpeed threshold for a low-speed alert, in meters per second.
cad_high_alertINTEGERCadence high alert. Units: rpm.
cad_low_alertINTEGERCadence low alert. Units: rpm.
power_high_alertINTEGERPower threshold for a high-power alert, in watts.
power_low_alertINTEGERPower high alert. Units: watts.
time_duration_alertREALTime threshold for a duration-based alert, in seconds.
distance_duration_alertREALDistance threshold for a distance-based alert, in meters.
calorie_duration_alertINTEGERCalorie threshold configured for a calorie-based duration alert, in kilocalories.
fitness_equipment_stateINTEGERState of the connected fitness equipment, such as ready, in use, or paused.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
sport_pointINTEGERPoints scored, for sports that use a running point total (populated via the sport_point subfield alongside score/opponent_score).
gear_change_dataINTEGERGear change data,.
rider_positionINTEGERIndicates the rider position value.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
comm_timeoutINTEGERCommunication timeout that triggered this event, such as losing connection to a paired sensor.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
dive_alertINTEGERType of dive alert that triggered this event, such as an ascent-rate or decompression warning.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
auto_activity_detect_durationINTEGERAuto activity detect duraiton. Units: min.
radar_threat_alertINTEGERRadar threat alert. The first byte is the radar_threat_level_max, the second byte is the radar_threat_count, third bytes is the average approach speed, and the 4th byte is the max approach speed.
event_groupINTEGERGroups related events together, distinguishing concurrent event streams (such as separate segments within a multisport session) that share the same event_id and event_type.
scoreINTEGERDo not populate directly. Autogenerated by decoder for sport_point subfield components.
opponent_scoreINTEGERDo not populate directly. Autogenerated by decoder for sport_point subfield components.
front_gear_numberINTEGERFron gear number.
front_gearINTEGERDo not populate directly. Autogenerated by decoder for gear_change subfield components. Number of front teeth.
rear_gear_numberINTEGERRead gear number.
rear_gearINTEGERDo not populate directly. Autogenerated by decoder for gear_change subfield components. Number of rear teeth.
device_indexINTEGERIndex identifying which connected device this data pertains to, matching a device_info record's own device_index.
activity_typeINTEGERActivity Type associated with an auto_activity_detect event.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
start_timestampTEXTTimestamp of when the event started, in ISO8601 format.
auto_activity_detect_start_timestampTEXTTimestamp of when auto-activity-detection started this event, in ISO8601 format.
radar_threat_level_maxINTEGERRadar threat level maximum.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
radar_threat_countINTEGERDo not populate directly. Autogenerated by decoder for threat_alert subfield components.
radar_threat_avg_approach_speedREALRadar threat average approach speed. Units: m/s.
radar_threat_max_approach_speedREALDo not populate directly. Autogenerated by decoder for radar_threat_alert subfield components. Units: m/s.

ExdDataConceptConfiguration

ExdDataConceptConfiguration.

FieldTypeDescription
file_numberINTEGERThe file number.
screen_indexINTEGERIndex of the Connect IQ data-field screen this configuration entry belongs to.
concept_fieldINTEGERConnect IQ data-field concept identifier controlling what kind of data this screen entry displays.
field_idINTEGERConnect IQ data-field identifier assigned to this screen slot.
concept_indexINTEGERIndex of this concept within its data_page, when multiple concepts share the same page.
data_pageINTEGERData page number this concept configuration entry belongs to.
concept_keyINTEGERKey identifying which specific concept (data source) is configured by this entry.
scalingINTEGERScale factor applied to the displayed value.
data_unitsINTEGERUnit this data concept's displayed value is shown in (e.g. miles per hour, degrees Celsius, RPM, beats per minute).
qualifierINTEGERQualifier identifying the variant of this data concept.
descriptorINTEGERIndex of the descriptor string used to label this data concept.
is_signedINTEGERWhether the concept's value should be interpreted as signed rather than unsigned.Stored in SQLite as INTEGER: 0 = false, 1 = true.

ExdDataFieldConfiguration

ExdDataFieldConfiguration.

FieldTypeDescription
file_numberINTEGERThe file number.
screen_indexINTEGERIndex of the Connect IQ data-field screen this configuration entry belongs to.
concept_fieldINTEGERConnect IQ data-field concept identifier controlling what kind of data this screen entry displays.
field_idINTEGERConnect IQ data-field identifier assigned to this screen slot.
concept_countINTEGERNumber of concepts configured for this data field.
display_typeINTEGERDisplay format used for this Connect IQ data field, such as numeric or text.
titleTEXTTitle text shown for this data field configuration.Normally a single-element array; the FIT profile permits more than one.

ExdScreenConfiguration

ExdScreenConfiguration.

FieldTypeDescription
file_numberINTEGERThe file number.
screen_indexINTEGERIndex of the Connect IQ data-field screen this configuration entry belongs to.
field_countINTEGERNumber of fields on the screen.
layoutINTEGERLayout identifier for this data screen.
screen_enabledINTEGERWhether this Connect IQ data screen is enabled for display.Stored in SQLite as INTEGER: 0 = false, 1 = true.

ExerciseTitle

A user-defined exercise name, referenced by workout steps whose exercise_category/exercise_name fall in the user-defined range.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
exercise_categoryINTEGERRaw FIT exercise-category code identifying the exercise family, such as Bench Press or Curl (see SetX's raw_category_garmin_key for its localized-name resolution).
exercise_nameINTEGERRaw FIT exercise-name code identifying the specific exercise variant within its category (see SetX's raw_category_subtype_garmin_key for its localized-name resolution).
workout_step_nameTEXTCustom display name for this user-defined exercise, referenced by workout steps whose exercise_category/exercise_name fall in the user-defined range.Normally a single-element array; the FIT profile permits more than one.

FieldCapabilities

Defines constraints on fields within messages, including counts and types.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
fileINTEGERFIT file type this capability entry applies to.
mesg_numberINTEGERMessage Number.
field_numberINTEGERFIT field number (within mesg_number) this capability entry applies to.
CountINTEGERNumber of instances of this field supported by the device.

FieldDescription

FieldDescription.

FieldTypeDescription
file_numberINTEGERThe file number.
developer_data_indexINTEGERIndex identifying which DeveloperDataId source this field description belongs to.
field_definition_numberINTEGERFIT field-definition number this developer field is assigned within its message.
fit_base_type_idINTEGERFIT base type (such as uint8 or sint16) this developer field's raw bytes should be interpreted as.
field_nameTEXTDisplay name for this developer field.Normally a single-element array; the FIT profile permits more than one.
arrayINTEGERNumber of elements if this developer field holds an array of values.
componentsTEXTNative fields this developer field expands into, if any.
scaleINTEGERScale factor applied when decoding this developer field.
offsetINTEGERValue offset applied when decoding this developer field.
unitsTEXTUnit of measurement for this developer field's values.Normally a single-element array; the FIT profile permits more than one.
bitsTEXTBit-field layout of this developer field's value.
accumulateTEXTWhether values for this developer field accumulate across messages rather than overwrite the previous value.
fit_base_unit_idINTEGERFIT base unit this developer field's values are measured in, when applicable.
native_mesg_numberINTEGERNative Message Number.
native_field_numberINTEGERFIT field number of the native (built-in) field this developer field mirrors or extends, when applicable.

FileCapabilities

FileCapabilities defines limits and properties for files that the device can store.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
typeINTEGERThe type.
flagsINTEGERThe flags.
directoryTEXTThe directory.
max_countINTEGERThe maximum count.
max_sizeINTEGERMaximum size in bytes.

FileCreator

Is the record describing the device and software used to create the FIT file.

FieldTypeDescription
file_numberINTEGERThe file number.
software_versionINTEGERSoftware or firmware version installed on the device.
hardware_versionINTEGERHardware revision number of the device.

FileID

The record that identifies the file and the device that created it.

FieldTypeDescription
file_numberINTEGER—
typeINTEGERFIT file type identifying what kind of file this is (activity, workout, course, settings, etc.) -- see the FileTypeLookup table for the full code-to-description mapping.
manufacturer_idINTEGERFIT manufacturer code identifying the device maker, such as Garmin or a third-party partner.
product_idINTEGERManufacturer-specific product code identifying the device model; interpreted via garmin_product_id or favero_product_id when the manufacturer defines its own product-code table.
favero_product_idINTEGERFavero-specific product code identifying the device model, valid only when manufacturer_id is Favero Electronics.
garmin_product_idINTEGERGarmin-specific product code identifying the device model, valid only when manufacturer_id is Garmin.
serial_numberINTEGERSerial number of the device, when available.
time_createdTEXTOnly set for files that can be created/erased, in ISO8601 format.
numberINTEGEROnly set for files that are not created/erased.
product_nameTEXTOptional free form string to indicate the devices name or model.
pathTEXTFilesystem path of the source .FIT file.
imported_atTEXTISO8601 timestamp of when this file was imported.

Goal

Goal represents user-defined fitness goals including type, value, and recurrence.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
sport_idINTEGERSport-type code identifying the sport, such as running or cycling; sub_sport_id narrows this further.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
sub_sport_idINTEGERSub-sport-type code providing a more specific classification within sport_id, such as indoor cycling or trail running.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
start_dateTEXTDate this goal becomes active, in ISO8601 format.
end_dateTEXTDate this goal expires, in ISO8601 format.
typeINTEGERType of goal, such as distance, time, or calories.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
valueINTEGERTarget value for the goal.
repeatINTEGERNumber of times the goal repeats.Stored in SQLite as INTEGER: 0 = false, 1 = true.
target_valueINTEGERTarget numeric value for this goal or workout step; its unit and meaning depend on the paired type field (such as goal_type or duration_type).
recurrenceINTEGERHow the goal recurs, such as daily, weekly, or monthly.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
recurrence_valueINTEGERHow often the goal recurs, in units of the recurrence field (such as every N days or weeks).
enabledINTEGERWhether this goal is enabled.Stored in SQLite as INTEGER: 0 = false, 1 = true.
sourceINTEGERSource of the goal, such as auto-generated or user-created.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.

GpsMetadata

GpsMetadata contains GPS-related data such as position, speed, and heading.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTWhole second part of the timestamp, in ISO8601 format.
timestamp_msINTEGERMillisecond part of the timestamp.
position_latINTEGERLatitude in semicircles.
position_longINTEGERLongitude in semicircles.
enhanced_altitudeREALAltitude at this point, in metres (extended-range GPS-metadata encoding).
enhanced_speedREALSpeed in meters per second, extended-range encoding.
headingREALHeading in degrees.
utc_timestampTEXTUTC time derived from the GPS data, in ISO8601 format, used to correlate UTC to system time if the timestamp of the message is in system time.
velocityTEXTunits: m/s; scale: 100; velocity[0] is lon velocity. velocity[1] is lat velocity. velocity[2] is altitude velocity.Exactly three values: one per axis (longitude, latitude, altitude), in that order.

GyroscopeData

contains raw and calibrated gyroscope sensor readings.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTWhole second part of the timestamp, in ISO8601 format.
timestamp_msINTEGERMillisecond part of the timestamp.
sample_time_offsetTEXTEach time in the array describes the time, in milliseconds, at which the gyroscope sample with the corresponding index was taken. Limited to 30 samples per message; the samples may span across seconds. Array size must match the number of samples in gyro_x, gyro_y, and gyro_z.One value per sample, index-aligned with gyro_x/gyro_y/gyro_z.
gyro_xTEXTunits: counts; These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read.One value per sample, index-aligned with sample_time_offset.
gyro_yTEXTunits: counts; These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read.One value per sample, index-aligned with sample_time_offset.
gyro_zTEXTunits: counts; These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read.One value per sample, index-aligned with sample_time_offset.
calibrated_gyro_xTEXTunits: deg/s; Calibrated gyro reading.One value per sample, index-aligned with sample_time_offset.
calibrated_gyro_yTEXTunits: deg/s; Calibrated gyro reading.One value per sample, index-aligned with sample_time_offset.
calibrated_gyro_zTEXTunits: deg/s; Calibrated gyro reading.One value per sample, index-aligned with sample_time_offset.

Hr

- heart rate.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
fractional_timestampREALFractional-second part of the timestamp, in seconds.
time256REALTime in seconds, encoded at 1/256-second resolution.
filtered_bpmTEXTFiltered heart rate in beats per minute.One value per detected heart-rate event, index-aligned with event_timestamp -- the FIT SDK requires both arrays to have the same number of values in a given message.
event_timestampTEXTTime offset from this message's anchor timestamp at which each heart-rate event was detected. units: s; scale: 1024.One value per detected heart-rate event, index-aligned with filtered_bpm.
event_timestamp12TEXTAlternate, more compact byte-packed encoding of per-event timestamps, used instead of event_timestamp when the device reports events this way. units: s; scale: 1024.One value per encoded byte of this compact per-event timestamp series; not necessarily the same element count as event_timestamp/filtered_bpm.

HrmProfile

Stores configuration for heart rate monitor sensors.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
enabledINTEGERWhether this heart rate monitor profile is enabled.Stored in SQLite as INTEGER: 0 = false, 1 = true.
hrm_ant_idINTEGERANT device ID of the heart rate monitor paired with this profile.
log_hrvINTEGERWhether heart rate variability (HRV) data is logged for this profile.Stored in SQLite as INTEGER: 0 = false, 1 = true.
hrm_ant_id_trans_typeINTEGERANT transmission type of the heart rate monitor identified by hrm_ant_id.

Hrv

Heart-rate-variability samples -- time between successive heartbeats.

FieldTypeDescription
file_numberINTEGERThe file number.
timeTEXTunits: s; scale: 1000; Time between beats.One value per successive heartbeat interval, in chronological order.

HrvStatusSummary

Rolling summary of heart-rate-variability trends over recent nights, plus an overall HRV status classification (e.g. balanced, low).

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
weekly_averageREALunits: ms; scale: 128; 7 day RMSSD average over sleep.
last_night_averageREALunits: ms; scale: 128; Last night RMSSD average over sleep.
last_night5_min_highREALunits: ms; scale: 128; 5 minute high RMSSD value over sleep.
baseline_low_upperREALunits: ms; scale: 128; 3 week baseline, upper boundary of low HRV status.
baseline_balanced_lowerREALunits: ms; scale: 128; 3 week baseline, lower boundary of balanced HRV status.
baseline_balanced_upperREALunits: ms; scale: 128; 3 week baseline, upper boundary of balanced HRV status.
statusINTEGEROverall HRV status classification.

HrvValue

A single rolling RMSSD (heart-rate-variability) sample.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
valueREAL5-minute rolling RMSSD (Root Mean Square of Successive Differences between heartbeat intervals) -- a standard heart-rate-variability metric. units: ms; scale: 128.

HrZone

HrZone defines heart rate training zones.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERMessage index.
high_bpmINTEGER—. Units: bpm.
heart_rate_zone_nameTEXTUser-assigned name for this heart rate zone.

HsaAccelerometerData

Hsa_accelerometer_data: Raw accelerometer data used for HSA custom data logging.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
timestamp_msINTEGERMillisecond part of the timestamp.
sampling_intervalINTEGERSampling Interval in Milliseconds.
accel_xTEXTunits: mG; scale: 1.024; X-Axis Measurement.One value per sample, spaced sampling_interval milliseconds apart, index-aligned with accel_y/accel_z.
accel_yTEXTunits: mG; scale: 1.024; Y-Axis Measurement.One value per sample, spaced sampling_interval milliseconds apart, index-aligned with accel_x/accel_z.
accel_zTEXTunits: mG; scale: 1.024; Z-Axis Measurement.One value per sample, spaced sampling_interval milliseconds apart, index-aligned with accel_x/accel_y.
timestamp32kTEXT32 kHz timestamp.

HsaBodyBatteryData

Hsa_body_battery_data: Body battery data used for HSA custom data logging.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
processing_intervalINTEGERProcessing interval length in seconds.
levelTEXTunits: percent; Body battery level: [0,100] Blank: -16.One value per sample, spaced processing_interval seconds apart, index-aligned with charged/uncharged.
chargedTEXTBody battery charged value.One value per sample, spaced processing_interval seconds apart, index-aligned with level/uncharged.
unchargedTEXTBody battery uncharged value.One value per sample, spaced processing_interval seconds apart, index-aligned with level/charged.

HsaConfigurationData

Hsa_configuration_data: Configuration data for HSA custom data logging.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
dataTEXTEncoded configuration data. Health SDK use only.One byte per element; length given by data_size.
data_sizeINTEGERsize in bytes of data field.

HsaEvent

Hsa_event: HSA events.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
event_idINTEGEREvent ID. Health SDK use only.

HsaGyroscopeData

Hsa_gyroscope_data:.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
timestamp_msINTEGERMillisecond part of the timestamp.
sampling_intervalINTEGERSampling Interval in 32 kHz timescale. Units: 1/32768 s.
gyro_xTEXTunits: deg/s; scale: 28.57143; X-Axis Measurement.One value per sample, spaced sampling_interval apart, index-aligned with gyro_y/gyro_z.
gyro_yTEXTunits: deg/s; scale: 28.57143; Y-Axis Measurement.One value per sample, spaced sampling_interval apart, index-aligned with gyro_x/gyro_z.
gyro_zTEXTunits: deg/s; scale: 28.57143; Z-Axis Measurement.One value per sample, spaced sampling_interval apart, index-aligned with gyro_x/gyro_y.
timestamp32kTEXT32 kHz timestamp.

HsaHeartRateData

Hsa_heart_rate_data: User's current heart rate data used for HSA custom data logging.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
processing_intervalINTEGERProcessing interval length in seconds.
statusINTEGEROf measurements in buffer - 0 indicates SEARCHING 1 indicates LOCKED.
heart_rateTEXTunits: bpm; scale: 1; Beats / min. Blank: 0.One value per sample, spaced processing_interval seconds apart.

HsaRespirationData

Hsa_respiration_data: User's current respiration data used for HSA custom data logging.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
processing_intervalINTEGERProcessing interval length in seconds.
respiration_rateTEXTRespiration rate, in breaths per minute (valid range 1-100).One value per sample, spaced processing_interval seconds apart. Sentinel values outside the valid range: 255 = invalid, 254 = excess motion, 253 = off-wrist, 252 = not available, 2.4 = blank. units: breaths/min; scale: 100.

HsaSpo2Data

Hsa_spo2_data: User's current SpO2 data used for HSA custom data logging.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
processing_intervalINTEGERProcessing interval length in seconds.
reading_spo2TEXTunits: percent; SpO2 Reading: [70,100] Blank: 240.One value per sample, spaced processing_interval seconds apart, index-aligned with confidence.
confidenceTEXTSpO2 confidence: [0,254].One value per sample, spaced processing_interval seconds apart, index-aligned with reading_spo2.

HsaStepData

Hsa_step_data: User's current daily step data used for HSA custom data logging.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
processing_intervalINTEGERProcessing interval length in seconds.
stepsTEXTunits: steps; scale: 1; Total step sum.One value per sample, spaced processing_interval seconds apart.

HsaStressData

Hsa_stress_data: User's current stress data used for HSA custom data logging.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
processing_intervalINTEGERProcessing interval length in seconds.
StressLevelTEXTunits: s; scale: 1; Stress Level: [0,100] Off wrist: -1 Excess motion: -2 Not enough data: -3 Recovering from exercise: -4 Unidentified: -5 Blank: -16.One value per sample, spaced processing_interval seconds apart.

HsaWristTemperatureData

Hsa_wrist_temperature_data: Wrist temperature data used for HSA custom data logging.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
processing_intervalINTEGERProcessing interval length in seconds.
valueTEXTunits: degC; scale: 1000; Wrist temperature reading.One value per sample, spaced processing_interval seconds apart.

Jump

A single detected jump (e.g. ski or snowboard), including its distance, height, rotation count, airtime, and a composite score.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
distanceREALHorizontal distance covered by the jump, in meters.
heightREALheight of the jump in meters.
rotationsINTEGERNumber of rotations completed during the jump.
hang_timeREALTime spent airborne during the jump, in seconds.
scoreREALA score for a jump calculated based on hang time, rotations, and distance.
position_latINTEGERLatitude in semicircles.
position_longINTEGERLongitude in semicircles.
speedREALspeed at takeoff, in meters per second.
enhanced_speedREALspeed in meters per second, extended-range encoding.

Lap

contains data for a single lap within a session.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
timestampTEXTIn ISO8601 format.
event_idINTEGERFIT event code identifying what triggered this record, such as a timer start/stop or a lap marker.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
event_typeINTEGERFIT event-type code describing how the event occurred, such as start, stop, or marker.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
start_timeTEXTStart time of the lap, in ISO8601 format.
start_position_latINTEGERLatitude of the start position, in semicircles.
start_position_longINTEGERLongitude of the start position, in semicircles.
end_position_latINTEGERLatitude of the end position, in semicircles.
end_position_longINTEGERLongitude of the end position, in semicircles.
total_elapsed_timeREALTime (includes pauses). Units: s.
total_timer_timeREALTimer Time (excludes pauses). Units: s.
total_distanceREALTotal distance in meters.
total_cyclesINTEGERTotal cycles, such as pedal revolutions or steps.
total_stridesINTEGERTotal number of strides.
total_strokesINTEGERTotal number of strokes.
total_caloriesINTEGERTotal calories burned, in kilocalories.
total_fat_caloriesINTEGERTotal calories burned from fat, in kilocalories.
avg_speedREALAverage speed in meters per second.
max_speedREALMaximum speed in meters per second.
avg_heart_rateINTEGERAverage heart rate in beats per minute.
max_heart_rateINTEGERMaximum heart rate in beats per minute.
avg_cadenceINTEGERAverage cadence, in revolutions per minute -- computed by the recording device as total_cycles / total_timer_time, or total_cycles / total_elapsed_time, depending on a device setting not otherwise captured in this data.
avg_running_cadenceINTEGERAverage running cadence in strides per minute.
max_cadenceINTEGERMaximum cadence in revolutions per minute.
max_running_cadenceINTEGERMaximum running cadence in strides per minute.
avg_powerINTEGERAverage power, in watts -- computed by the recording device from its own internal power total, divided by total_timer_time or total_elapsed_time depending on a device setting; neither the power total nor the setting is otherwise captured in this data.
max_powerINTEGERMaximum power in watts.
total_ascentINTEGERTotal ascent in meters.
total_descentINTEGERTotal descent in meters.
intensityINTEGERIntensity classification of the lap, such as active or rest.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
lap_triggerINTEGERWhat triggered the end of this lap, such as a manual button press or auto-lap distance.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
sport_idINTEGERSport-type code identifying the sport, such as running or cycling; sub_sport_id narrows this further.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
event_groupINTEGERGroups related events together, distinguishing concurrent event streams (such as separate segments within a multisport session) that share the same event_id and event_type.
number_lengthsINTEGER# of lengths of swim pool.
normalized_powerINTEGERNormalized power in watts.
left_right_balanceINTEGERLeft/right power balance as a percentage, encoded per the FIT left_right_balance_100 type (high bit flags the measurement source).
first_length_indexINTEGERIndex of the first length (in the parent Session's swim lengths) belonging to this lap.
avg_stroke_distanceREALAverage distance covered per stroke, in meters.
swim_strokeINTEGERSwimming stroke type used during this lap.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
sub_sport_idINTEGERSub-sport-type code providing a more specific classification within sport_id, such as indoor cycling or trail running.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
number_active_lengthsINTEGER# of active lengths of swim pool.
total_workINTEGERTotal work performed, in joules.
avg_altitudeREALAverage altitude during this lap, in metres.
max_altitudeREALMaximum altitude reached during this lap, in metres.
gps_accuracyINTEGEREstimated GPS position accuracy, in meters.
avg_gradeREALAverage grade (slope) as a percentage.
avg_pos_gradeREALAverage ascending grade, as a percentage.
avg_neg_gradeREALAverage descending grade, as a percentage.
max_pos_gradeREALSteepest ascending grade, as a percentage.
max_neg_gradeREALSteepest descending grade, as a percentage.
avg_temperatureINTEGERAverage temperature in degrees Celsius.
max_temperatureINTEGERMaximum temperature in degrees Celsius.
total_moving_timeREALTotal time spent moving, in seconds.
avg_pos_vertical_speedREALAverage ascending vertical speed, in meters per second.
avg_neg_vertical_speedREALAverage descending vertical speed, in meters per second.
max_pos_vertical_speedREALMaximum ascending vertical speed, in meters per second.
max_neg_vertical_speedREALMaximum descending vertical speed, in meters per second.
time_in_heart_rate_zoneTEXTTotal time spent in each heart-rate training zone during this lap. units: s; scale: 1000.One value per zone; the zone boundaries themselves are recorded in this activity's ZonesTarget/TimeInZone record, not here.
time_in_speed_zoneTEXTTotal time spent in each speed training zone during this lap. units: s; scale: 1000.One value per zone; the zone boundaries themselves are recorded in this activity's ZonesTarget/TimeInZone record, not here.
time_in_cadence_zoneTEXTTotal time spent in each cadence training zone during this lap. units: s; scale: 1000.One value per zone; the zone boundaries themselves are recorded in this activity's ZonesTarget/TimeInZone record, not here.
time_in_power_zoneTEXTTotal time spent in each power training zone during this lap. units: s; scale: 1000.One value per zone; the zone boundaries themselves are recorded in this activity's ZonesTarget/TimeInZone record, not here.
repetition_numberINTEGEROrdinal position of this lap within a repeated/looped sequence of laps.
min_altitudeREALMinimum altitude reached during this lap, in metres.
min_heart_rateINTEGERMinimum heart rate in beats per minute.
workout_step_indexINTEGERIndex of the workout_step (in the parent Workout) that produced this record, when generated by a structured workout.
opponent_scoreINTEGEROpponent's score in games or sports with an adversarial scoring system, such as squash or racquetball.
stroke_countTEXTNumber of times each swimming stroke type was used.One value per stroke_type enum value.
zone_countTEXTCount recorded for each zone.One value per zone.
avg_vertical_oscillationREALAverage vertical oscillation in millimeters.
avg_stance_time_percentREALAverage ground contact time as a percentage of the stride cycle.
avg_stance_timeREALAverage ground contact time per step, in milliseconds.
avg_fractional_cadenceREALFractional part of the avg_cadence. Units: rpm.
max_fractional_cadenceREALFractional part of the max_cadence. Units: rpm.
total_fractional_cyclesREALFractional part of the total_cycles. Units: cycles.
player_scoreINTEGERThis user's own score in games or sports with a scoring system, such as squash or racquetball.
avg_total_hemoglobin_concTEXTunits: g/dL; scale: 100; Avg saturated and unsaturated hemoglobin.One value per connected muscle-oxygen (SmO2) sensor, when more than one is paired.
min_total_hemoglobin_concTEXTunits: g/dL; scale: 100; Min saturated and unsaturated hemoglobin.One value per connected muscle-oxygen (SmO2) sensor, when more than one is paired.
max_total_hemoglobin_concTEXTunits: g/dL; scale: 100; Max saturated and unsaturated hemoglobin.One value per connected muscle-oxygen (SmO2) sensor, when more than one is paired.
avg_saturated_hemoglobin_percentTEXTunits: %; scale: 10; Avg percentage of hemoglobin saturated with oxygen.One value per connected muscle-oxygen (SmO2) sensor, when more than one is paired.
min_saturated_hemoglobin_percentTEXTunits: %; scale: 10; Min percentage of hemoglobin saturated with oxygen.One value per connected muscle-oxygen (SmO2) sensor, when more than one is paired.
max_saturated_hemoglobin_percentTEXTunits: %; scale: 10; Max percentage of hemoglobin saturated with oxygen.One value per connected muscle-oxygen (SmO2) sensor, when more than one is paired.
avg_left_torque_effectivenessREALAverage left torque effectiveness, as a percentage.
avg_right_torque_effectivenessREALAverage right torque effectiveness, as a percentage.
avg_left_pedal_smoothnessREALAverage left pedal smoothness, as a percentage.
avg_right_pedal_smoothnessREALAverage right pedal smoothness, as a percentage.
avg_combined_pedal_smoothnessREALAverage combined pedal smoothness, as a percentage.
time_standingREALTotal time spent in the standing position. Units: s.
stand_countINTEGERNumber of transitions to the standing state.
avg_left_pcoINTEGERAverage left platform center offset. Units: mm.
avg_right_pcoINTEGERAverage right platform center offset. Units: mm.
avg_left_power_phaseTEXTAverage left-leg pedal-stroke power-phase angles, in degrees of crank rotation -- the portion of each pedal stroke where meaningful force is applied. Each of the 4 array elements is a different measurement of that phase (start angle, end angle, arc length, center), per power_phase_type.One value per power_phase_type enum value.
avg_left_power_phase_peakTEXTAs avg_left_power_phase, but for the power phase during this lap's single hardest effort rather than averaged across the whole lap.One value per power_phase_type enum value.
avg_right_power_phaseTEXTAs avg_left_power_phase, for the right leg.One value per power_phase_type enum value.
avg_right_power_phase_peakTEXTAs avg_left_power_phase_peak, for the right leg.One value per power_phase_type enum value.
avg_power_positionTEXTAverage power, in watts, broken out by rider position (seated, standing, or transitioning between them) -- one value per rider_position_type.One value per rider_position_type enum value.
max_power_positionTEXTAs avg_power_position, but the maximum power reached rather than the average.One value per rider_position_type enum value.
avg_cadence_positionTEXTAverage cadence, in revolutions per minute, broken out by rider position (seated, standing, or transitioning between them).One value per rider_position_type enum value.
max_cadence_positionTEXTAs avg_cadence_position, but the maximum cadence reached rather than the average.One value per rider_position_type enum value.
enhanced_avg_speedREALAverage speed in meters per second, extended-range encoding.
enhanced_max_speedREALMaximum speed in meters per second, extended-range encoding.
enhanced_avg_altitudeREALAverage altitude during this lap, in metres (extended-range counterpart to avg_altitude).
enhanced_min_altitudeREALMinimum altitude reached during this lap, in metres (extended-range counterpart to min_altitude).
enhanced_max_altitudeREALMaximum altitude reached during this lap, in metres (extended-range counterpart to max_altitude).
avg_lev_motor_powerINTEGERLev average motor power during lap. Units: watts.
max_lev_motor_powerINTEGERLev maximum motor power during lap. Units: watts.
lev_battery_consumptionREALLev battery consumption during lap. Units: percent.
avg_vertical_ratioREALAverage vertical ratio, as a percentage.
avg_stance_time_balanceREALAverage left/right balance of ground contact time, as a percentage.
avg_step_lengthREALAverage step length in millimeters.
avg_vamREALAverage ascent speed (VAM) in meters per second.
avg_depthREAL0 if above water. Units: m.
max_depthREAL0 if above water. Units: m.
min_temperatureINTEGERMinimum temperature in degrees Celsius.
enhanced_avg_respiration_rateREALAverage respiration rate in breaths per minute.
enhanced_max_respiration_rateREALMaximum respiration rate in breaths per minute.
avg_respiration_rateINTEGERAverage respiration rate during this period, in breaths per minute; superseded by the wider-range enhanced_avg_respiration_rate where present.
max_respiration_rateINTEGERMaximum respiration rate during this period, in breaths per minute; superseded by the wider-range enhanced_max_respiration_rate where present.
total_gritREALThe grit score estimates how challenging a route could be for a cyclist in terms of time spent going over sharp turns or large grade slopes. Units: kGrit.
total_flowREALThe flow score estimates how long distance wise a cyclist deaccelerates over intervals where deacceleration is unnecessary such as smooth turns or small grade angle intervals. Units: Flow.
jump_countINTEGERNumber of jumps detected during this period, such as skiing or snowboarding jumps.
avg_gritREALThe grit score estimates how challenging a route could be for a cyclist in terms of time spent going over sharp turns or large grade slopes. Units: kGrit.
avg_flowREALThe flow score estimates how long distance wise a cyclist deaccelerates over intervals where deacceleration is unnecessary such as smooth turns or small grade angle intervals. Units: Flow.
total_fractional_ascentREALFractional part of total_ascent. Units: m.
total_fractional_descentREALFractional part of total_descent. Units: m.
avg_core_temperatureREALAverage core body temperature in degrees Celsius.
min_core_temperatureREALMinimum core body temperature in degrees Celsius.
max_core_temperatureREALMaximum core body temperature in degrees Celsius.

Length

contains data for a single length in swimming activities.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
timestampTEXTIn ISO8601 format.
event_idINTEGERFIT event code identifying what triggered this record, such as a timer start/stop or a lap marker.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
event_typeINTEGERFIT event-type code describing how the event occurred, such as start, stop, or marker.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
start_timeTEXTStart time of the length, in ISO8601 format.
total_elapsed_timeREALTotal elapsed time, including pauses, in seconds.
total_timer_timeREALTotal timer time, excluding pauses, in seconds.
total_strokesINTEGERTotal number of strokes.
avg_speedREALAverage speed in meters per second.
swim_strokeINTEGERSwimming stroke type used.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
avg_swimming_cadenceINTEGERAverage swimming cadence in strokes per minute.
event_groupINTEGERGroups related events together, distinguishing concurrent event streams (such as separate segments within a multisport session) that share the same event_id and event_type.
total_caloriesINTEGERTotal calories burned, in kilocalories.
length_typeINTEGERClassification of this length, such as active or idle (a rest length between active swimming).The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
player_scoreINTEGERThis user's own score in games or sports with a scoring system, such as squash or racquetball.
opponent_scoreINTEGEROpponent's score in games or sports with an adversarial scoring system, such as squash or racquetball.
stroke_countTEXTNumber of times each swimming stroke type was used.One value per stroke_type enum value.
zone_countTEXTCount recorded for each zone.One value per zone.
enhanced_avg_respiration_rateREALAverage respiration rate in breaths per minute.
enhanced_max_respiration_rateREALMaximum respiration rate in breaths per minute.
avg_respiration_rateINTEGERAverage respiration rate during this period, in breaths per minute; superseded by the wider-range enhanced_avg_respiration_rate where present.
max_respiration_rateINTEGERMaximum respiration rate during this period, in breaths per minute; superseded by the wider-range enhanced_max_respiration_rate where present.

MagnetometerData

contains raw and calibrated magnetometer sensor readings.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTWhole second part of the timestamp, in ISO8601 format.
timestamp_msINTEGERMillisecond part of the timestamp.
sample_time_offsetTEXTEach time in the array describes the time, in milliseconds, at which the magnetometer sample with the corresponding index was taken. Limited to 30 samples per message; the samples may span across seconds. Array size must match the number of samples in mag_x, mag_y, and mag_z.One value per sample, index-aligned with mag_x/mag_y/mag_z.
mag_xTEXTunits: counts; These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read.One value per sample, index-aligned with sample_time_offset.
mag_yTEXTunits: counts; These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read.One value per sample, index-aligned with sample_time_offset.
mag_zTEXTunits: counts; These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read.One value per sample, index-aligned with sample_time_offset.
calibrated_mag_xTEXTunits: G; Calibrated Magnetometer reading.One value per sample, index-aligned with sample_time_offset.
calibrated_mag_yTEXTunits: G; Calibrated Magnetometer reading.One value per sample, index-aligned with sample_time_offset.
calibrated_mag_zTEXTunits: G; Calibrated Magnetometer reading.One value per sample, index-aligned with sample_time_offset.

MaxMetData

Max_met_data:.

FieldTypeDescription
file_numberINTEGERThe file number.
update_timeTEXTTime maxMET and vo2 were calculated, in ISO8601 format.
vo2_maxREALEstimated VO2 max, in milliliters per kilogram per minute.
sport_idINTEGERSport-type code identifying the sport, such as running or cycling; sub_sport_id narrows this further.
sub_sport_idINTEGERSub-sport-type code providing a more specific classification within sport_id, such as indoor cycling or trail running.
max_met_categoryINTEGERCategory of activity used when estimating max MET/VO2max, such as running or cycling.
calibrated_dataINTEGERIndicates if calibrated data was used in the calculation.Stored in SQLite as INTEGER: 0 = false, 1 = true.
heart_rate_sourceINTEGERIndicates if the estimate was obtained using a chest strap or wrist heart rate.
speed_sourceINTEGERIndidcates if the estimate was obtained using onboard GPS or connected GPS.

MemoGlob

Memo_glob:.

FieldTypeDescription
file_numberINTEGERThe file number.
part_indexINTEGERSequence number of memo blocks.
memoTEXTDeprecated. Use data field.One byte per element of this deprecated raw byte array.
mesg_numberINTEGERMessage Number of the parent message.
parent_indexINTEGERIndex of mesg that this glob is associated with.
field_numberINTEGERField within the parent that this glob is associated with.
dataTEXTBlock of utf8 bytes. Note, mutltibyte characters may be split across adjoining memo_glob messages.One byte per element of this UTF-8 byte block.

MesgCapabilities

Specifies constraints on message types and counts within a FIT file.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
fileINTEGERThe file number.
mesg_numberINTEGERThe message number.
count_typeINTEGERThe count type.
CountINTEGERNumber of instances of this message supported by the device.
number_per_fileINTEGERNum per file.
max_per_fileINTEGERMaximum number of instances of this message type supported per file.
max_per_file_typeINTEGERHow max_per_file's limit is scoped, such as per file, per file and sport, or per file and sport and sub-sport.

MetZone

Defines metabolic equivalent zones for estimating energy expenditure.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
high_bpmINTEGERUpper boundary of this MET zone, in beats per minute.
caloriesREALCalorie-burn threshold for this MET zone, in kilocalories.
fat_caloriesREALRate of calories burned from fat metabolism while in this MET zone. Units: kcal / min.

Monitoring

A periodic wellness/activity-monitoring log entry -- accumulated calories, distance, cycles, and steps for one logging interval.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format. Must align to logging interval, for example, time must be 00:00:00 for daily log.
device_indexINTEGERAssociates this data to device_info message. Not required for file with single device (sensor).
caloriesINTEGERAccumulated total calories. Maintained by MonitoringReader for each activity_type. See SDK documentation.
distanceREALAccumulated distance. Maintained by MonitoringReader for each activity_type. See SDK documentation. Units: m.
cyclesREALAccumulated cycles. Maintained by MonitoringReader for each activity_type. See SDK documentation.
stepsINTEGERTotal step count during the logging interval.
strokesREALAccumulated stroke count during the logging interval.
active_timeREALActive time in seconds.
activity_typeINTEGERFIT activity-type code classifying the kind of activity this sample represents, such as walking, running, or sleeping.
activity_subtypeINTEGERFIT activity-subtype code providing a more specific classification within activity_type.
activity_levelINTEGERIntensity level of the tracked activity, such as low, medium, or high.
distance16INTEGERLow 16 bits of the cumulative distance; combine with the matching distance field to reconstruct the full value.
cycles16INTEGERLow 16 bits of the cumulative cycle count; combine with the matching cycles field to reconstruct the full value.
active_time16INTEGERLow 16 bits of the active-time counter; combine with the matching active-time field to reconstruct the full value.
local_timestampTEXTIn ISO8601 format. Must align to logging interval, for example, time must be 00:00:00 for daily log.
temperatureREALAvg temperature during the logging interval ended at timestamp. Units: C.
temperature_minREALMin temperature during the logging interval ended at timestamp.
temperature_maxREALMax temperature during the logging interval ended at timestamp. Units: C.
activity_timeTEXTunits: minutes; Indexed using minute_activity_level enum.One value per minute_activity_level enum value.
active_caloriesINTEGERActive calories burned, in kilocalories.
current_activity_type_intensityINTEGERIndicates single type / intensity for duration since last monitoring message.
timestamp_min8TEXTLow bits of the timestamp, in minutes; combine with the matching timestamp field to reconstruct the full value.
timestamp16TEXTLow bits of the timestamp; combine with the matching timestamp field to reconstruct the full value.
heart_rateINTEGERHeart rate in beats per minute.
intensityREALActivity intensity level during the logging interval.
duration_minINTEGERduration in minutes.
durationINTEGERLength of the logging interval, in seconds.
ascentREALAccumulated ascent in meters during the logging interval.
descentREALAccumulated descent in meters during the logging interval.
moderate_activity_minutesINTEGERMinutes spent in moderate-intensity activity.
vigorous_activity_minutesINTEGERMinutes spent in vigorous-intensity activity.
pushesINTEGERWheelchair pushes recorded in this monitoring period.

MonitoringHrData

Monitoring_hr_data:.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format. Must align to logging interval, for example, time must be 00:00:00 for daily log.
resting_heart_rateINTEGER7-day rolling average. Units: bpm.
current_day_resting_heart_rateINTEGERRHR for today only. (Feeds into 7-day average). Units: bpm.

MonitoringInfo

Monitoring_info:.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
local_timestampTEXTTimestamp epoch expressed in local time, in ISO8601 format, used to convert activity timestamps to local time if the device does not support time zone and daylight savings time correction.
activity_typeTEXTFIT activity-type codes this file tracks calorie/distance conversion factors for; indexes cycles_to_distance and cycles_to_calories.One value per tracked activity type; its own array order is the index cycles_to_distance and cycles_to_calories are aligned to.
cycles_to_distanceTEXTunits: m/cycle; scale: 5000; Indexed by activity_type.One value per element of activity_type, index-aligned with it.
cycles_to_caloriesTEXTunits: kcal/cycle; scale: 5000; Indexed by activity_type.One value per element of activity_type, index-aligned with it.
resting_metabolic_rateINTEGEREstimated calories burned per day at rest (basal metabolic rate). Units: kcal / day.

NapEvent

Nap Event record.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
timestampTEXTIn ISO8601 format.
start_timeTEXTStart of the nap period, in ISO8601 format.
start_timezone_offsetINTEGERTimezone offset at start of the nap period. Units: minutes.
end_timeTEXTEnd of the nap period, in ISO8601 format.
end_timezone_offsetINTEGERTimezone offset at end of the nap period. Units: minutes.
feedbackINTEGERThe device's assessment of this nap's timing and duration relative to sleep need and jetlag state (e.g. ideal timing, late timing, or a duration mismatch).
is_deletedINTEGERWhether this nap event has been deleted.Stored in SQLite as INTEGER: 0 = false, 1 = true.
sourceINTEGERHow this nap was recorded -- detected automatically by the device, entered manually on the device, or entered manually via Garmin Connect.
update_timestampTEXTtimestamp this record was last updated, in ISO8601 format.

NmeaSentence

Stores raw NMEA sentences from GPS devices.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
timestamp_msINTEGERFractional part of timestamp, added to timestamp. Units: ms.
sentenceTEXTNMEA sentence.

ObdiiData

contains vehicle diagnostic data captured during an activity.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTTime the message was output, in ISO8601 format.
timestamp_msINTEGERFractional part of timestamp, added to timestamp. Units: ms.
time_offsetTEXTunits: ms; Offset of PID reading [i] from start_timestamp+start_timestamp_ms. Readings may span across seconds.One value per PID reading, index-aligned with raw_data.
pidINTEGERParameter ID.
raw_dataTEXTRaw parameter data.One value per PID reading, index-aligned with time_offset/system_time.
pid_data_sizeTEXTOptional, data size of PID[i]. If not specified refer to SAE J1979.One value per PID reading, index-aligned with raw_data.
system_timeTEXTSystem time associated with sample expressed in ms, can be used instead of time_offset. There will be a system_time value for each raw_data element. For multibyte pids the system_time is repeated.One value per raw_data element, index-aligned with it.
start_timestampTEXTtimestamp of first sample recorded in the message, in ISO8601 format. Used with time_offset to generate time of each sample.
start_timestamp_msINTEGERFractional part of start_timestamp. Units: ms.

OhrSettings

Configures optical heart rate sensor settings.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
enabledINTEGERWhether the optical heart rate sensor is enabled.

OneDSensorCalibration

Stores calibration data for 1D sensors such as barometers.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTWhole second part of the timestamp, in ISO8601 format.
sensor_typeINTEGERIndicates which sensor the calibration is for.
calibration_factorINTEGERCalibration factor used to convert from raw ADC value to degrees, g, etc.
baro_cal_factorINTEGERBarometer calibration factor. Units: Pa.
calibration_divisorINTEGERCalibration factor divisor. Units: counts.
level_shiftINTEGERLevel shift value used to shift the ADC value back into range.
offset_calINTEGERInternal Calibration factor.

PowerZone

Defines power training zones.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
high_valueINTEGERUpper boundary of this power zone, in watts.
NameTEXTUser-assigned name for this power zone.

RawBbi

Raw_bbi: Raw Beat-to-Beat Interval values.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
timestamp_msINTEGERMillisecond part of the timestamp.
dataTEXT1 bit for gap indicator, 1 bit for quality indicator, and 14 bits for Beat-to-Beat interval values in whole-integer millisecond resolution.One value per beat interval, index-aligned with time/quality/gap.
timeTEXTunits: ms; Array of millisecond times between beats.One value per beat interval, index-aligned with data/quality/gap.
qualityTEXT1 = high confidence. 0 = low confidence. N/A when gap = 1.One value per beat interval, index-aligned with data/time/gap.
gapTEXT1 = gap (time represents ms gap length). 0 = BBI data.One value per beat interval, index-aligned with data/time/quality.

Record

Is the primary data message containing timestamped sensor readings such as position, speed, and heart rate.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
position_latINTEGERLatitude in semicircles.
position_longINTEGERLongitude in semicircles.
altitudeREALAltitude at this point, in metres.
heart_rateINTEGERHeart rate in beats per minute.
cadenceINTEGERcadence in revolutions per minute.
distanceREALCumulative distance covered so far, in meters.
speedREALspeed in meters per second.
powerINTEGERpower in watts.
compressed_speed_distanceTEXTSpeed and distance for this record, packed into a compact byte encoding rather than two separate fields. units: m/s,m; scale: 100,16.Not a per-sample series: a small fixed-size packed byte array decoding to exactly two values (speed, then distance), one scale factor per decoded value.
gradeREALgrade (slope) as a percentage.
resistanceINTEGERRelative. 0 is none 254 is Max.
time_from_courseREALTime ahead of or behind the course pace, in seconds.
cycle_lengthREALLength of one cycle, such as one pedal revolution or stride, in meters.
temperatureINTEGERtemperature in degrees Celsius.
speed1sTEXTunits: m/s; scale: 16; speed at 1s intervals. timestamp field indicates time of last array element.One value per second; the last element's time is this record's own timestamp field.
cyclesINTEGERTotal cycles at this point, such as pedal revolutions or steps.
total_cyclesINTEGERTotal cycles, such as pedal revolutions or steps.
compressed_accumulated_powerINTEGERAccumulated power in watts, compressed encoding.
accumulated_powerINTEGERAccumulated power in watts.
left_right_balanceINTEGERLeft/right power balance as a percentage, encoded per the FIT left_right_balance_100 type (high bit flags the measurement source).
gps_accuracyINTEGEREstimated GPS position accuracy, in meters.
vertical_speedREALVertical speed in meters per second.
caloriesINTEGERcalories burned to this point in the activity, in kilocalories.
vertical_oscillationREALVertical oscillation in millimeters.
stance_time_percentREALGround contact time as a percentage of the stride cycle.
stance_timeREALGround contact time per step, in milliseconds.
activity_typeINTEGERFIT activity-type code classifying the kind of activity this sample represents, such as walking, running, or sleeping.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
left_torque_effectivenessREALLeft torque effectiveness, as a percentage.
right_torque_effectivenessREALRight torque effectiveness, as a percentage.
left_pedal_smoothnessREALLeft pedal smoothness, as a percentage.
right_pedal_smoothnessREALRight pedal smoothness, as a percentage.
combined_pedal_smoothnessREALCombined pedal smoothness, as a percentage.
time128REALElapsed time in seconds, encoded at 1/128-second resolution.
stroke_typeINTEGERSwimming stroke type recorded for this sample.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
zoneINTEGERHeart rate zone at this point.
ball_speedREALBall speed in meters per second.
cadence256REALLog cadence and fractional cadence for backwards compatability. Units: rpm.
fractional_cadenceREALFractional part of the cadence reading, in revolutions per minute.
total_hemoglobin_concREALTotal saturated and unsaturated hemoglobin. Units: g/dL.
total_hemoglobin_conc_minREALMin saturated and unsaturated hemoglobin.
total_hemoglobin_conc_maxREALMax saturated and unsaturated hemoglobin. Units: g/dL.
saturated_hemoglobin_percentREALPercentage of hemoglobin saturated with oxygen. Units: %.
saturated_hemoglobin_percent_minREALMin percentage of hemoglobin saturated with oxygen.
saturated_hemoglobin_percent_maxREALMax percentage of hemoglobin saturated with oxygen. Units: %.
device_indexINTEGERIndex identifying which connected device this data pertains to, matching a device_info record's own device_index.
left_pcoINTEGERLeft platform center offset. Units: mm.
right_pcoINTEGERRight platform center offset. Units: mm.
left_power_phaseTEXTunits: degrees; scale: 0.7111111; Left power phase angles. Data value indexes defined by power_phase_type.One value per power_phase_type enum value.
left_power_phase_peakTEXTunits: degrees; scale: 0.7111111; Left power phase peak angles. Data value indexes defined by power_phase_type.One value per power_phase_type enum value.
right_power_phaseTEXTunits: degrees; scale: 0.7111111; Right power phase angles. Data value indexes defined by power_phase_type.One value per power_phase_type enum value.
right_power_phase_peakTEXTunits: degrees; scale: 0.7111111; Right power phase peak angles. Data value indexes defined by power_phase_type.One value per power_phase_type enum value.
enhanced_speedREALspeed in meters per second, extended-range encoding.
enhanced_altitudeREALAltitude at this point, in metres (extended-range counterpart to altitude).
battery_socREALLev battery state of charge. Units: percent.
motor_powerINTEGERLev motor power. Units: watts.
vertical_ratioREALVertical ratio, as a percentage.
stance_time_balanceREALLeft/right balance of ground contact time, as a percentage.
step_lengthREALStep length in millimeters.
cycle_length16REALSupports larger cycle sizes needed for paddlesports. Max cycle size: 655.35.
absolute_pressureINTEGERIncludes atmospheric pressure. Units: Pa.
depthREAL0 if above water. Units: m.
next_stop_depthREAL0 if above water. Units: m.
next_stop_timeINTEGERTime until the next decompression stop, in seconds.
time_to_surfaceINTEGEREstimated time to safely surface from the dive, in seconds.
ndl_timeINTEGERNo-decompression limit remaining, in seconds.
cns_loadINTEGERCentral nervous system oxygen toxicity load, as a percentage.
n2_loadINTEGERNitrogen loading, as a percentage.
respiration_rateINTEGERRespiration rate in breaths per minute.
enhanced_respiration_rateREALRespiration rate in breaths per minute, extended-range encoding.
gritREALThe grit score estimates how challenging a route could be for a cyclist in terms of time spent going over sharp turns or large grade slopes.
flowREALThe flow score estimates how long distance wise a cyclist deaccelerates over intervals where deacceleration is unnecessary such as smooth turns or small grade angle intervals.
current_stressREALCurrent Stress value.
ebike_travel_rangeINTEGEREstimated remaining e-bike range, in kilometers.
ebike_battery_levelINTEGERE-bike battery level as a percentage.
ebike_assist_modeINTEGERThe e-bike's current assist-power mode/level, as reported by the bike's own sensor. Units: depends on sensor.
ebike_assist_level_percentINTEGERE-bike motor assist level as a percentage.
air_time_remainingINTEGEREstimated remaining air time in seconds.
pressure_sacREALPressure-based surface air consumption. Units: bar/min.
volume_sacREALVolumetric surface air consumption. Units: L/min.
rmvREALRespiratory minute volume.
ascent_rateREALRate of ascent in meters per second.
po2REALCurrent partial pressure of oxygen. Units: percent.
core_temperatureREALCore body temperature in degrees Celsius.

RespirationRate

Respiration rate in breaths per minute.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
respiration_rateREALBreaths * 100 /min, -300 indicates invalid, -200 indicates large motion, -100 indicates off wrist.

Schedule

A scheduled workout or course, and whether it has been started.

FieldTypeDescription
file_numberINTEGERThe file number.
manufacturer_idINTEGERCorresponds to file_id of scheduled workout / course.
product_idINTEGERCorresponds to file_id of scheduled workout / course.
favero_product_idINTEGERFavero-specific product code identifying the device model, valid only when manufacturer_id is Favero Electronics.
garmin_product_idINTEGERGarmin-specific product code identifying the device model, valid only when manufacturer_id is Garmin.
serial_numberINTEGERCorresponds to file_id of scheduled workout / course.
time_createdINTEGERMatches the file_id time_created of the scheduled workout or course, in ISO8601 format.
completedINTEGERWhether this scheduled activity has been started.Stored in SQLite as INTEGER: 0 = false, 1 = true.
typeINTEGERtype of scheduled item, such as workout or course.
scheduled_timeINTEGERTime the workout or course is scheduled for, in ISO8601 format.

SdmProfile

Stores configuration for speed and distance monitors (footpods).

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
enabledINTEGERWhether this speed and distance sensor profile is enabled.Stored in SQLite as INTEGER: 0 = false, 1 = true.
sdm_ant_idINTEGERANT device ID of the speed/distance sensor (footpod) paired with this profile.
sdm_cal_factorREALCalibration factor for the speed and distance sensor, as a percentage.
odometerREALodometer reading in meters.
speed_sourceINTEGERUse footpod for speed source instead of GPS.Stored in SQLite as INTEGER: 0 = false, 1 = true.
sdm_ant_id_trans_typeINTEGERANT transmission type of the footpod identified by sdm_ant_id.
odometer_rolloverINTEGERRollover counter that can be used to extend the odometer.

SegmentFile

Summary of the unique segment and leaderboard information associated with a segment file. Used to compile a segment list file describing all segment files on a device, consulted when refreshing a segment file with the latest available leaderboard information.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
file_uuidTEXTUUID of the segment file.
enabledINTEGERState of the segment file.Stored in SQLite as INTEGER: 0 = false, 1 = true.
user_profile_primary_keyINTEGERPrimary key of the user that created the segment file.
leader_typeTEXTLeader type of each leader in the segment file.One value per leaderboard leader, index-aligned with leader_group_primary_key/ leader_activity_id/leader_activity_id_string.
leader_group_primary_keyTEXTGroup primary key of each leader in the segment file.One value per leaderboard leader, index-aligned with leader_type/leader_activity_id/ leader_activity_id_string.
leader_activity_idTEXTActivity ID of each leader in the segment file.One value per leaderboard leader, index-aligned with leader_type/ leader_group_primary_key/leader_activity_id_string.
leader_activity_id_stringTEXTString version of the activity ID of each leader in the segment file. 21 characters long for each ID, express in decimal.One value per leaderboard leader, index-aligned with leader_type/ leader_group_primary_key/leader_activity_id.
default_race_leaderINTEGERIndex for the Leader Board entry selected as the default race participant.

SegmentId

Segment_id: Unique Identification data for a segment file.

FieldTypeDescription
file_numberINTEGERThe file number.
NameTEXTFriendly name assigned to segment.
uuidTEXTOf the segment.
sport_idINTEGERSport associated with the segment.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
enabledINTEGERSegment enabled for evaluation.Stored in SQLite as INTEGER: 0 = false, 1 = true.
user_profile_primary_keyINTEGERPrimary key of the user that created the segment.
device_idINTEGERID of the device that created the segment.
default_race_leaderINTEGERIndex for the Leader Board entry selected as the default race participant.
delete_statusINTEGERIndicates if any segments should be deleted.
selection_typeINTEGERIndicates how the segment was selected to be sent to the device.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.

SegmentLap

Segment_lap:.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
timestampTEXTIn ISO8601 format.
event_idINTEGERFIT event code identifying what triggered this record, such as a timer start/stop or a lap marker.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
event_typeINTEGERFIT event-type code describing how the event occurred, such as start, stop, or marker.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
start_timeTEXTStart time of the segment lap, in ISO8601 format.
start_position_latINTEGERLatitude of the start position, in semicircles.
start_position_longINTEGERLongitude of the start position, in semicircles.
end_position_latINTEGERLatitude of the end position, in semicircles.
end_position_longINTEGERLongitude of the end position, in semicircles.
total_elapsed_timeREALTime (includes pauses). Units: s.
total_timer_timeREALTimer Time (excludes pauses). Units: s.
total_distanceREALTotal distance in meters.
total_cyclesINTEGERTotal cycles, such as pedal revolutions or steps.
total_strokesINTEGERTotal number of strokes.
total_caloriesINTEGERTotal calories burned, in kilocalories.
total_fat_caloriesINTEGERTotal calories burned from fat, in kilocalories.
avg_speedREALAverage speed in meters per second.
max_speedREALMaximum speed in meters per second.
avg_heart_rateINTEGERAverage heart rate in beats per minute.
max_heart_rateINTEGERMaximum heart rate in beats per minute.
avg_cadenceINTEGERAverage cadence, in revolutions per minute -- computed by the recording device as total_cycles / total_timer_time, or total_cycles / total_elapsed_time, depending on a device setting not otherwise captured in this data.
max_cadenceINTEGERMaximum cadence in revolutions per minute.
avg_powerINTEGERAverage power, in watts -- computed by the recording device from its own internal power total, divided by total_timer_time or total_elapsed_time depending on a device setting; neither the power total nor the setting is otherwise captured in this data.
max_powerINTEGERMaximum power in watts.
total_ascentINTEGERTotal ascent in meters.
total_descentINTEGERTotal descent in meters.
sport_idINTEGERSport-type code identifying the sport, such as running or cycling; sub_sport_id narrows this further.
event_groupINTEGERGroups related events together, distinguishing concurrent event streams (such as separate segments within a multisport session) that share the same event_id and event_type.
nec_latINTEGERNorth east corner latitude. Units: semicircles.
nec_longINTEGERNorth east corner longitude. Units: semicircles.
swc_latINTEGERSouth west corner latitude. Units: semicircles.
swc_longINTEGERSouth west corner latitude. Units: semicircles.
NameTEXTUser-assigned or generated name for this segment attempt.
normalized_powerINTEGERNormalized power in watts.
left_right_balanceINTEGERLeft/right power balance as a percentage, encoded per the FIT left_right_balance_100 type (high bit flags the measurement source).
sub_sport_idINTEGERSub-sport-type code providing a more specific classification within sport_id, such as indoor cycling or trail running.
total_workINTEGERTotal work performed, in joules.
avg_altitudeREALAverage altitude during this segment lap, in metres.
max_altitudeREALMaximum altitude reached during this segment lap, in metres.
gps_accuracyINTEGEREstimated GPS position accuracy, in meters.
avg_gradeREALAverage grade (slope) as a percentage.
avg_pos_gradeREALAverage ascending grade, as a percentage.
avg_neg_gradeREALAverage descending grade, as a percentage.
max_pos_gradeREALSteepest ascending grade, as a percentage.
max_neg_gradeREALSteepest descending grade, as a percentage.
avg_temperatureINTEGERAverage temperature in degrees Celsius.
max_temperatureINTEGERMaximum temperature in degrees Celsius.
total_moving_timeREALTotal time spent moving, in seconds.
avg_pos_vertical_speedREALAverage ascending vertical speed, in meters per second.
avg_neg_vertical_speedREALAverage descending vertical speed, in meters per second.
max_pos_vertical_speedREALMaximum ascending vertical speed, in meters per second.
max_neg_vertical_speedREALMaximum descending vertical speed, in meters per second.
time_in_heart_rate_zoneTEXTTotal time spent in each heart-rate training zone during this segment lap. units: s; scale: 1000.One value per zone; the zone boundaries themselves are recorded in this activity's ZonesTarget/TimeInZone record, not here.
time_in_speed_zoneTEXTTotal time spent in each speed training zone during this segment lap. units: s; scale: 1000.One value per zone; the zone boundaries themselves are recorded in this activity's ZonesTarget/TimeInZone record, not here.
time_in_cadence_zoneTEXTTotal time spent in each cadence training zone during this segment lap. units: s; scale: 1000.One value per zone; the zone boundaries themselves are recorded in this activity's ZonesTarget/TimeInZone record, not here.
time_in_power_zoneTEXTTotal time spent in each power training zone during this segment lap. units: s; scale: 1000.One value per zone; the zone boundaries themselves are recorded in this activity's ZonesTarget/TimeInZone record, not here.
repetition_numberINTEGEROrdinal position of this segment lap within a repeated/looped sequence of laps.
min_altitudeREALMinimum altitude reached during this segment lap, in metres.
min_heart_rateINTEGERMinimum heart rate in beats per minute.
active_timeREALActive time in seconds.
workout_step_indexINTEGERIndex of the workout_step (in the parent Workout) that produced this record, when generated by a structured workout.
sport_eventINTEGERSport-specific event classification for this segment lap, such as an uphill or descent segment.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
avg_left_torque_effectivenessREALAverage left torque effectiveness, as a percentage.
avg_right_torque_effectivenessREALAverage right torque effectiveness, as a percentage.
avg_left_pedal_smoothnessREALAverage left pedal smoothness, as a percentage.
avg_right_pedal_smoothnessREALAverage right pedal smoothness, as a percentage.
avg_combined_pedal_smoothnessREALAverage combined pedal smoothness, as a percentage.
statusINTEGERStatus of the segment attempt, such as completed.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
uuidTEXTUnique identifier of the segment.
avg_fractional_cadenceREALFractional part of the avg_cadence. Units: rpm.
max_fractional_cadenceREALFractional part of the max_cadence. Units: rpm.
total_fractional_cyclesREALFractional part of the total_cycles. Units: cycles.
front_gear_shift_countINTEGERNumber of front-derailleur gear shifts during this segment.
rear_gear_shift_countINTEGERNumber of rear-derailleur gear shifts during this segment.
time_standingREALTotal time spent in the standing position. Units: s.
stand_countINTEGERNumber of transitions to the standing state.
avg_left_pcoINTEGERAverage left platform center offset. Units: mm.
avg_right_pcoINTEGERAverage right platform center offset. Units: mm.
avg_left_power_phaseTEXTAverage left-leg pedal-stroke power-phase angles, in degrees of crank rotation -- the portion of each pedal stroke where meaningful force is applied. Each of the 4 array elements is a different measurement of that phase (start angle, end angle, arc length, center), per power_phase_type.One value per power_phase_type enum value.
avg_left_power_phase_peakTEXTAs avg_left_power_phase, but for the power phase during this segment lap's single hardest effort rather than averaged across the whole segment lap.One value per power_phase_type enum value.
avg_right_power_phaseTEXTAs avg_left_power_phase, for the right leg.One value per power_phase_type enum value.
avg_right_power_phase_peakTEXTAs avg_left_power_phase_peak, for the right leg.One value per power_phase_type enum value.
avg_power_positionTEXTAverage power, in watts, broken out by rider position (seated, standing, or transitioning between them) -- one value per rider_position_type.One value per rider_position_type enum value.
max_power_positionTEXTAs avg_power_position, but the maximum power reached rather than the average.One value per rider_position_type enum value.
avg_cadence_positionTEXTAverage cadence, in revolutions per minute, broken out by rider position (seated, standing, or transitioning between them).One value per rider_position_type enum value.
max_cadence_positionTEXTAs avg_cadence_position, but the maximum cadence reached rather than the average.One value per rider_position_type enum value.
manufacturer_idINTEGERManufacturer that produced the segment.
total_gritREALThe grit score estimates how challenging a route could be for a cyclist in terms of time spent going over sharp turns or large grade slopes. Units: kGrit.
total_flowREALThe flow score estimates how long distance wise a cyclist deaccelerates over intervals where deacceleration is unnecessary such as smooth turns or small grade angle intervals. Units: Flow.
avg_gritREALThe grit score estimates how challenging a route could be for a cyclist in terms of time spent going over sharp turns or large grade slopes. Units: kGrit.
avg_flowREALThe flow score estimates how long distance wise a cyclist deaccelerates over intervals where deacceleration is unnecessary such as smooth turns or small grade angle intervals. Units: Flow.
total_fractional_ascentREALFractional part of total_ascent. Units: m.
total_fractional_descentREALunits: m; scale: 100; fractional part of total_descent.
enhanced_avg_altitudeREALAverage altitude during this segment lap, in metres (extended-range counterpart to avg_altitude).
enhanced_max_altitudeREALMaximum altitude reached during this segment lap, in metres (extended-range counterpart to max_altitude).
enhanced_min_altitudeREALMinimum altitude reached during this segment lap, in metres (extended-range counterpart to min_altitude).

SegmentLeaderboardEntry

Segment_leaderboard_entry: Unique Identification data for an individual segment leader within a segment file.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
NameTEXTFriendly name assigned to leader.
typeINTEGERLeader classification.
group_primary_keyINTEGERPrimary user ID of this leader.
activity_idINTEGERID of the activity associated with this leader time.
segment_timeREALunits: s; scale: 1000; Segment Time (includes pauses).
activity_id_stringTEXTString version of the activity_id. 21 characters long, express in decimal.

SegmentPoint

Segment_point: Navigation and race evaluation point for a segment decribing a point along the segment path and time it took each segment leader to reach that point.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
position_latINTEGERLatitude in semicircles.
position_longINTEGERLongitude in semicircles.
distanceREALAccumulated distance along the segment at the described point. Units: m.
altitudeREALOffset: 500; Accumulated altitude along the segment at the described point. Units: m.
leader_timeTEXTunits: s; scale: 1000; Accumualted time each leader board member required to reach the described point. This value is zero for all leader board members at the starting point of the segment.One value per leaderboard leader, in the same leader order as SegmentFile's leader_type/leader_group_primary_key/leader_activity_id arrays.
enhanced_altitudeREALOffset: 500; Accumulated altitude along the segment at the described point. Units: m.

Session

Represents a single workout or activity session with detailed metrics.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERSelected bit is set for the current session.
timestampTEXTIn ISO8601 format.
event_idINTEGERType of event; always ‘session’ for this message.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
event_typeINTEGEREvent type; always ‘stop’ for this message, marking the end of the session.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
start_timeTEXTStart time of the session, in ISO8601 format.
start_position_latINTEGERLatitude of the start position, in semicircles.
start_position_longINTEGERLongitude of the start position, in semicircles.
sport_idINTEGERSport-type code identifying the sport, such as running or cycling; sub_sport_id narrows this further.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
sub_sport_idINTEGERSub-sport-type code providing a more specific classification within sport_id, such as indoor cycling or trail running.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
total_elapsed_timeREALTime (includes pauses). Units: s.
total_timer_timeREALTimer Time (excludes pauses). Units: s.
total_distanceREALTotal distance in meters.
total_cyclesINTEGERTotal cycles, such as pedal revolutions or steps.
total_stridesINTEGERTotal number of strides.
total_strokesINTEGERTotal number of strokes.
total_caloriesINTEGERTotal calories burned, in kilocalories.
total_fat_caloriesINTEGERTotal calories burned from fat, in kilocalories.
avg_speedREALTotal_distance / total_timer_time. Units: m/s.
max_speedREALMaximum speed in meters per second.
avg_heart_rateINTEGERAverage heart rate (excludes pause time). Units: bpm.
max_heart_rateINTEGERMaximum heart rate in beats per minute.
avg_cadenceINTEGERAverage cadence, in revolutions per minute -- computed by the recording device as total_cycles / total_timer_time, or total_cycles / total_elapsed_time, depending on a device setting not otherwise captured in this data.
avg_running_cadenceINTEGERAverage running cadence in strides per minute.
max_cadenceINTEGERMaximum cadence in revolutions per minute.
max_running_cadenceINTEGERMaximum running cadence in strides per minute.
avg_powerINTEGERAverage power, in watts -- computed by the recording device from its own internal power total, divided by total_timer_time or total_elapsed_time depending on a device setting; neither the power total nor the setting is otherwise captured in this data.
max_powerINTEGERMaximum power in watts.
total_ascentINTEGERTotal ascent in meters.
total_descentINTEGERTotal descent in meters.
total_training_effectREALAerobic training effect score for the session.
first_lap_indexINTEGERIndex of the first lap (in the parent Activity's laps) belonging to this session.
number_lapsINTEGERNum Laps.
event_groupINTEGERGroups related events together, distinguishing concurrent event streams (such as separate segments within a multisport session) that share the same event_id and event_type.
triggerINTEGERWhat triggered the end of the session, such as a manual stop or auto-lap.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
nec_latINTEGERNorth east corner latitude. Units: semicircles.
nec_longINTEGERNorth east corner longitude. Units: semicircles.
swc_latINTEGERSouth west corner latitude. Units: semicircles.
swc_longINTEGERSouth west corner longitude. Units: semicircles.
number_lengthsINTEGER# of lengths of swim pool.
normalized_powerINTEGERNormalized power in watts.
training_stress_scoreREALTraining stress score (TSS).
intensity_factorREALIntensity factor — normalized power as a fraction of functional threshold power.
left_right_balanceINTEGERLeft/right power balance as a percentage, encoded per the FIT left_right_balance_100 type (high bit flags the measurement source).
end_position_latINTEGERLatitude of the end position, in semicircles.
end_position_longINTEGERLongitude of the end position, in semicircles.
avg_stroke_countREALAverage strokes per lap.
avg_stroke_distanceREALAverage distance covered per stroke, in meters.
swim_strokeINTEGERSwimming stroke type used.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
pool_lengthREALPool length in meters.
threshold_powerINTEGERFunctional threshold power in watts.
pool_length_unitINTEGERUnit (metric or statute) in which pool_length is expressed.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
number_active_lengthsINTEGER# of active lengths of swim pool.
total_workINTEGERTotal work performed, in joules.
avg_altitudeREALAverage altitude during this session, in metres.
max_altitudeREALMaximum altitude reached during this session, in metres.
gps_accuracyINTEGEREstimated GPS position accuracy, in meters.
avg_gradeREALAverage grade (slope) as a percentage.
avg_pos_gradeREALAverage ascending grade, as a percentage.
avg_neg_gradeREALAverage descending grade, as a percentage.
max_pos_gradeREALSteepest ascending grade, as a percentage.
max_neg_gradeREALSteepest descending grade, as a percentage.
avg_temperatureINTEGERAverage temperature in degrees Celsius.
max_temperatureINTEGERMaximum temperature in degrees Celsius.
total_moving_timeREALTotal time spent moving, in seconds.
avg_pos_vertical_speedREALAverage ascending vertical speed, in meters per second.
avg_neg_vertical_speedREALAverage descending vertical speed, in meters per second.
max_pos_vertical_speedREALMaximum ascending vertical speed, in meters per second.
max_neg_vertical_speedREALMaximum descending vertical speed, in meters per second.
min_heart_rateINTEGERMinimum heart rate in beats per minute.
time_in_heart_rate_zoneTEXTTotal time spent in each heart-rate training zone during this session. units: s; scale: 1000.One value per zone; the zone boundaries themselves are recorded in this activity's ZonesTarget/TimeInZone record, not here.
time_in_speed_zoneTEXTTotal time spent in each speed training zone during this session. units: s; scale: 1000.One value per zone; the zone boundaries themselves are recorded in this activity's ZonesTarget/TimeInZone record, not here.
time_in_cadence_zoneTEXTTotal time spent in each cadence training zone during this session. units: s; scale: 1000.One value per zone; the zone boundaries themselves are recorded in this activity's ZonesTarget/TimeInZone record, not here.
time_in_power_zoneTEXTTotal time spent in each power training zone during this session. units: s; scale: 1000.One value per zone; the zone boundaries themselves are recorded in this activity's ZonesTarget/TimeInZone record, not here.
avg_lap_timeREALAverage lap time in seconds.
best_lap_indexINTEGERIndex of the fastest lap in this session.
min_altitudeREALMinimum altitude reached during this session, in metres.
player_scoreINTEGERThis user's own score in games or sports with a scoring system, such as squash or racquetball.
opponent_scoreINTEGEROpponent's score in games or sports with an adversarial scoring system, such as squash or racquetball.
opponent_nameTEXTName of the opponent, for games or sports with an adversarial scoring system.
stroke_countTEXTNumber of times each swimming stroke type was used.One value per stroke_type enum value.
zone_countTEXTCount recorded for each zone.One value per zone.
max_ball_speedREALMaximum ball speed in meters per second.
avg_ball_speedREALAverage ball speed in meters per second.
avg_vertical_oscillationREALAverage vertical oscillation in millimeters.
avg_stance_time_percentREALAverage ground contact time as a percentage of the stride cycle.
avg_stance_timeREALAverage ground contact time per step, in milliseconds.
avg_fractional_cadenceREALFractional part of the avg_cadence. Units: rpm.
max_fractional_cadenceREALFractional part of the max_cadence. Units: rpm.
total_fractional_cyclesREALFractional part of the total_cycles. Units: cycles.
avg_total_hemoglobin_concTEXTunits: g/dL; scale: 100; Avg saturated and unsaturated hemoglobin.One value per connected muscle-oxygen (SmO2) sensor, when more than one is paired.
min_total_hemoglobin_concTEXTunits: g/dL; scale: 100; Min saturated and unsaturated hemoglobin.One value per connected muscle-oxygen (SmO2) sensor, when more than one is paired.
max_total_hemoglobin_concTEXTunits: g/dL; scale: 100; Max saturated and unsaturated hemoglobin.One value per connected muscle-oxygen (SmO2) sensor, when more than one is paired.
avg_saturated_hemoglobin_percentTEXTunits: %; scale: 10; Avg percentage of hemoglobin saturated with oxygen.One value per connected muscle-oxygen (SmO2) sensor, when more than one is paired.
min_saturated_hemoglobin_percentTEXTunits: %; scale: 10; Min percentage of hemoglobin saturated with oxygen.One value per connected muscle-oxygen (SmO2) sensor, when more than one is paired.
max_saturated_hemoglobin_percentTEXTunits: %; scale: 10; Max percentage of hemoglobin saturated with oxygen.One value per connected muscle-oxygen (SmO2) sensor, when more than one is paired.
avg_left_torque_effectivenessREALAverage left torque effectiveness, as a percentage.
avg_right_torque_effectivenessREALAverage right torque effectiveness, as a percentage.
avg_left_pedal_smoothnessREALAverage left pedal smoothness, as a percentage.
avg_right_pedal_smoothnessREALAverage right pedal smoothness, as a percentage.
avg_combined_pedal_smoothnessREALAverage combined pedal smoothness, as a percentage.
sport_profile_nameTEXTSport name from associated sport mesg.
sport_indexINTEGERZero-based ordinal identifying which sport segment, within a multisport activity, this record belongs to.
time_standingREALTotal time spend in the standing position. Units: s.
stand_countINTEGERNumber of transitions to the standing state.
avg_left_pcoINTEGERAverage platform center offset Left. Units: mm.
avg_right_pcoINTEGERAverage platform center offset Right. Units: mm.
avg_left_power_phaseTEXTAverage left-leg pedal-stroke power-phase angles, in degrees of crank rotation -- the portion of each pedal stroke where meaningful force is applied. Each of the 4 array elements is a different measurement of that phase (start angle, end angle, arc length, center), per power_phase_type.One value per power_phase_type enum value.
avg_left_power_phase_peakTEXTAs avg_left_power_phase, but for the power phase during this session's single hardest effort rather than averaged across the whole session.One value per power_phase_type enum value.
avg_right_power_phaseTEXTAs avg_left_power_phase, for the right leg.One value per power_phase_type enum value.
avg_right_power_phase_peakTEXTAs avg_left_power_phase_peak, for the right leg.One value per power_phase_type enum value.
avg_power_positionTEXTAverage power, in watts, broken out by rider position (seated, standing, or transitioning between them) -- one value per rider_position_type.One value per rider_position_type enum value.
max_power_positionTEXTAs avg_power_position, but the maximum power reached rather than the average.One value per rider_position_type enum value.
avg_cadence_positionTEXTAverage cadence, in revolutions per minute, broken out by rider position (seated, standing, or transitioning between them).One value per rider_position_type enum value.
max_cadence_positionTEXTAs avg_cadence_position, but the maximum cadence reached rather than the average.One value per rider_position_type enum value.
enhanced_avg_speedREALTotal_distance / total_timer_time. Units: m/s.
enhanced_max_speedREALMaximum speed in meters per second, extended-range encoding.
enhanced_avg_altitudeREALAverage altitude during this session, in metres (extended-range counterpart to avg_altitude).
enhanced_min_altitudeREALMinimum altitude reached during this session, in metres (extended-range counterpart to min_altitude).
enhanced_max_altitudeREALMaximum altitude reached during this session, in metres (extended-range counterpart to max_altitude).
avg_lev_motor_powerINTEGERLev average motor power during session. Units: watts.
max_lev_motor_powerINTEGERLev maximum motor power during session. Units: watts.
lev_battery_consumptionREALLev battery consumption during session. Units: percent.
avg_vertical_ratioREALAverage vertical ratio, as a percentage.
avg_stance_time_balanceREALAverage left/right balance of ground contact time, as a percentage.
avg_step_lengthREALAverage step length in millimeters.
total_anaerobic_training_effectREALAnaerobic training effect score for the session.
avg_vamREALAverage ascent speed (VAM) in meters per second.
avg_depthREAL0 if above water. Units: m.
max_depthREAL0 if above water. Units: m.
surface_intervalINTEGERTime since end of last dive. Units: s.
start_cnsINTEGERCNS oxygen toxicity load at the start of the dive, as a percentage.
end_cnsINTEGERCNS oxygen toxicity load at the end of the dive, as a percentage.
start_n2INTEGERNitrogen loading at the start of the dive, as a percentage.
end_n2INTEGERNitrogen loading at the end of the dive, as a percentage.
avg_respiration_rateINTEGERAverage respiration rate during this period, in breaths per minute; superseded by the wider-range enhanced_avg_respiration_rate where present.
max_respiration_rateINTEGERMaximum respiration rate during this period, in breaths per minute; superseded by the wider-range enhanced_max_respiration_rate where present.
min_respiration_rateINTEGERMinimum respiration rate during this session, in breaths per minute; superseded by the wider-range enhanced_min_respiration_rate where present.
min_temperatureINTEGERMinimum temperature in degrees Celsius.
o2_toxicityINTEGEROxygen toxicity load, in OTUs (oxygen toxicity units).
dive_numberINTEGERNumber identifying this dive within a multi-dive activity file, when applicable.
training_load_peakREALPeak training load value.
enhanced_avg_respiration_rateREALAverage respiration rate in breaths per minute.
enhanced_max_respiration_rateREALMaximum respiration rate in breaths per minute.
enhanced_min_respiration_rateREALMinimum respiration rate in breaths per minute.
total_gritREALThe grit score estimates how challenging a route could be for a cyclist in terms of time spent going over sharp turns or large grade slopes. Units: kGrit.
total_flowREALThe flow score estimates how long distance wise a cyclist deaccelerates over intervals where deacceleration is unnecessary such as smooth turns or small grade angle intervals. Units: Flow.
jump_countINTEGERNumber of jumps detected during this period, such as skiing or snowboarding jumps.
avg_gritREALThe grit score estimates how challenging a route could be for a cyclist in terms of time spent going over sharp turns or large grade slopes. Units: kGrit.
avg_flowREALThe flow score estimates how long distance wise a cyclist deaccelerates over intervals where deacceleration is unnecessary such as smooth turns or small grade angle intervals. Units: Flow.
workout_feelINTEGERA 0-100 scale representing how a user felt while performing a workout. Low values are considered feeling bad, while high values are good.
workout_rpeINTEGERCommon Borg CR10 / 0-10 RPE scale, multiplied 10x. Aggregate score for all workouts in a single session.
avg_spo2INTEGERAverage SPO2 for the monitoring session. Units: percent.
avg_stressINTEGERAverage stress for the monitoring session. Units: percent.
sdrr_hrvINTEGERStandard deviation of R-R interval (SDRR) - Heart rate variability measure most useful for wellness users. Units: mS.
rmssd_hrvINTEGERRoot mean square successive difference (RMSSD) - Heart rate variability measure most useful for athletes. Units: mS.
total_fractional_ascentREALFractional part of total_ascent. Units: m.
total_fractional_descentREALFractional part of total_descent. Units: m.
avg_core_temperatureREALAverage core body temperature in degrees Celsius.
min_core_temperatureREALMinimum core body temperature in degrees Celsius.
max_core_temperatureREALMaximum core body temperature in degrees Celsius.
total_repsINTEGERTotal number of repetitions.A subfield of the FIT total_cycles field, active when sub_sport is strength_training or sport is hiit.
total_pushesINTEGERTotal number of pushes in a session.A subfield of the FIT total_cycles field, active when sport is wheelchair_push_run or wheelchair_push_walk.

SetX

Represents a strength training set including repetitions, weight, and duration.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTTimestamp of the set, in ISO8601 format.
durationINTEGERduration of the set, in seconds.
repetitionsINTEGER# of repitions of the movement.
weightINTEGERAmount of weight applied for the set. Units: kg.
set_typeINTEGERSetX Type.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
start_timeTEXTStart time of the set, in ISO8601 format.
raw_category_garmin_keyTEXTRaw FIT exercise_category[0] code for this set's exercise, e.g. "7". Stored verbatim, not resolved.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
raw_category_subtype_garmin_keyTEXTRaw FIT exercise_category[0] + exercise_name[0] codes, space-separated the same way NumericVectorToText formats a compound value, e.g. "7 2" -- present only when this set's exercise has a specific catalogued subtype (e.g. "Lat Pulldown" rather than just "Pull Up"); empty otherwise.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
weight_display_unitINTEGERUnit (such as kilograms or pounds) the weight field should be displayed in.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
workout_step_indexINTEGERIndex of the workout_step (in the parent Workout) that produced this record, when generated by a structured workout.

SkinTempOvernight

Skin_temp_overnight:.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
local_timestampTEXTLocal timestamp, in ISO8601 format.
average_deviationREALThe average overnight deviation from baseline temperature in degrees C.
average7_day_deviationREALThe average 7 day overnight deviation from baseline temperature in degrees C.
nightly_valueREALFinal overnight temperature value.

SlaveDevice

Lists connected peripheral devices such as sensors or accessories.

FieldTypeDescription
file_numberINTEGERThe file number.
manufacturer_idINTEGERFIT manufacturer code identifying the device maker, such as Garmin or a third-party partner.
product_idINTEGERManufacturer-specific product code identifying the device model; interpreted via garmin_product_id or favero_product_id when the manufacturer defines its own product-code table.
favero_product_idINTEGERFavero-specific product code identifying the device model, valid only when manufacturer_id is Favero Electronics.
garmin_product_idINTEGERGarmin-specific product code identifying the device model, valid only when manufacturer_id is Garmin.

SleepAssessment

Sleep-quality assessment scores for a single night's sleep, as computed by the device.

FieldTypeDescription
file_numberINTEGERThe file number.
combined_awake_scoreINTEGERAverage of awake_time_score and awakenings_count_score. If valid: 0 (worst) to 100 (best).If unknown, no score is recorded.
awake_time_scoreINTEGERScore that evaluates the total time spent awake between sleep. If valid: 0 (worst) to 100 (best).If unknown, no score is recorded.
awakenings_count_scoreINTEGERScore that evaluates the number of awakenings that interrupt sleep. If valid: 0 (worst) to 100 (best).If unknown, no score is recorded.
deep_sleep_scoreINTEGERScore that evaluates the amount of deep sleep. If valid: 0 (worst) to 100 (best).If unknown, no score is recorded.
sleep_duration_scoreINTEGERScore that evaluates the quality of sleep based on sleep stages, heart-rate variability and possible awakenings during the night. If valid: 0 (worst) to 100 (best).If unknown, no score is recorded.
light_sleep_scoreINTEGERScore that evaluates the amount of light sleep. If valid: 0 (worst) to 100 (best).If unknown, no score is recorded.
overall_sleep_scoreINTEGERTotal score that summarizes the overall quality of sleep, combining sleep duration and quality. If valid: 0 (worst) to 100 (best).If unknown, no score is recorded.
sleep_quality_scoreINTEGERScore that evaluates the quality of sleep based on sleep stages, heart-rate variability and possible awakenings during the night. If valid: 0 (worst) to 100 (best).If unknown, no score is recorded.
sleep_recovery_scoreINTEGERScore that evaluates stress and recovery during sleep. If valid: 0 (worst) to 100 (best).If unknown, no score is recorded.
rem_sleep_scoreINTEGERScore that evaluates the amount of REM sleep. If valid: 0 (worst) to 100 (best).If unknown, no score is recorded.
sleep_restlessness_scoreINTEGERScore that evaluates the amount of restlessness during sleep. If valid: 0 (worst) to 100 (best).If unknown, no score is recorded.
awakenings_countINTEGERThe number of awakenings during sleep.
interruptions_scoreINTEGERScore that evaluates the sleep interruptions. If valid: 0 (worst) to 100 (best).If unknown, no score is recorded.
average_stress_during_sleepREALExcludes stress during awake periods in the sleep window.

SleepDisruptionOvernightSeverity

Sleep_disruption_overnight_severity:.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
severityINTEGERseverity level of the sleep disruption.

SleepDisruptionSeverityPeriod

Sleep_disruption_severity_period:.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
timestampTEXTIn ISO8601 format.
severityINTEGERseverity level of the sleep disruption.

SleepLevel

One classified period of a sleep session (e.g. light, deep, or REM sleep).

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
SleepLevelINTEGERFIT sleep-level code classifying this period, such as light, deep, or REM sleep.

Software

contains version information for the device firmware or software.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERThe message index.
versionREALSoftware version number.
part_numberTEXTThe part number.

SpeedZone

Defines speed training zones.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
high_valueREALUpper boundary of this speed zone, in meters per second.
NameTEXTUser-assigned name for this speed zone.

Split

A user-marked or auto-detected split within an activity (e.g. an ascent, descent, or interval), with its own elapsed time, distance, and speed.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
split_typeINTEGERFIT split-type code classifying this split, such as ascent, descent, or interval active/rest.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
total_elapsed_timeREALTotal elapsed time, including pauses, in seconds.
total_timer_timeREALTotal timer time, excluding pauses, in seconds.
total_distanceREALTotal distance in meters.
avg_speedREALAverage speed in meters per second.
start_timeTEXTStart time of the split, in ISO8601 format.
total_ascentINTEGERTotal ascent in meters.
total_descentINTEGERTotal descent in meters.
start_position_latINTEGERLatitude of the start position, in semicircles.
start_position_longINTEGERLongitude of the start position, in semicircles.
end_position_latINTEGERLatitude of the end position, in semicircles.
end_position_longINTEGERLongitude of the end position, in semicircles.
max_speedREALMaximum speed in meters per second.
avg_vert_speedREALAverage vertical speed in meters per second.
end_timeTEXTEnd time of the split, in ISO8601 format.
total_caloriesINTEGERTotal calories burned, in kilocalories.
start_elevationREALElevation at the start of this split, in metres.
total_moving_timeREALTotal time spent moving, in seconds.

SplitSummary

Split_summary:.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
split_typeINTEGERFIT split-type code classifying this split, such as ascent, descent, or interval active/rest.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
number_splitsINTEGERNumber of splits included in this summary.
total_timer_timeREALTotal timer time, excluding pauses, in seconds.
total_distanceREALTotal distance in meters.
avg_speedREALAverage speed in meters per second.
max_speedREALMaximum speed in meters per second.
total_ascentINTEGERTotal ascent in meters.
total_descentINTEGERTotal descent in meters.
avg_heart_rateINTEGERAverage heart rate in beats per minute.
max_heart_rateINTEGERMaximum heart rate in beats per minute.
avg_vert_speedREALAverage vertical speed in meters per second.
total_caloriesINTEGERTotal calories burned, in kilocalories.
total_moving_timeREALTotal time spent moving, in seconds.

Spo2Data

Spo2_data:.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
reading_spo2INTEGERBlood oxygen saturation (SpO2) reading, as a percentage.
reading_confidenceINTEGERConfidence level of the pulse oximeter reading.
modeINTEGERWhen data was captured.

Sport

Names the sport type and sub-type associated with the activity.

FieldTypeDescription
file_numberINTEGERThe file number.
sport_idINTEGERSport-type code identifying the sport, such as running or cycling; sub_sport_id narrows this further.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
sub_sport_idINTEGERSub-sport-type code providing a more specific classification within sport_id, such as indoor cycling or trail running.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
NameTEXTUser-assigned or generated display name for this sport.

StressLevel

Stress_level: Value from 1 to 100 calculated by FirstBeat.

FieldTypeDescription
file_numberINTEGERThe file number.
stress_level_valueINTEGERCalculated stress score, on a scale from 1 to 100.
stress_level_timeTEXTTime stress score was calculated, in ISO8601 format.

TankSummary

Tank_summary:.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
sensorINTEGERANT+ device ID of the tank pressure sensor.
start_pressureREALTank pressure at the start of the dive, in bar.
end_pressureREALTank pressure at the end of the dive, in bar.
volume_usedREALVolume of gas used, in liters.

TankUpdate

Tank_update:.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
sensorINTEGERANT+ device ID of the tank pressure sensor.
pressureREALTank pressure in bar.

ThreeDSensorCalibration

Stores calibration data for 3D sensors such as accelerometers and gyroscopes.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTWhole second part of the timestamp, in ISO8601 format.
sensor_typeINTEGERIndicates which sensor the calibration is for.
calibration_factorINTEGERCalibration factor used to convert from raw ADC value to degrees, g, etc.
accel_cal_factorINTEGERAccelerometer calibration factor. Units: g.
gyro_cal_factorINTEGERGyro calibration factor. Units: deg/s.
calibration_divisorINTEGERCalibration factor divisor. Units: counts.
level_shiftINTEGERLevel shift value used to shift the ADC value back into range.
offset_calTEXTInternal calibration factors, one for each: xy, yx, zx.One value per axis pair, in this fixed order: xy, yx, zx.
orientation_matrixTEXTscale: 65535; 3 x 3 rotation matrix (row major).One value per matrix cell, row-major: indices 0-2 are row 0, 3-5 are row 1, 6-8 are row 2.

TimeInZone

Tracks time spent in various training zones such as heart rate, speed, and power.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
reference_mesgINTEGERReference Message.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
reference_indexINTEGERIndex of the specific referenced record (paired with reference_mesg, which identifies its message type).
time_in_heart_rate_zoneTEXTTotal time spent in each heart-rate training zone. units: s; scale: 1000.One value per zone, index-aligned with heart_rate_zone_high_boundary.
time_in_speed_zoneTEXTTotal time spent in each speed training zone. units: s; scale: 1000.One value per zone, index-aligned with speed_zone_high_boundary.
time_in_cadence_zoneTEXTTotal time spent in each cadence training zone. units: s; scale: 1000.One value per zone, index-aligned with cadence_zone_high_bondary.
time_in_power_zoneTEXTTotal time spent in each power training zone. units: s; scale: 1000.One value per zone, index-aligned with power_zone_high_boundary.
heart_rate_zone_high_boundaryTEXTUpper heart-rate boundary of this zone, in beats per minute.One value per zone, index-aligned with time_in_heart_rate_zone.
speed_zone_high_boundaryTEXTUpper speed boundary of this zone. units: m/s; scale: 1000.One value per zone, index-aligned with time_in_speed_zone.
cadence_zone_high_bondaryTEXTUpper cadence boundary of this zone, in revolutions per minute.One value per zone, index-aligned with time_in_cadence_zone.
power_zone_high_boundaryTEXTUpper power boundary of this zone, in watts.One value per zone, index-aligned with time_in_power_zone.
heart_rate_calc_typeINTEGERFIT heart-rate-zone calculation method, such as percent of max heart rate or percent of heart rate reserve.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
max_heart_rateINTEGERMaximum heart rate used as the basis for computing heart-rate zones, in beats per minute.
resting_heart_rateINTEGERResting heart rate used as the basis for computing heart-rate zones, in beats per minute.
threshold_heart_rateINTEGERHeart-rate threshold (LTHR) used as the basis for computing heart-rate zones via the percent-of-threshold method.
pwr_calc_typeINTEGERPower Calc Type.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
functional_threshold_powerINTEGERFunctional threshold power (FTP) used as the basis for computing power zones, in watts.

TimestampCorrelation

Provides mapping between system time and UTC time for synchronization.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTWhole second part of the UTC timestamp at the time the system timestamp was recorded, in ISO8601 format.
fractional_timestampREALFractional part of the UTC timestamp at the time the system timestamp was recorded. Units: s.
system_timestampTEXTWhole second part of the system timestamp, in ISO8601 format.
fractional_system_timestampREALFractional part of the system timestamp. Units: s.
local_timestampTEXTTimestamp epoch expressed in local time, in ISO8601 format, used to convert timestamps to local time.
timestamp_msINTEGERMillisecond part of the UTC timestamp at the time the system timestamp was recorded.
system_timestamp_msINTEGERMillisecond part of the system timestamp.

Totals

Cumulative activity totals (distance, calories, time, session count) for one sport, accumulated since the device's last reset.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
timestampTEXTIn ISO8601 format.
timer_timeINTEGERTotal moving/recording time accumulated across all sessions counted in this Totals record, excluding paused periods. Units: s.
distanceINTEGERTotal distance accumulated, in meters.
caloriesINTEGERTotal calories burned, in kilocalories.
sport_idINTEGERSport-type code identifying the sport, such as running or cycling; sub_sport_id narrows this further.
elapsed_timeINTEGERTotal time accumulated across all sessions counted in this Totals record, including paused periods. Units: s.
sessionsINTEGERTotal number of sessions.
active_timeINTEGERActive time in seconds.
sport_indexINTEGERZero-based ordinal identifying which sport segment, within a multisport activity, this record belongs to.

TrainingFile

Corresponds to FileID for a file whose type is workout or course.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
typeINTEGERFIT file type identifying what kind of file this is (activity, workout, course, settings, etc.) -- see the FileTypeLookup table for the full code-to-description mapping.
manufacturer_idINTEGERFIT manufacturer code identifying the device maker, such as Garmin or a third-party partner.
product_idINTEGERManufacturer-specific product code identifying the device model; interpreted via garmin_product_id or favero_product_id when the manufacturer defines its own product-code table.
favero_product_idINTEGERFavero-specific product code identifying the device model, valid only when manufacturer_id is Favero Electronics.
garmin_product_idINTEGERGarmin-specific product code identifying the device model, valid only when manufacturer_id is Garmin.
serial_numberINTEGERSerial number of the device, when available.
time_createdINTEGERTime the training file was created, in ISO8601 format.

TrainingSettings

Stores target metrics for structured workouts such as distance, speed, and time.

FieldTypeDescription
file_numberINTEGERThe file number.
target_distanceREALTarget distance in meters.
target_speedREALTarget speed in meters per second.
target_timeINTEGERTarget time in seconds.
precise_target_speedREALA more precise target speed field. Units: m/s.

UserProfile

contains personal user data such as age, weight, height, and fitness preferences.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
friendly_nameTEXTUsed for Morning Report greeting.
genderINTEGERUser's gender.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
ageINTEGERUser's age in years.
heightREALUser's height in meters.
weightREALUser's weight in kilograms.
languageINTEGERUser's preferred language.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
elev_settingINTEGERUnit (such as meters or feet) elevation values should be displayed in.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
weight_settingINTEGERUnit (such as kilograms or pounds) weight values should be displayed in.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
resting_heart_rateINTEGERResting heart rate in beats per minute.
default_max_running_heart_rateINTEGERDefault maximum heart rate for running, in beats per minute.
default_max_biking_heart_rateINTEGERDefault maximum heart rate for biking, in beats per minute.
default_max_heart_rateINTEGERDefault maximum heart rate, in beats per minute.
heart_rate_settingINTEGERDisplay mode for heart rate values, such as raw beats per minute or percent of max heart rate.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
speed_settingINTEGERUnit (such as km/h or mph) speed values should be displayed in.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
dist_settingINTEGERUnit (such as kilometers or miles) distance values should be displayed in.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
power_settingINTEGERUnit power values should be displayed in.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
activity_classINTEGERClassification of the user's overall activity level, used to tune calorie and training estimates.
position_settingINTEGERCoordinate format (such as degrees-minutes-seconds or decimal degrees) position values should be displayed in.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
temperature_settingINTEGERUnit (such as Celsius or Fahrenheit) temperature values should be displayed in.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
local_idINTEGERIdentifier for this user profile that is unique within the device, not globally.
global_idTEXTGlobally-unique identifier for this user, used to correlate profiles across devices.One byte per element of this identifier.
wake_timeTEXTTypical wake time.
sleep_timeTEXTTypical bed time.
height_settingINTEGERUnit (such as meters or feet/inches) height values should be displayed in.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
user_running_step_lengthREALUser defined running step length set to 0 for auto length.
user_walking_step_lengthREALUser defined walking step length set to 0 for auto length.
depth_settingINTEGERUnit (such as meters or feet) dive-depth values should be displayed in.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
dive_countINTEGERTotal number of dives logged for this user.

Video

Stores metadata for a video associated with an activity.

FieldTypeDescription
file_numberINTEGERThe file number.
urlTEXTURL where the video can be retrieved.
hosting_providerTEXTService hosting the video, such as YouTube.
durationINTEGERPlayback time of video. Units: ms.

VideoClip

Represents a segment of a video associated with an activity.

FieldTypeDescription
file_numberINTEGERThe file number.
clip_numberINTEGERIndex identifying this clip among other clips in the same video.
start_timestampTEXTStart time of the video clip, in ISO8601 format.
start_timestamp_msINTEGERFractional-second part of start_timestamp, in milliseconds.
end_timestampTEXTEnd time of the video clip, in ISO8601 format.
end_timestamp_msINTEGERFractional-second part of end_timestamp, in milliseconds.
clip_startINTEGERStart of clip in video time. Units: ms.
clip_endINTEGEREnd of clip in video time. Units: ms.

VideoDescription

Stores description information for a video associated with an activity.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERZero-based position of this part within the full description -- long descriptions are split across multiple VideoDescription records (see message_count), reassembled by concatenating each part's text in message_index order.
message_countINTEGERTotal number of parts the full description is split into; message_index ranges from 0 to message_count - 1 across this description's parts.
textTEXTThe video's description text.

VideoFrame

Represents a single frame in a recorded video with timestamp information.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTWhole second part of the timestamp, in ISO8601 format.
timestamp_msINTEGERMillisecond part of the timestamp.
frame_numberINTEGERNumber of the frame that the timestamp and timestamp_ms correlate to.

VideoTitle

Stores title information for a video associated with an activity.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERZero-based position of this part within the full title -- long titles are split across multiple VideoTitle records (see message_count), reassembled by concatenating each part's text in message_index order.
message_countINTEGERTotal number of parts the full title is split into; message_index ranges from 0 to message_count - 1 across this title's parts.
textTEXTThe video's title text.

WatchfaceSettings

Stores customization options for watch face layouts and styles.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
modeINTEGERDisplay mode of the watch face.
layoutINTEGERlayout identifier for the watch face.
digital_layoutINTEGERLayout identifier used when the watch face is in digital mode.
analog_layoutINTEGERLayout identifier used when the watch face is in analog mode.

WeatherAlert

Provides warnings or advisories related to weather conditions.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTIn ISO8601 format.
report_idTEXTUnique identifier from GCS report ID string, length is 12.
issue_timeTEXTTime the alert was issued, in ISO8601 format.
expire_timeTEXTTime the alert expires, in ISO8601 format.
severityINTEGERWarning, Watch, Advisory, Statement.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
typeINTEGERTornado, Severe Thunderstorm, etc.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.

WeatherConditions

Records environmental data such as temperature, wind, and humidity.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTTime of update for current conditions, else forecast time, in ISO8601 format.
weather_reportINTEGERCurrent or forecast.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
temperatureINTEGERtemperature in degrees Celsius.
conditionINTEGERCorresponds to GSC Response weatherIcon field.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
wind_directionINTEGERWind direction in degrees.
wind_speedREALWind speed in meters per second.
precipitation_probabilityINTEGERRange 0-100.
temperature_feels_likeINTEGERHeat Index if GCS heatIdx above or equal to 90F or wind chill if GCS windChill below or equal to 32F. Units: C.
relative_humidityINTEGERRelative humidity, as a percentage.
locationTEXTString corresponding to GCS response location string.
observed_at_timeTEXTTime the conditions were observed, in ISO8601 format.
observed_location_latINTEGERLatitude of the observed weather location, in semicircles.
observed_location_longINTEGERLongitude of the observed weather location, in semicircles.
day_of_weekINTEGERDay of the week this forecast entry applies to.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
high_temperatureINTEGERHighest recorded temperature, in degrees Celsius.
low_temperatureINTEGERLowest recorded temperature, in degrees Celsius.

WeightScale

Weight measurement of the human standing on the Garmin Index scale.

FieldTypeDescription
file_numberINTEGERThe file number.
timestampTEXTTimestamp of the measurement, in ISO8601 format.
weightREALweight measurement. Units: kg.
percent_fatREALBody fat percentage. Units: %.
percent_hydrationREALBody hydration percentage. Units: %.
visceral_fat_massREALVisceral fat mass in kilograms.
bone_massREALBone mass in kilograms.
muscle_massREALMuscle mass in kilograms.
basal_metREALBasal metabolism. Units: kcal/day.
physique_ratingINTEGERBody-composition physique rating, on the scale used by Garmin/Tanita body composition scales.
active_metREALActive metabolism. ~4kJ per kcal, 0.25 allows max 16384 kcal.
metabolic_ageINTEGERMetabolic age in years.
visceral_fat_ratingINTEGERVisceral fat rating, on the scale used by Garmin/Tanita body composition scales.
user_profile_indexINTEGERAssociates this weight scale message to a user. This corresponds to the index of the user profile message in the weight scale file.
bmiREALBody mass index. Units: kg/m^2.

Workout

A structured workout definition -- name, sport, capabilities, and the number of WorkoutStep records that make up its ordered sequence of steps.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
sport_idINTEGERSport-type code identifying the sport, such as running or cycling; sub_sport_id narrows this further.
capabilities_idINTEGERBitmask of workout_capabilities flags describing which optional data types (such as heart rate or power) this workout includes.
number_valid_stepsINTEGERNumber of valid steps.
workout_nameTEXTUser-assigned name for this workout.
sub_sport_idINTEGERSub-sport-type code providing a more specific classification within sport_id, such as indoor cycling or trail running.
pool_lengthREALPool length in meters.
pool_length_unitINTEGERUnit (metric or statute) in which pool_length is expressed.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
workout_descriptionTEXTDescription of the workout.

WorkoutSession

Workout_session:.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
sport_idINTEGERSport-type code identifying the sport, such as running or cycling; sub_sport_id narrows this further.
sub_sport_idINTEGERSub-sport-type code providing a more specific classification within sport_id, such as indoor cycling or trail running.
number_valid_stepsINTEGERNum Valid Steps.
first_step_indexINTEGERIndex of the first workout_step (in the parent Workout) belonging to this session.
pool_lengthREALPool length in meters.
pool_length_unitINTEGERUnit (metric or statute) in which pool_length is expressed.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.

WorkoutStep

Workout_step:.

FieldTypeDescription
file_numberINTEGERThe file number.
message_indexINTEGERIndex of this record among other records of the same type in the file, used to preserve their original order.
workout_step_nameTEXTFree-form name assigned to this workout step.
duration_typeINTEGERHow this step's duration is measured, such as by time, distance, calories, or a fixed number of repetitions.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
duration_valueINTEGERRaw duration value for this step; its unit depends on duration_type (see the type-specific duration_time/duration_distance/etc. fields for the decoded value).
duration_timeREALTime value for a time-based goal or alert duration, in seconds.
duration_distanceREALDistance value for a distance-based goal or alert duration, in meters.
duration_heart_rateINTEGERHeart-rate condition value for a heart-rate-based step duration. A value of 0-100 is a percentage of max heart rate; a value above 100 is bpm plus 100. Units: % or bpm.
duration_caloriesINTEGERCalorie value for a calories-based workout step duration, in kilocalories.
duration_stepINTEGERMessage_index of step to loop back to. Steps are assumed to be in the order by message_index. custom_name and intensity members are undefined for this duration type.
duration_powerINTEGERPower condition value for a power-based step duration. A value of 0-1000 is a percentage of functional threshold power (FTP); a value above 1000 is watts plus 1000. Units: % or watts.
duration_repsINTEGERNumber of repetitions for a reps-based step duration.
target_typeINTEGERWhat this step's target is measured against, such as speed, heart rate, cadence, or power.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
target_valueINTEGERTarget numeric value for this goal or workout step; its unit and meaning depend on the paired type field (such as goal_type or duration_type).
target_speed_zoneINTEGERSpeed zone selected as this step's target, numbered 1-10; 0 means a custom target is used instead (see custom_target_speed_low/custom_target_speed_high).
target_heart_rate_zoneINTEGERHeart-rate zone selected as this step's target, numbered 1-5; 0 means a custom target is used instead (see custom_target_heart_rate_low/custom_target_heart_rate_high).
target_cadence_zoneINTEGERCadence zone selected as this step's target (valid range is device- defined, not fixed by the FIT profile); 0 means a custom target is used instead (see custom_target_cadence_low/custom_target_cadence_high).
target_power_zoneINTEGERPower zone selected as this step's target, numbered 1-7; 0 means a custom target is used instead (see custom_target_power_low/custom_target_power_high).
repeat_stepsINTEGER# of repetitions.
repeat_timeREALTime value for a repeated interval step, in seconds.
repeat_distanceREALDistance value for a repeated interval step, in meters.
repeat_caloriesINTEGERCalorie value for a repeated interval step, in kilocalories.
repeat_heart_rateINTEGERHeart-rate condition value for a heart-rate-based repeat/loop condition. A value of 0-100 is a percentage of max heart rate; a value above 100 is bpm plus 100. Units: % or bpm.
repeat_powerINTEGERPower condition value for a power-based repeat/loop condition. A value of 0-1000 is a percentage of functional threshold power (FTP); a value above 1000 is watts plus 1000. Units: % or watts.
target_stroke_typeINTEGERSwimming stroke type this step's target applies to.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
custom_target_value_lowINTEGERRaw lower-bound value for a custom target range; its unit depends on target_type (see the type-specific custom_target_speed_low/ custom_target_heart_rate_low/etc. fields for the decoded value).
custom_target_speed_lowREALLower bound of the custom target speed range, in meters per second.
custom_target_heart_rate_lowINTEGERLower bound of a custom heart-rate target range. A value of 0-100 is a percentage of max heart rate; a value above 100 is bpm plus 100. Units: % or bpm.
custom_target_cadence_lowINTEGERLower bound of the custom target cadence range, in revolutions per minute.
custom_target_power_lowINTEGERLower bound of a custom power target range. A value of 0-1000 is a percentage of functional threshold power (FTP); a value above 1000 is watts plus 1000. Units: % or watts.
custom_target_value_highINTEGERRaw upper-bound value for a custom target range; its unit depends on target_type (see the type-specific custom_target_speed_high/ custom_target_heart_rate_high/etc. fields for the decoded value).
custom_target_speed_highREALUpper bound of the custom target speed range, in meters per second.
custom_target_heart_rate_highINTEGERUpper bound of a custom heart-rate target range. A value of 0-100 is a percentage of max heart rate; a value above 100 is bpm plus 100. Units: % or bpm.
custom_target_cadence_highINTEGERUpper bound of the custom target cadence range, in revolutions per minute.
custom_target_power_highINTEGERUpper bound of a custom power target range. A value of 0-1000 is a percentage of functional threshold power (FTP); a value above 1000 is watts plus 1000. Units: % or watts.
intensityINTEGERIntensity classification of the workout step, such as warmup, active, rest, or cooldown.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
notesTEXTFree-text notes for this workout step.
equipmentINTEGEREquipment used for this workout step, such as swim fins or a paddle.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
exercise_categoryINTEGERRaw FIT exercise-category code identifying the exercise family, such as Bench Press or Curl (see SetX's raw_category_garmin_key for its localized-name resolution).
exercise_nameINTEGERRaw FIT exercise-name code identifying the specific exercise variant within its category (see SetX's raw_category_subtype_garmin_key for its localized-name resolution).
exercise_weightREALWeight used for the exercise, in kilograms.
weight_display_unitINTEGERUnit (such as kilograms or pounds) the weight field should be displayed in.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
secondary_target_typeINTEGERAs target_type, for this step's secondary target.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
secondary_target_valueINTEGERAs target_value, for this step's secondary target.
secondary_target_speed_zoneINTEGERSpeed zone selected as this step's secondary target, numbered 1-10; 0 means a custom target is used instead (see secondary_custom_target_speed_low/secondary_custom_target_speed_high).
secondary_target_heart_rate_zoneINTEGERHeart-rate zone selected as this step's secondary target, numbered 1-5; 0 means a custom target is used instead (see secondary_custom_target_heart_rate_low/secondary_custom_target_heart_rate_high).
secondary_target_cadence_zoneINTEGERCadence zone selected as this step's secondary target (valid range is device-defined, not fixed by the FIT profile); 0 means a custom target is used instead (see secondary_custom_target_cadence_low/secondary_custom_target_cadence_high).
secondary_target_power_zoneINTEGERPower zone selected as this step's secondary target, numbered 1-7; 0 means a custom target is used instead (see secondary_custom_target_power_low/secondary_custom_target_power_high).
secondary_target_stroke_typeINTEGERAs target_stroke_type, for this step's secondary target.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
secondary_custom_target_value_lowINTEGERAs custom_target_value_low, for this step's secondary target.
secondary_custom_target_speed_lowREALLower bound of the secondary custom target speed range, in meters per second.
secondary_custom_target_heart_rate_lowINTEGERAs custom_target_heart_rate_low, for this step's secondary target. A value of 0-100 is a percentage of max heart rate; a value above 100 is bpm plus 100. Units: % or bpm.
secondary_custom_target_cadence_lowINTEGERLower bound of the secondary custom target cadence range, in revolutions per minute.
secondary_custom_target_power_lowINTEGERAs custom_target_power_low, for this step's secondary target. A value of 0-1000 is a percentage of functional threshold power (FTP); a value above 1000 is watts plus 1000. Units: % or watts.
secondary_custom_target_value_highINTEGERAs custom_target_value_high, for this step's secondary target.
secondary_custom_target_speed_highREALUpper bound of the secondary custom target speed range, in meters per second.
secondary_custom_target_heart_rate_highINTEGERAs custom_target_heart_rate_high, for this step's secondary target. A value of 0-100 is a percentage of max heart rate; a value above 100 is bpm plus 100. Units: % or bpm.
secondary_custom_target_cadence_highINTEGERUpper bound of the secondary custom target cadence range, in revolutions per minute.
secondary_custom_target_power_highINTEGERAs custom_target_power_high, for this step's secondary target. A value of 0-1000 is a percentage of functional threshold power (FTP); a value above 1000 is watts plus 1000. Units: % or watts.

ZonesTarget

Defines target zones for heart rate and power during workouts.

FieldTypeDescription
file_numberINTEGERThe file number.
max_heart_rateINTEGERMaximum heart rate used as the basis for computing heart-rate zones, in beats per minute.
threshold_heart_rateINTEGERHeart-rate threshold (LTHR) used as the basis for computing heart-rate zones via the percent-of-threshold method.
functional_threshold_powerINTEGERFunctional threshold power (FTP) used as the basis for computing power zones, in watts.
heart_rate_calc_typeINTEGERFIT heart-rate-zone calculation method, such as percent of max heart rate or percent of heart rate reserve.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.
pwr_calc_typeINTEGERPower Calc Type.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup.

For this same schema as executable SQL rather than prose, see The schema as SQL.