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.
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
- The Data Dictionary, the core concepts (Activity, Session, Lap, Record)
- The better_labels Lookup Tables, for columns whose description notes a lookup
Tables
- AadAccelFeatures
- AccelerometerData
- Activity
- AntChannelId
- AntRx
- AntTx
- AviationAttitude
- BarometerData
- BeatIntervals
- BikeProfile
- BloodPressure
- CadenceZone
- CameraEvent
- Capabilities
- ChronoShotData
- ChronoShotSession
- ClimbPro
- Connectivity
- Course
- CoursePoint
- DeveloperCIQFields
- DeveloperDataId
- DeviceAuxBatteryInfo
- DeviceInfo
- DeviceSettings
- DiveAlarm
- DiveApneaAlarm
- DiveGas
- DiveSettings
- DiveSummary
- Event
- ExdDataConceptConfiguration
- ExdDataFieldConfiguration
- ExdScreenConfiguration
- ExerciseTitle
- FieldCapabilities
- FieldDescription
- FileCapabilities
- FileCreator
- FileID
- Goal
- GpsMetadata
- GyroscopeData
- Hr
- HrmProfile
- Hrv
- HrvStatusSummary
- HrvValue
- HrZone
- HsaAccelerometerData
- HsaBodyBatteryData
- HsaConfigurationData
- HsaEvent
- HsaGyroscopeData
- HsaHeartRateData
- HsaRespirationData
- HsaSpo2Data
- HsaStepData
- HsaStressData
- HsaWristTemperatureData
- Jump
- Lap
- Length
- MagnetometerData
- MaxMetData
- MemoGlob
- MesgCapabilities
- MetZone
- Monitoring
- MonitoringHrData
- MonitoringInfo
- NapEvent
- NmeaSentence
- ObdiiData
- OhrSettings
- OneDSensorCalibration
- PowerZone
- RawBbi
- Record
- RespirationRate
- Schedule
- SdmProfile
- SegmentFile
- SegmentId
- SegmentLap
- SegmentLeaderboardEntry
- SegmentPoint
- Session
- SetX
- SkinTempOvernight
- SlaveDevice
- SleepAssessment
- SleepDisruptionOvernightSeverity
- SleepDisruptionSeverityPeriod
- SleepLevel
- Software
- SpeedZone
- Split
- SplitSummary
- Spo2Data
- Sport
- StressLevel
- TankSummary
- TankUpdate
- ThreeDSensorCalibration
- TimeInZone
- TimestampCorrelation
- Totals
- TrainingFile
- TrainingSettings
- UserProfile
- Video
- VideoClip
- VideoDescription
- VideoFrame
- VideoTitle
- WatchfaceSettings
- WeatherAlert
- WeatherConditions
- WeightScale
- Workout
- WorkoutSession
- WorkoutStep
- ZonesTarget
AadAccelFeatures
Number of accelerometer zero crossings summed over the specified time interval.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
time | INTEGER | Time interval length in seconds. |
energy_total | INTEGER | Total accelerometer energy in the interval. |
zero_cross_cnt | INTEGER | Count of zero crossings. |
instance | INTEGER | Instance ID of zero crossing algorithm. |
time_above_threshold | REAL | Total accelerometer time above the threshold in the interval. Units: s. |
AccelerometerData
contains raw and calibrated accelerometer sensor readings.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
timestamp_ms | INTEGER | Millisecond part of the timestamp. |
sample_time_offset | TEXT | Each 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_x | TEXT | these 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_y | TEXT | these 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_z | TEXT | these 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_x | TEXT | calibrated X acceleration reading. Units: g.One value per sample, index-aligned with sample_time_offset. |
calibrated_accel_y | TEXT | calibrated Y acceleration reading. Units: g.One value per sample, index-aligned with sample_time_offset. |
calibrated_accel_z | TEXT | calibrated Z acceleration reading. Units: g.One value per sample, index-aligned with sample_time_offset. |
compressed_calibrated_accel_x | TEXT | calibrated X acceleration reading. Units: mG.One value per sample, index-aligned with sample_time_offset. |
compressed_calibrated_accel_y | TEXT | calibrated Y acceleration reading. Units: mG.One value per sample, index-aligned with sample_time_offset. |
compressed_calibrated_accel_z | TEXT | calibrated 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
total_timer_time | REAL | Total time taken, excluding pauses. Units: s. |
number_sessions | INTEGER | Number of Sessions. |
type | INTEGER | Activity type. |
event_id | INTEGER | FIT event code identifying what triggered this record, such as a timer start/stop or a lap marker. |
event_type | INTEGER | FIT event-type code describing how the event occurred, such as start, stop, or marker. |
local_timestamp | TEXT | Timestamp epoch expressed in local time, in ISO8601 format. Used to convert activity timestamps to local time. |
event_group | INTEGER | Groups 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
channel_number | INTEGER | ANT channel number used for this transmission. |
device_type | INTEGER | Device Type,. |
device_number | INTEGER | Numeric ANT device ID of the specific sensor paired on this channel. |
transmission_type | INTEGER | Transmission Type,. |
device_index | INTEGER | Device Index,. |
AntRx
Ant Rx message data.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
fractional_timestamp | REAL | Fractional-second part of the timestamp, in seconds. |
message_id | INTEGER | ANT message ID identifying the type of this raw ANT message. |
message_data | TEXT | Raw ANT message payload bytes.One byte per element, in the order received in the raw ANT message payload. |
channel_number | INTEGER | ANT channel number used for this transmission. |
data | TEXT | Raw bytes of the received ANT+ message.One byte per element, in the order received in the raw ANT+ message. |
AntTx
Ant TX record.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
fractional_timestamp | REAL | Fractional milliseconds part of timestamp. |
message_id | INTEGER | ANT message ID identifying the type of this raw ANT message. |
message_data | TEXT | Raw ANT message payload bytes.One byte per element, in the order received in the raw ANT message payload. |
channel_number | INTEGER | ANT channel number used for this transmission. |
data | TEXT | Raw 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The source FIT file number. |
timestamp | TEXT | In ISO8601 format. |
timestamp_ms | INTEGER | Millisecond part of the timestamp. |
system_time | TEXT | System time associated with the sample expressed in milliseconds.One value per attitude sample in this message. |
pitch | TEXT | Pitch in radians.One value per attitude sample, index-aligned with system_time. |
roll | TEXT | Roll in radians.One value per attitude sample, index-aligned with system_time. |
accel_lateral | TEXT | Lateral 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_normal | TEXT | Normal 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_rate | TEXT | Turn 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. |
stage | TEXT | Flight stage during which this attitude reading was recorded.One value per attitude sample, index-aligned with system_time. |
attitude_stage_complete | TEXT | Attitude 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. |
track | TEXT | Track. Units: radians; scale: 10430.38; Track Angle/Heading Range 0 - 2pi.One value per attitude sample, index-aligned with system_time. |
validity | TEXT | Whether this attitude reading is valid.One value per attitude sample, index-aligned with system_time. |
BarometerData
contains raw barometric pressure readings.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
timestamp_ms | INTEGER | Millisecond part of the timestamp. |
sample_time_offset | TEXT | Each 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_pressure | TEXT | Barometric 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
timestamp_ms | INTEGER | Millisecond part of the timestamp. |
time | TEXT | Array 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
bike_profile_name | TEXT | User-assigned name for this bike profile. |
sport_id | INTEGER | Sport-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_id | INTEGER | Sub-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. |
odometer | REAL | In metres. |
bike_spd_ant_id | INTEGER | Bike Speed ANT ID. |
bike_cad_ant_id | INTEGER | Bike Cadence ANT ID. |
bike_spdcad_ant_id | INTEGER | ANT device ID of the combined speed/cadence sensor paired with this bike. |
bike_power_ant_id | INTEGER | ANT device ID of the power meter paired with this bike. |
custom_wheelsize | REAL | Custom wheel size in centimeters. |
auto_wheelsize | REAL | Automatic wheel size. Units: m. |
bike_weight | REAL | Weight of the bike in kilograms. |
power_cal_factor | REAL | Power calculation factor. Units: %. |
auto_wheel_cal | INTEGER | Whether wheel circumference is calibrated automatically rather than using custom_wheelsize.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
auto_power_zero | INTEGER | Whether the power meter zero-offset is calibrated automatically.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
id | INTEGER | Identifier of this bike profile. |
spd_enabled | INTEGER | Speed Enabled.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
cad_enabled | INTEGER | Cadence Enabled.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
spdcad_enabled | INTEGER | Whether the combined speed/cadence sensor is enabled for this bike.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
power_enabled | INTEGER | Whether the power meter is enabled for this bike.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
crank_length | REAL | Crank length. offset: -110. |
enabled | INTEGER | Whether this bike profile is enabled.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
bike_spd_ant_id_trans_type | INTEGER | Bike Speed ANT ID Trans Type. |
bike_cad_ant_id_trans_type | INTEGER | Bike Cadence ANT ID Trans Type. |
bike_spdcad_ant_id_trans_type | INTEGER | ANT transmission type of the combined speed/cadence sensor identified by bike_spdcad_ant_id. |
bike_power_ant_id_trans_type | INTEGER | ANT transmission type of the power meter identified by bike_power_ant_id. |
odometer_rollover | INTEGER | Rollover counter that can be used to extend the odometer. |
front_gear_number | INTEGER | Number of front gears. |
front_gear | TEXT | Number of teeth on each gear 0 is innermost.One value per gear; index 0 is the innermost gear. |
rear_gear_number | INTEGER | Number of rear gears. |
rear_gear | TEXT | Number of teeth on each gear 0 is innermost.One value per gear; index 0 is the innermost gear. |
shimano_di2_enabled | INTEGER | Shimano Di 2 Enabled.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
BloodPressure
Blood pressure readings taken by a connected blood-pressure monitor.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
systolic_pressure | INTEGER | Systolic blood pressure in millimeters of mercury. |
diastolic_pressure | INTEGER | Diastolic blood pressure in millimeters of mercury. |
mean_arterial_pressure | INTEGER | Mean arterial pressure in millimeters of mercury. |
map3_sample_mean | INTEGER | Map sample mean. |
map_morning_values | INTEGER | Morning values. Units: mmHg. |
map_evening_values | INTEGER | Evening values. Units: mmHg. |
heart_rate | INTEGER | Heart rate in beats per minute. |
heart_rate_type | INTEGER | Method used to measure heart rate for this reading, such as from a paired sensor or an estimate. |
status | INTEGER | Status of the blood pressure reading, such as valid or error. |
user_profile_index | INTEGER | Associates 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
high_value | INTEGER | Upper boundary of this cadence zone, in revolutions per minute. |
Name | TEXT | User-assigned name for this cadence zone. |
CameraEvent
Records events related to camera usage during an activity.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
timestamp_ms | INTEGER | Millisecond part of the timestamp. |
camera_event_type | INTEGER | FIT 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_uuid | TEXT | Unique identifier of the camera file (photo or video) associated with this event. |
camera_orientation | INTEGER | Orientation 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
languages | TEXT | Use 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. |
sports | TEXT | Use 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_supported | INTEGER | Bitmask of workout_capabilities flags describing which workout step types this device supports. |
connectivity_supported | INTEGER | Bitmask 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
shot_speed | REAL | Projectile speed in meters per second. |
shot_number | INTEGER | Index 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
min_speed | REAL | Minimum speed. Units: m/s. |
max_speed | REAL | Maximum speed. Units: m/s. |
avg_speed | REAL | Average speed. Units: m/s. |
shot_count | INTEGER | Total number of shots recorded in this session. |
projectile_type | INTEGER | Type 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_weight | REAL | Projectile weight in grains. |
standard_deviation | REAL | Standard deviation of shot speed, in meters per second. |
ClimbPro
Climb Pro record.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
position_lat | INTEGER | Position latitude. Units: semicircles. |
position_long | INTEGER | Position longitude. Units: semicircles. |
climb_pro_event | INTEGER | FIT 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_number | INTEGER | Index identifying which climb (in a sequence of climbs on the course) this event pertains to. |
climb_category | INTEGER | Difficulty category assigned to this climb, such as by length and grade. |
current_dist | REAL | Current distance. Units: m. |
Connectivity
Defines wireless and network connectivity options such as Bluetooth and ANT+.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
bluetooth_enabled | INTEGER | Use Bluetooth for connectivity features.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
bluetooth_le_enabled | INTEGER | Use Bluetooth Low Energy for connectivity features.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
ant_enabled | INTEGER | Use ANT for connectivity features.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
Name | TEXT | Name of the paired companion app or service providing connectivity. |
live_tracking_enabled | INTEGER | Whether live tracking (sharing real-time location with others) is enabled.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
weather_conditions_enabled | INTEGER | Whether current weather conditions can be downloaded to the device.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
weather_alerts_enabled | INTEGER | Whether severe weather alerts can be downloaded to the device.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
auto_activity_upload_enabled | INTEGER | Whether completed activities are automatically uploaded to the companion app.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
course_download_enabled | INTEGER | Whether courses can be downloaded to the device from the companion app.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
workout_download_enabled | INTEGER | Whether workouts can be downloaded to the device from the companion app.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
gps_ephemeris_download_enabled | INTEGER | Whether GPS ephemeris data (for faster satellite fix) can be downloaded to the device.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
incident_detection_enabled | INTEGER | Whether incident detection (automatically alerting contacts after a suspected fall or crash) is enabled.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
grouptrack_enabled | INTEGER | Whether 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
sport_id | INTEGER | Sport-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. |
Name | TEXT | User-assigned name for this course. |
capabilities_id | INTEGER | Bitmask of course_capabilities flags describing which optional data types (such as heart rate or power) this course includes. |
sub_sport_id | INTEGER | Sub-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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
timestamp | TEXT | In ISO8601 format. |
position_lat | INTEGER | Latitude position. Units: semicircles. |
position_long | INTEGER | Longitude position. Units: semicircles. |
distance | REAL | Distance from the start of the course to this point, in meters. |
type | INTEGER | Type 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. |
Name | TEXT | User-assigned or generated name for this course point. |
favorite | INTEGER | Whether 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
table_attached_to | TEXT | Which native table key_into_attached_table refers to (e.g. "Record"). |
key_into_attached_table | INTEGER | The native row's own real primary key. |
developer_data_index | INTEGER | Correlates to DeveloperDataId.developer_data_index. |
field_definition_number | INTEGER | Correlates to FieldDescription.field_definition_number. |
field_type | INTEGER | 0=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_numeric | REAL | Populated only when field_type is 1 (INTEGER) or 2 (REAL); NULL in the database otherwise. |
field_as_text | TEXT | Populated 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
developer_id | TEXT | Unique 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_id | TEXT | Unique 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_id | INTEGER | FIT manufacturer code identifying the device maker, such as Garmin or a third-party partner. |
developer_data_index | INTEGER | Index uniquely identifying this developer data source within the file; FieldDescription entries reference this value via their own developer_data_index field. |
application_version | INTEGER | Version number of the application identified by application_id. |
DeviceAuxBatteryInfo
Provides information about auxiliary batteries connected to the device.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
device_index | INTEGER | Index identifying which connected device this data pertains to, matching a device_info record's own device_index. |
battery_voltage | REAL | Battery voltage in volts. |
battery_status | INTEGER | Battery charge-level bucket, such as new, good, ok, low, or critical. |
battery_identifier | INTEGER | Identifies 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
device_index | INTEGER | Index 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_type | INTEGER | Manufacturer-specific device-type code for this device; interpreted using its own manufacturer_id/garmin_product_id. |
ble_device_type | INTEGER | Device-type code as reported over Bluetooth Low Energy. |
antplus_device_type | INTEGER | ANT+ Device Type. |
ant_device_type | INTEGER | Device-type code as reported over ANT. |
local_device_type | INTEGER | Locally-assigned device-type code, used for devices without a standard ANT/BLE device-type code. |
manufacturer_id | INTEGER | FIT manufacturer code identifying the device maker, such as Garmin or a third-party partner. |
serial_number | INTEGER | Serial number of the device, when available. |
product_id | INTEGER | Manufacturer-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_id | INTEGER | Favero-specific product code identifying the device model, valid only when manufacturer_id is Favero Electronics. |
garmin_product_id | INTEGER | Garmin-specific product code identifying the device model, valid only when manufacturer_id is Garmin. |
software_version | REAL | Software or firmware version installed on the device. |
hardware_version | INTEGER | Hardware revision number of the device. |
cumulative_operating_time | INTEGER | Cumulative operating time, in seconds. |
battery_voltage | REAL | Battery voltage in volts. |
battery_status | INTEGER | Battery charge-level bucket, such as new, good, ok, low, or critical. |
sensor_position | INTEGER | Indicates the location of the sensor. |
descriptor | TEXT | Used to describe the sensor or location. |
ant_transmission_type | INTEGER | ANT transmission type of this device, paired with ant_device_number to uniquely identify it on the ANT network. |
ant_device_number | INTEGER | ANT device number of this device, paired with ant_transmission_type to uniquely identify it on the ANT network. |
ant_network | INTEGER | ANT network this device communicates on, such as the public network or a Garmin-private network. |
source_type | INTEGER | Transport this device connects over, such as ANT, ANT+, or Bluetooth Low Energy. |
product_name | TEXT | Optional free form string to indicate the devices name or model. |
battery_level | INTEGER | Remaining battery level as a percentage. |
DeviceSettings
Stores user-configurable settings such as time zones, display modes, and backlight options.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
active_time_zone | INTEGER | Index into time zone arrays. |
utc_offset | INTEGER | Offset from system time. Required to convert timestamp from system time to UTC. |
time_offset | TEXT | Timeoffset. units: s; Offset from system time.One value per configured time zone, indexed by active_time_zone. |
time_mode | TEXT | Display mode for the time.One value per configured time zone, indexed by active_time_zone. |
time_zone_offset | TEXT | Time 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_mode | INTEGER | Mode for backlight. |
activity_tracker_enabled | INTEGER | Enabled state of the activity tracker functionality.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
clock_time | TEXT | UTC timestamp used to set the device's clock and date, in ISO8601 format. |
pages_enabled | TEXT | Bitfield to configure enabled screens for each supported loop.One bitfield value per supported display loop. |
move_alert_enabled | INTEGER | Enabled state of the move alert.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
date_mode | INTEGER | Display mode for the date. |
display_orientation | INTEGER | Orientation the device's display is rotated to, such as portrait or landscape. |
mounting_side | INTEGER | Which side of the body (or bike) the device is mounted on, used to orient the display correctly. |
default_page | TEXT | Bitfield to indicate one page as default for each supported loop.One bitfield value per supported display loop. |
autosync_min_steps | INTEGER | Auto sync minimum steps. Minimum steps before an autosync can occur. |
autosync_min_time | INTEGER | Auto sync minimum time. Minimum minutes before an autosync can occur. |
lactate_threshold_autodetect_enabled | INTEGER | Enable auto-detect setting for the lactate threshold feature.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
ble_auto_upload_enabled | INTEGER | Automatically upload using BLE.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
auto_sync_frequency | INTEGER | Helps to conserve battery by changing modes. |
auto_activity_detect | INTEGER | Allows setting specific activities auto-activity detect enabled/disabled settings. |
number_of_screens | INTEGER | Number of screens configured to display. |
smart_notification_display_orientation | INTEGER | Orientation used specifically for displaying smart notifications, which may differ from the main display_orientation. |
tap_interface | INTEGER | Mode controlling how tap gestures on the device are interpreted. |
tap_sensitivity | INTEGER | Used to hold the tap threshold setting. |
DiveAlarm
Defines alarms for depth, time, and other dive conditions.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of the alarm. |
depth | REAL | Depth setting, in metres, for depth-type alarms. |
time | INTEGER | Time setting (s) for time type alarms. Units: s. |
enabled | INTEGER | Enablement flag.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
alarm_type | INTEGER | Alarm type setting.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup. |
sound | INTEGER | Tone and Vibe setting for the alarm.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup. |
dive_types | TEXT | Dive types the alarm will trigger on.One value per configured dive type. |
id | INTEGER | Alarm ID. |
popup_enabled | INTEGER | Show a visible pop-up for this alarm.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
trigger_on_descent | INTEGER | Trigger the alarm on descent.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
trigger_on_ascent | INTEGER | Trigger the alarm on ascent.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
repeating | INTEGER | Repeat alarm each time threshold is crossed.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
speed | REAL | Ascent/descent rate (mps) setting for speed type alarms. Units: mps. |
DiveApneaAlarm
Defines alarms specific to apnea diving.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of the alarm. |
depth | REAL | Depth setting, in metres, for depth-type alarms. |
time | INTEGER | Time setting (s) for time type alarms. Units: s. |
enabled | INTEGER | Enablement flag.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
alarm_type | INTEGER | Alarm type setting.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup. |
sound | INTEGER | Tone and Vibe setting for the alarm.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup. |
dive_types | TEXT | Dive types the alarm will trigger on.One value per configured dive type. |
id | INTEGER | Alarm ID. |
popup_enabled | INTEGER | Show a visible pop-up for this alarm.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
trigger_on_descent | INTEGER | Trigger the alarm on descent.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
trigger_on_ascent | INTEGER | Trigger the alarm on ascent.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
repeating | INTEGER | Repeat alarm each time threshold is crossed?.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
speed | REAL | Ascent/descent rate (mps) setting for speed type alarms. Units: mps. |
DiveGas
Specifies gas mixture details for diving activities.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
helium_content | INTEGER | Helium content of the gas mix, as a percentage. |
oxygen_content | INTEGER | Oxygen content of the gas mix, as a percentage. |
status | INTEGER | Status 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. |
mode | INTEGER | Gas 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
dive_settings_name | TEXT | User-assigned name for this dive settings profile. |
model | INTEGER | Decompression model used for dive calculations. |
gf_low | INTEGER | G flow. |
gf_high | INTEGER | G flow high. |
water_type | INTEGER | Type 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_density | REAL | Water density. Fresh water is usually 1000; salt water is usually 1025. Units: kg/m^3. |
po2_warn | REAL | P O2 warning. Typically 1.40. Units: percent. |
po2_critical | REAL | P O2 critical. Typically 1.60. Units: percent. |
po2_deco | REAL | P O2 deco. Units: percent. |
safety_stop_enabled | INTEGER | Whether safety stop guidance is enabled during ascent.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
bottom_depth | REAL | Target bottom depth configured for this dive, in meters. |
bottom_time | INTEGER | Target bottom time configured for this dive, in seconds. |
apnea_countdown_enabled | INTEGER | Whether the apnea (breath-hold) countdown timer is enabled.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
apnea_countdown_time | INTEGER | Duration of the apnea countdown timer, in seconds. |
backlight_mode | INTEGER | Mode 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_brightness | INTEGER | Brightness level of the display backlight during a dive. |
backlight_timeout | INTEGER | How long the display backlight stays on before turning off automatically, in seconds. |
repeat_dive_interval | INTEGER | Repeat dive interval. Time between surfacing and ending the activity. Units: s. |
safety_stop_time | INTEGER | Safety stop time. Time at safety stop (if enabled). Units: s. |
heart_rate_source_type | INTEGER | Transport 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_source | INTEGER | Which paired heart rate source is used during dives. |
heart_rate_antplus_device_type | INTEGER | Heart Rate ANT+ Device Type. |
heart_rate_local_device_type | INTEGER | Locally-assigned device-type code of the heart rate source, when heart_rate_source_type is a local device. |
travel_gas | INTEGER | Index of travel dive_gas message. |
ccr_low_setpoint_switch_mode | INTEGER | If 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_setpoint | REAL | Target PO2 when using low setpoint. Units: percent. |
ccr_low_setpoint_depth | REAL | Depth to switch to low setpoint in automatic mode. Units: m. |
ccr_high_setpoint_switch_mode | INTEGER | If 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_setpoint | REAL | Target PO2 when using high setpoint. Units: percent. |
ccr_high_setpoint_depth | REAL | Depth to switch to high setpoint in automatic mode. Units: m. |
gas_consumption_display | INTEGER | Type 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_enabled | INTEGER | Indicates whether the up key is enabled during dives.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
dive_sounds | INTEGER | Sounds 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_multiple | REAL | Usually 1.0/1.5/2.0 representing 3/4.5/6m or 10/15/20ft. |
no_fly_time_mode | INTEGER | Indicates 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
reference_mesg | INTEGER | Reference Message.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup. |
reference_index | INTEGER | Index of the specific referenced record (paired with reference_mesg, which identifies its message type). |
avg_depth | REAL | Average deph. 0 if above water,. Units: m. |
max_depth | REAL | Maximum depth. 0 if above water,. Units: m. |
surface_interval | INTEGER | Surface interval. Time since end of last dive,. Units: s. |
start_cns | INTEGER | CNS oxygen toxicity load at the start of the dive, as a percentage. |
end_cns | INTEGER | CNS oxygen toxicity load at the end of the dive, as a percentage. |
start_n2 | INTEGER | Nitrogen loading at the start of the dive, as a percentage. |
end_n2 | INTEGER | Nitrogen loading at the end of the dive, as a percentage. |
o2_toxicity | INTEGER | Oxygen toxicity load, in OTUs (oxygen toxicity units). |
dive_number | INTEGER | Number identifying this dive within a multi-dive activity file, when applicable. |
bottom_time | REAL | Time spent at depth during the dive, in seconds. |
avg_pressure_sac | REAL | Average pressure. Average pressure-based surface air consumption. Units: bar/min. |
avg_volume_sac | REAL | Average volume. Average volumetric surface air consumption. Units: L/min. |
avg_rmv | REAL | Average RMV. Average respiratory minute volume. |
descent_time | REAL | Descent time. Time to reach deepest level stop. Units: s. |
ascent_time | REAL | Ascent time. Time after leaving bottom until reaching surface. Units: s. |
avg_ascent_rate | REAL | Average ascent time. Average ascent rate, not including descents or stops. Units: m/s. |
avg_descent_rate | REAL | Average descent rate. Average descent rate, not including ascents or stops. Units: m/s. |
max_ascent_rate | REAL | Maximum ascent rate. Maximum ascent rate. Units: m/s. |
max_descent_rate | REAL | Maximum descent rate. Maximum descent rate. Units: m/s. |
hang_time | REAL | Hang time. Time spent neither ascending nor descending. Units: s. |
Event
event_id: Represents significant occurrences during an activity such as start, stop, or alerts.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
event_id | INTEGER | FIT 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_type | INTEGER | FIT 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. |
data16 | INTEGER | Data 16. |
data | INTEGER | Event-specific data value; its meaning depends on the event and event type. |
timer_trigger | INTEGER | What 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_index | INTEGER | Index of the course point this event corresponds to, when triggered by reaching one. |
battery_level | REAL | Raw battery voltage reading reported by this event, in volts -- distinct from the percentage-based battery_level fields on DeviceInfo/Record. |
virtual_partner_speed | REAL | Virtial partner speed. Units: m/s. |
heart_rate_high_alert | INTEGER | HR high alert. |
heart_rate_low_alert | INTEGER | HR low alert. |
speed_high_alert | REAL | Speed threshold for a high-speed alert, in meters per second. |
speed_low_alert | REAL | Speed threshold for a low-speed alert, in meters per second. |
cad_high_alert | INTEGER | Cadence high alert. Units: rpm. |
cad_low_alert | INTEGER | Cadence low alert. Units: rpm. |
power_high_alert | INTEGER | Power threshold for a high-power alert, in watts. |
power_low_alert | INTEGER | Power high alert. Units: watts. |
time_duration_alert | REAL | Time threshold for a duration-based alert, in seconds. |
distance_duration_alert | REAL | Distance threshold for a distance-based alert, in meters. |
calorie_duration_alert | INTEGER | Calorie threshold configured for a calorie-based duration alert, in kilocalories. |
fitness_equipment_state | INTEGER | State 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_point | INTEGER | Points scored, for sports that use a running point total (populated via the sport_point subfield alongside score/opponent_score). |
gear_change_data | INTEGER | Gear change data,. |
rider_position | INTEGER | Indicates the rider position value.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup. |
comm_timeout | INTEGER | Communication 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_alert | INTEGER | Type 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_duration | INTEGER | Auto activity detect duraiton. Units: min. |
radar_threat_alert | INTEGER | Radar 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_group | INTEGER | Groups related events together, distinguishing concurrent event streams (such as separate segments within a multisport session) that share the same event_id and event_type. |
score | INTEGER | Do not populate directly. Autogenerated by decoder for sport_point subfield components. |
opponent_score | INTEGER | Do not populate directly. Autogenerated by decoder for sport_point subfield components. |
front_gear_number | INTEGER | Fron gear number. |
front_gear | INTEGER | Do not populate directly. Autogenerated by decoder for gear_change subfield components. Number of front teeth. |
rear_gear_number | INTEGER | Read gear number. |
rear_gear | INTEGER | Do not populate directly. Autogenerated by decoder for gear_change subfield components. Number of rear teeth. |
device_index | INTEGER | Index identifying which connected device this data pertains to, matching a device_info record's own device_index. |
activity_type | INTEGER | Activity 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_timestamp | TEXT | Timestamp of when the event started, in ISO8601 format. |
auto_activity_detect_start_timestamp | TEXT | Timestamp of when auto-activity-detection started this event, in ISO8601 format. |
radar_threat_level_max | INTEGER | Radar threat level maximum.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup. |
radar_threat_count | INTEGER | Do not populate directly. Autogenerated by decoder for threat_alert subfield components. |
radar_threat_avg_approach_speed | REAL | Radar threat average approach speed. Units: m/s. |
radar_threat_max_approach_speed | REAL | Do not populate directly. Autogenerated by decoder for radar_threat_alert subfield components. Units: m/s. |
ExdDataConceptConfiguration
ExdDataConceptConfiguration.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
screen_index | INTEGER | Index of the Connect IQ data-field screen this configuration entry belongs to. |
concept_field | INTEGER | Connect IQ data-field concept identifier controlling what kind of data this screen entry displays. |
field_id | INTEGER | Connect IQ data-field identifier assigned to this screen slot. |
concept_index | INTEGER | Index of this concept within its data_page, when multiple concepts share the same page. |
data_page | INTEGER | Data page number this concept configuration entry belongs to. |
concept_key | INTEGER | Key identifying which specific concept (data source) is configured by this entry. |
scaling | INTEGER | Scale factor applied to the displayed value. |
data_units | INTEGER | Unit this data concept's displayed value is shown in (e.g. miles per hour, degrees Celsius, RPM, beats per minute). |
qualifier | INTEGER | Qualifier identifying the variant of this data concept. |
descriptor | INTEGER | Index of the descriptor string used to label this data concept. |
is_signed | INTEGER | Whether the concept's value should be interpreted as signed rather than unsigned.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
ExdDataFieldConfiguration
ExdDataFieldConfiguration.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
screen_index | INTEGER | Index of the Connect IQ data-field screen this configuration entry belongs to. |
concept_field | INTEGER | Connect IQ data-field concept identifier controlling what kind of data this screen entry displays. |
field_id | INTEGER | Connect IQ data-field identifier assigned to this screen slot. |
concept_count | INTEGER | Number of concepts configured for this data field. |
display_type | INTEGER | Display format used for this Connect IQ data field, such as numeric or text. |
title | TEXT | Title text shown for this data field configuration.Normally a single-element array; the FIT profile permits more than one. |
ExdScreenConfiguration
ExdScreenConfiguration.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
screen_index | INTEGER | Index of the Connect IQ data-field screen this configuration entry belongs to. |
field_count | INTEGER | Number of fields on the screen. |
layout | INTEGER | Layout identifier for this data screen. |
screen_enabled | INTEGER | Whether 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
exercise_category | INTEGER | Raw 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_name | INTEGER | Raw 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_name | TEXT | Custom 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
file | INTEGER | FIT file type this capability entry applies to. |
mesg_number | INTEGER | Message Number. |
field_number | INTEGER | FIT field number (within mesg_number) this capability entry applies to. |
Count | INTEGER | Number of instances of this field supported by the device. |
FieldDescription
FieldDescription.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
developer_data_index | INTEGER | Index identifying which DeveloperDataId source this field description belongs to. |
field_definition_number | INTEGER | FIT field-definition number this developer field is assigned within its message. |
fit_base_type_id | INTEGER | FIT base type (such as uint8 or sint16) this developer field's raw bytes should be interpreted as. |
field_name | TEXT | Display name for this developer field.Normally a single-element array; the FIT profile permits more than one. |
array | INTEGER | Number of elements if this developer field holds an array of values. |
components | TEXT | Native fields this developer field expands into, if any. |
scale | INTEGER | Scale factor applied when decoding this developer field. |
offset | INTEGER | Value offset applied when decoding this developer field. |
units | TEXT | Unit of measurement for this developer field's values.Normally a single-element array; the FIT profile permits more than one. |
bits | TEXT | Bit-field layout of this developer field's value. |
accumulate | TEXT | Whether values for this developer field accumulate across messages rather than overwrite the previous value. |
fit_base_unit_id | INTEGER | FIT base unit this developer field's values are measured in, when applicable. |
native_mesg_number | INTEGER | Native Message Number. |
native_field_number | INTEGER | FIT 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
type | INTEGER | The type. |
flags | INTEGER | The flags. |
directory | TEXT | The directory. |
max_count | INTEGER | The maximum count. |
max_size | INTEGER | Maximum size in bytes. |
FileCreator
Is the record describing the device and software used to create the FIT file.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
software_version | INTEGER | Software or firmware version installed on the device. |
hardware_version | INTEGER | Hardware revision number of the device. |
FileID
The record that identifies the file and the device that created it.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | — |
type | INTEGER | FIT 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_id | INTEGER | FIT manufacturer code identifying the device maker, such as Garmin or a third-party partner. |
product_id | INTEGER | Manufacturer-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_id | INTEGER | Favero-specific product code identifying the device model, valid only when manufacturer_id is Favero Electronics. |
garmin_product_id | INTEGER | Garmin-specific product code identifying the device model, valid only when manufacturer_id is Garmin. |
serial_number | INTEGER | Serial number of the device, when available. |
time_created | TEXT | Only set for files that can be created/erased, in ISO8601 format. |
number | INTEGER | Only set for files that are not created/erased. |
product_name | TEXT | Optional free form string to indicate the devices name or model. |
path | TEXT | Filesystem path of the source .FIT file. |
imported_at | TEXT | ISO8601 timestamp of when this file was imported. |
Goal
Goal represents user-defined fitness goals including type, value, and recurrence.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
sport_id | INTEGER | Sport-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_id | INTEGER | Sub-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_date | TEXT | Date this goal becomes active, in ISO8601 format. |
end_date | TEXT | Date this goal expires, in ISO8601 format. |
type | INTEGER | Type of goal, such as distance, time, or calories.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup. |
value | INTEGER | Target value for the goal. |
repeat | INTEGER | Number of times the goal repeats.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
target_value | INTEGER | Target 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). |
recurrence | INTEGER | How 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_value | INTEGER | How often the goal recurs, in units of the recurrence field (such as every N days or weeks). |
enabled | INTEGER | Whether this goal is enabled.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
source | INTEGER | Source 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | Whole second part of the timestamp, in ISO8601 format. |
timestamp_ms | INTEGER | Millisecond part of the timestamp. |
position_lat | INTEGER | Latitude in semicircles. |
position_long | INTEGER | Longitude in semicircles. |
enhanced_altitude | REAL | Altitude at this point, in metres (extended-range GPS-metadata encoding). |
enhanced_speed | REAL | Speed in meters per second, extended-range encoding. |
heading | REAL | Heading in degrees. |
utc_timestamp | TEXT | UTC 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. |
velocity | TEXT | units: 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | Whole second part of the timestamp, in ISO8601 format. |
timestamp_ms | INTEGER | Millisecond part of the timestamp. |
sample_time_offset | TEXT | Each 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_x | TEXT | units: 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_y | TEXT | units: 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_z | TEXT | units: 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_x | TEXT | units: deg/s; Calibrated gyro reading.One value per sample, index-aligned with sample_time_offset. |
calibrated_gyro_y | TEXT | units: deg/s; Calibrated gyro reading.One value per sample, index-aligned with sample_time_offset. |
calibrated_gyro_z | TEXT | units: deg/s; Calibrated gyro reading.One value per sample, index-aligned with sample_time_offset. |
Hr
- heart rate.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
fractional_timestamp | REAL | Fractional-second part of the timestamp, in seconds. |
time256 | REAL | Time in seconds, encoded at 1/256-second resolution. |
filtered_bpm | TEXT | Filtered 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_timestamp | TEXT | Time 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_timestamp12 | TEXT | Alternate, 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
enabled | INTEGER | Whether this heart rate monitor profile is enabled.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
hrm_ant_id | INTEGER | ANT device ID of the heart rate monitor paired with this profile. |
log_hrv | INTEGER | Whether heart rate variability (HRV) data is logged for this profile.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
hrm_ant_id_trans_type | INTEGER | ANT transmission type of the heart rate monitor identified by hrm_ant_id. |
Hrv
Heart-rate-variability samples -- time between successive heartbeats.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
time | TEXT | units: 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).
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
weekly_average | REAL | units: ms; scale: 128; 7 day RMSSD average over sleep. |
last_night_average | REAL | units: ms; scale: 128; Last night RMSSD average over sleep. |
last_night5_min_high | REAL | units: ms; scale: 128; 5 minute high RMSSD value over sleep. |
baseline_low_upper | REAL | units: ms; scale: 128; 3 week baseline, upper boundary of low HRV status. |
baseline_balanced_lower | REAL | units: ms; scale: 128; 3 week baseline, lower boundary of balanced HRV status. |
baseline_balanced_upper | REAL | units: ms; scale: 128; 3 week baseline, upper boundary of balanced HRV status. |
status | INTEGER | Overall HRV status classification. |
HrvValue
A single rolling RMSSD (heart-rate-variability) sample.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
value | REAL | 5-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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Message index. |
high_bpm | INTEGER | —. Units: bpm. |
heart_rate_zone_name | TEXT | User-assigned name for this heart rate zone. |
HsaAccelerometerData
Hsa_accelerometer_data: Raw accelerometer data used for HSA custom data logging.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
timestamp_ms | INTEGER | Millisecond part of the timestamp. |
sampling_interval | INTEGER | Sampling Interval in Milliseconds. |
accel_x | TEXT | units: mG; scale: 1.024; X-Axis Measurement.One value per sample, spaced sampling_interval milliseconds apart, index-aligned with accel_y/accel_z. |
accel_y | TEXT | units: mG; scale: 1.024; Y-Axis Measurement.One value per sample, spaced sampling_interval milliseconds apart, index-aligned with accel_x/accel_z. |
accel_z | TEXT | units: mG; scale: 1.024; Z-Axis Measurement.One value per sample, spaced sampling_interval milliseconds apart, index-aligned with accel_x/accel_y. |
timestamp32k | TEXT | 32 kHz timestamp. |
HsaBodyBatteryData
Hsa_body_battery_data: Body battery data used for HSA custom data logging.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
processing_interval | INTEGER | Processing interval length in seconds. |
level | TEXT | units: percent; Body battery level: [0,100] Blank: -16.One value per sample, spaced processing_interval seconds apart, index-aligned with charged/uncharged. |
charged | TEXT | Body battery charged value.One value per sample, spaced processing_interval seconds apart, index-aligned with level/uncharged. |
uncharged | TEXT | Body 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
data | TEXT | Encoded configuration data. Health SDK use only.One byte per element; length given by data_size. |
data_size | INTEGER | size in bytes of data field. |
HsaEvent
Hsa_event: HSA events.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
event_id | INTEGER | Event ID. Health SDK use only. |
HsaGyroscopeData
Hsa_gyroscope_data:.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
timestamp_ms | INTEGER | Millisecond part of the timestamp. |
sampling_interval | INTEGER | Sampling Interval in 32 kHz timescale. Units: 1/32768 s. |
gyro_x | TEXT | units: deg/s; scale: 28.57143; X-Axis Measurement.One value per sample, spaced sampling_interval apart, index-aligned with gyro_y/gyro_z. |
gyro_y | TEXT | units: deg/s; scale: 28.57143; Y-Axis Measurement.One value per sample, spaced sampling_interval apart, index-aligned with gyro_x/gyro_z. |
gyro_z | TEXT | units: deg/s; scale: 28.57143; Z-Axis Measurement.One value per sample, spaced sampling_interval apart, index-aligned with gyro_x/gyro_y. |
timestamp32k | TEXT | 32 kHz timestamp. |
HsaHeartRateData
Hsa_heart_rate_data: User's current heart rate data used for HSA custom data logging.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
processing_interval | INTEGER | Processing interval length in seconds. |
status | INTEGER | Of measurements in buffer - 0 indicates SEARCHING 1 indicates LOCKED. |
heart_rate | TEXT | units: 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
processing_interval | INTEGER | Processing interval length in seconds. |
respiration_rate | TEXT | Respiration 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
processing_interval | INTEGER | Processing interval length in seconds. |
reading_spo2 | TEXT | units: percent; SpO2 Reading: [70,100] Blank: 240.One value per sample, spaced processing_interval seconds apart, index-aligned with confidence. |
confidence | TEXT | SpO2 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
processing_interval | INTEGER | Processing interval length in seconds. |
steps | TEXT | units: 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
processing_interval | INTEGER | Processing interval length in seconds. |
StressLevel | TEXT | units: 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
processing_interval | INTEGER | Processing interval length in seconds. |
value | TEXT | units: 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
distance | REAL | Horizontal distance covered by the jump, in meters. |
height | REAL | height of the jump in meters. |
rotations | INTEGER | Number of rotations completed during the jump. |
hang_time | REAL | Time spent airborne during the jump, in seconds. |
score | REAL | A score for a jump calculated based on hang time, rotations, and distance. |
position_lat | INTEGER | Latitude in semicircles. |
position_long | INTEGER | Longitude in semicircles. |
speed | REAL | speed at takeoff, in meters per second. |
enhanced_speed | REAL | speed in meters per second, extended-range encoding. |
Lap
contains data for a single lap within a session.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
timestamp | TEXT | In ISO8601 format. |
event_id | INTEGER | FIT 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_type | INTEGER | FIT 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_time | TEXT | Start time of the lap, in ISO8601 format. |
start_position_lat | INTEGER | Latitude of the start position, in semicircles. |
start_position_long | INTEGER | Longitude of the start position, in semicircles. |
end_position_lat | INTEGER | Latitude of the end position, in semicircles. |
end_position_long | INTEGER | Longitude of the end position, in semicircles. |
total_elapsed_time | REAL | Time (includes pauses). Units: s. |
total_timer_time | REAL | Timer Time (excludes pauses). Units: s. |
total_distance | REAL | Total distance in meters. |
total_cycles | INTEGER | Total cycles, such as pedal revolutions or steps. |
total_strides | INTEGER | Total number of strides. |
total_strokes | INTEGER | Total number of strokes. |
total_calories | INTEGER | Total calories burned, in kilocalories. |
total_fat_calories | INTEGER | Total calories burned from fat, in kilocalories. |
avg_speed | REAL | Average speed in meters per second. |
max_speed | REAL | Maximum speed in meters per second. |
avg_heart_rate | INTEGER | Average heart rate in beats per minute. |
max_heart_rate | INTEGER | Maximum heart rate in beats per minute. |
avg_cadence | INTEGER | Average 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_cadence | INTEGER | Average running cadence in strides per minute. |
max_cadence | INTEGER | Maximum cadence in revolutions per minute. |
max_running_cadence | INTEGER | Maximum running cadence in strides per minute. |
avg_power | INTEGER | Average 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_power | INTEGER | Maximum power in watts. |
total_ascent | INTEGER | Total ascent in meters. |
total_descent | INTEGER | Total descent in meters. |
intensity | INTEGER | Intensity 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_trigger | INTEGER | What 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_id | INTEGER | Sport-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_group | INTEGER | Groups 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_lengths | INTEGER | # of lengths of swim pool. |
normalized_power | INTEGER | Normalized power in watts. |
left_right_balance | INTEGER | Left/right power balance as a percentage, encoded per the FIT left_right_balance_100 type (high bit flags the measurement source). |
first_length_index | INTEGER | Index of the first length (in the parent Session's swim lengths) belonging to this lap. |
avg_stroke_distance | REAL | Average distance covered per stroke, in meters. |
swim_stroke | INTEGER | Swimming stroke type used during this lap.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup. |
sub_sport_id | INTEGER | Sub-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_lengths | INTEGER | # of active lengths of swim pool. |
total_work | INTEGER | Total work performed, in joules. |
avg_altitude | REAL | Average altitude during this lap, in metres. |
max_altitude | REAL | Maximum altitude reached during this lap, in metres. |
gps_accuracy | INTEGER | Estimated GPS position accuracy, in meters. |
avg_grade | REAL | Average grade (slope) as a percentage. |
avg_pos_grade | REAL | Average ascending grade, as a percentage. |
avg_neg_grade | REAL | Average descending grade, as a percentage. |
max_pos_grade | REAL | Steepest ascending grade, as a percentage. |
max_neg_grade | REAL | Steepest descending grade, as a percentage. |
avg_temperature | INTEGER | Average temperature in degrees Celsius. |
max_temperature | INTEGER | Maximum temperature in degrees Celsius. |
total_moving_time | REAL | Total time spent moving, in seconds. |
avg_pos_vertical_speed | REAL | Average ascending vertical speed, in meters per second. |
avg_neg_vertical_speed | REAL | Average descending vertical speed, in meters per second. |
max_pos_vertical_speed | REAL | Maximum ascending vertical speed, in meters per second. |
max_neg_vertical_speed | REAL | Maximum descending vertical speed, in meters per second. |
time_in_heart_rate_zone | TEXT | Total 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_zone | TEXT | Total 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_zone | TEXT | Total 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_zone | TEXT | Total 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_number | INTEGER | Ordinal position of this lap within a repeated/looped sequence of laps. |
min_altitude | REAL | Minimum altitude reached during this lap, in metres. |
min_heart_rate | INTEGER | Minimum heart rate in beats per minute. |
workout_step_index | INTEGER | Index of the workout_step (in the parent Workout) that produced this record, when generated by a structured workout. |
opponent_score | INTEGER | Opponent's score in games or sports with an adversarial scoring system, such as squash or racquetball. |
stroke_count | TEXT | Number of times each swimming stroke type was used.One value per stroke_type enum value. |
zone_count | TEXT | Count recorded for each zone.One value per zone. |
avg_vertical_oscillation | REAL | Average vertical oscillation in millimeters. |
avg_stance_time_percent | REAL | Average ground contact time as a percentage of the stride cycle. |
avg_stance_time | REAL | Average ground contact time per step, in milliseconds. |
avg_fractional_cadence | REAL | Fractional part of the avg_cadence. Units: rpm. |
max_fractional_cadence | REAL | Fractional part of the max_cadence. Units: rpm. |
total_fractional_cycles | REAL | Fractional part of the total_cycles. Units: cycles. |
player_score | INTEGER | This user's own score in games or sports with a scoring system, such as squash or racquetball. |
avg_total_hemoglobin_conc | TEXT | units: 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_conc | TEXT | units: 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_conc | TEXT | units: 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_percent | TEXT | units: %; 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_percent | TEXT | units: %; 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_percent | TEXT | units: %; 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_effectiveness | REAL | Average left torque effectiveness, as a percentage. |
avg_right_torque_effectiveness | REAL | Average right torque effectiveness, as a percentage. |
avg_left_pedal_smoothness | REAL | Average left pedal smoothness, as a percentage. |
avg_right_pedal_smoothness | REAL | Average right pedal smoothness, as a percentage. |
avg_combined_pedal_smoothness | REAL | Average combined pedal smoothness, as a percentage. |
time_standing | REAL | Total time spent in the standing position. Units: s. |
stand_count | INTEGER | Number of transitions to the standing state. |
avg_left_pco | INTEGER | Average left platform center offset. Units: mm. |
avg_right_pco | INTEGER | Average right platform center offset. Units: mm. |
avg_left_power_phase | TEXT | Average 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_peak | TEXT | As 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_phase | TEXT | As avg_left_power_phase, for the right leg.One value per power_phase_type enum value. |
avg_right_power_phase_peak | TEXT | As avg_left_power_phase_peak, for the right leg.One value per power_phase_type enum value. |
avg_power_position | TEXT | Average 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_position | TEXT | As avg_power_position, but the maximum power reached rather than the average.One value per rider_position_type enum value. |
avg_cadence_position | TEXT | Average 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_position | TEXT | As avg_cadence_position, but the maximum cadence reached rather than the average.One value per rider_position_type enum value. |
enhanced_avg_speed | REAL | Average speed in meters per second, extended-range encoding. |
enhanced_max_speed | REAL | Maximum speed in meters per second, extended-range encoding. |
enhanced_avg_altitude | REAL | Average altitude during this lap, in metres (extended-range counterpart to avg_altitude). |
enhanced_min_altitude | REAL | Minimum altitude reached during this lap, in metres (extended-range counterpart to min_altitude). |
enhanced_max_altitude | REAL | Maximum altitude reached during this lap, in metres (extended-range counterpart to max_altitude). |
avg_lev_motor_power | INTEGER | Lev average motor power during lap. Units: watts. |
max_lev_motor_power | INTEGER | Lev maximum motor power during lap. Units: watts. |
lev_battery_consumption | REAL | Lev battery consumption during lap. Units: percent. |
avg_vertical_ratio | REAL | Average vertical ratio, as a percentage. |
avg_stance_time_balance | REAL | Average left/right balance of ground contact time, as a percentage. |
avg_step_length | REAL | Average step length in millimeters. |
avg_vam | REAL | Average ascent speed (VAM) in meters per second. |
avg_depth | REAL | 0 if above water. Units: m. |
max_depth | REAL | 0 if above water. Units: m. |
min_temperature | INTEGER | Minimum temperature in degrees Celsius. |
enhanced_avg_respiration_rate | REAL | Average respiration rate in breaths per minute. |
enhanced_max_respiration_rate | REAL | Maximum respiration rate in breaths per minute. |
avg_respiration_rate | INTEGER | Average respiration rate during this period, in breaths per minute; superseded by the wider-range enhanced_avg_respiration_rate where present. |
max_respiration_rate | INTEGER | Maximum respiration rate during this period, in breaths per minute; superseded by the wider-range enhanced_max_respiration_rate where present. |
total_grit | REAL | The 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_flow | REAL | The 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_count | INTEGER | Number of jumps detected during this period, such as skiing or snowboarding jumps. |
avg_grit | REAL | The 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_flow | REAL | The 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_ascent | REAL | Fractional part of total_ascent. Units: m. |
total_fractional_descent | REAL | Fractional part of total_descent. Units: m. |
avg_core_temperature | REAL | Average core body temperature in degrees Celsius. |
min_core_temperature | REAL | Minimum core body temperature in degrees Celsius. |
max_core_temperature | REAL | Maximum core body temperature in degrees Celsius. |
Length
contains data for a single length in swimming activities.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
timestamp | TEXT | In ISO8601 format. |
event_id | INTEGER | FIT 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_type | INTEGER | FIT 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_time | TEXT | Start time of the length, in ISO8601 format. |
total_elapsed_time | REAL | Total elapsed time, including pauses, in seconds. |
total_timer_time | REAL | Total timer time, excluding pauses, in seconds. |
total_strokes | INTEGER | Total number of strokes. |
avg_speed | REAL | Average speed in meters per second. |
swim_stroke | INTEGER | Swimming stroke type used.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup. |
avg_swimming_cadence | INTEGER | Average swimming cadence in strokes per minute. |
event_group | INTEGER | Groups 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_calories | INTEGER | Total calories burned, in kilocalories. |
length_type | INTEGER | Classification 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_score | INTEGER | This user's own score in games or sports with a scoring system, such as squash or racquetball. |
opponent_score | INTEGER | Opponent's score in games or sports with an adversarial scoring system, such as squash or racquetball. |
stroke_count | TEXT | Number of times each swimming stroke type was used.One value per stroke_type enum value. |
zone_count | TEXT | Count recorded for each zone.One value per zone. |
enhanced_avg_respiration_rate | REAL | Average respiration rate in breaths per minute. |
enhanced_max_respiration_rate | REAL | Maximum respiration rate in breaths per minute. |
avg_respiration_rate | INTEGER | Average respiration rate during this period, in breaths per minute; superseded by the wider-range enhanced_avg_respiration_rate where present. |
max_respiration_rate | INTEGER | Maximum 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | Whole second part of the timestamp, in ISO8601 format. |
timestamp_ms | INTEGER | Millisecond part of the timestamp. |
sample_time_offset | TEXT | Each 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_x | TEXT | units: 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_y | TEXT | units: 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_z | TEXT | units: 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_x | TEXT | units: G; Calibrated Magnetometer reading.One value per sample, index-aligned with sample_time_offset. |
calibrated_mag_y | TEXT | units: G; Calibrated Magnetometer reading.One value per sample, index-aligned with sample_time_offset. |
calibrated_mag_z | TEXT | units: G; Calibrated Magnetometer reading.One value per sample, index-aligned with sample_time_offset. |
MaxMetData
Max_met_data:.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
update_time | TEXT | Time maxMET and vo2 were calculated, in ISO8601 format. |
vo2_max | REAL | Estimated VO2 max, in milliliters per kilogram per minute. |
sport_id | INTEGER | Sport-type code identifying the sport, such as running or cycling; sub_sport_id narrows this further. |
sub_sport_id | INTEGER | Sub-sport-type code providing a more specific classification within sport_id, such as indoor cycling or trail running. |
max_met_category | INTEGER | Category of activity used when estimating max MET/VO2max, such as running or cycling. |
calibrated_data | INTEGER | Indicates if calibrated data was used in the calculation.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
heart_rate_source | INTEGER | Indicates if the estimate was obtained using a chest strap or wrist heart rate. |
speed_source | INTEGER | Indidcates if the estimate was obtained using onboard GPS or connected GPS. |
MemoGlob
Memo_glob:.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
part_index | INTEGER | Sequence number of memo blocks. |
memo | TEXT | Deprecated. Use data field.One byte per element of this deprecated raw byte array. |
mesg_number | INTEGER | Message Number of the parent message. |
parent_index | INTEGER | Index of mesg that this glob is associated with. |
field_number | INTEGER | Field within the parent that this glob is associated with. |
data | TEXT | Block 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
file | INTEGER | The file number. |
mesg_number | INTEGER | The message number. |
count_type | INTEGER | The count type. |
Count | INTEGER | Number of instances of this message supported by the device. |
number_per_file | INTEGER | Num per file. |
max_per_file | INTEGER | Maximum number of instances of this message type supported per file. |
max_per_file_type | INTEGER | How 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
high_bpm | INTEGER | Upper boundary of this MET zone, in beats per minute. |
calories | REAL | Calorie-burn threshold for this MET zone, in kilocalories. |
fat_calories | REAL | Rate 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. Must align to logging interval, for example, time must be 00:00:00 for daily log. |
device_index | INTEGER | Associates this data to device_info message. Not required for file with single device (sensor). |
calories | INTEGER | Accumulated total calories. Maintained by MonitoringReader for each activity_type. See SDK documentation. |
distance | REAL | Accumulated distance. Maintained by MonitoringReader for each activity_type. See SDK documentation. Units: m. |
cycles | REAL | Accumulated cycles. Maintained by MonitoringReader for each activity_type. See SDK documentation. |
steps | INTEGER | Total step count during the logging interval. |
strokes | REAL | Accumulated stroke count during the logging interval. |
active_time | REAL | Active time in seconds. |
activity_type | INTEGER | FIT activity-type code classifying the kind of activity this sample represents, such as walking, running, or sleeping. |
activity_subtype | INTEGER | FIT activity-subtype code providing a more specific classification within activity_type. |
activity_level | INTEGER | Intensity level of the tracked activity, such as low, medium, or high. |
distance16 | INTEGER | Low 16 bits of the cumulative distance; combine with the matching distance field to reconstruct the full value. |
cycles16 | INTEGER | Low 16 bits of the cumulative cycle count; combine with the matching cycles field to reconstruct the full value. |
active_time16 | INTEGER | Low 16 bits of the active-time counter; combine with the matching active-time field to reconstruct the full value. |
local_timestamp | TEXT | In ISO8601 format. Must align to logging interval, for example, time must be 00:00:00 for daily log. |
temperature | REAL | Avg temperature during the logging interval ended at timestamp. Units: C. |
temperature_min | REAL | Min temperature during the logging interval ended at timestamp. |
temperature_max | REAL | Max temperature during the logging interval ended at timestamp. Units: C. |
activity_time | TEXT | units: minutes; Indexed using minute_activity_level enum.One value per minute_activity_level enum value. |
active_calories | INTEGER | Active calories burned, in kilocalories. |
current_activity_type_intensity | INTEGER | Indicates single type / intensity for duration since last monitoring message. |
timestamp_min8 | TEXT | Low bits of the timestamp, in minutes; combine with the matching timestamp field to reconstruct the full value. |
timestamp16 | TEXT | Low bits of the timestamp; combine with the matching timestamp field to reconstruct the full value. |
heart_rate | INTEGER | Heart rate in beats per minute. |
intensity | REAL | Activity intensity level during the logging interval. |
duration_min | INTEGER | duration in minutes. |
duration | INTEGER | Length of the logging interval, in seconds. |
ascent | REAL | Accumulated ascent in meters during the logging interval. |
descent | REAL | Accumulated descent in meters during the logging interval. |
moderate_activity_minutes | INTEGER | Minutes spent in moderate-intensity activity. |
vigorous_activity_minutes | INTEGER | Minutes spent in vigorous-intensity activity. |
pushes | INTEGER | Wheelchair pushes recorded in this monitoring period. |
MonitoringHrData
Monitoring_hr_data:.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. Must align to logging interval, for example, time must be 00:00:00 for daily log. |
resting_heart_rate | INTEGER | 7-day rolling average. Units: bpm. |
current_day_resting_heart_rate | INTEGER | RHR for today only. (Feeds into 7-day average). Units: bpm. |
MonitoringInfo
Monitoring_info:.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
local_timestamp | TEXT | Timestamp 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_type | TEXT | FIT 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_distance | TEXT | units: m/cycle; scale: 5000; Indexed by activity_type.One value per element of activity_type, index-aligned with it. |
cycles_to_calories | TEXT | units: kcal/cycle; scale: 5000; Indexed by activity_type.One value per element of activity_type, index-aligned with it. |
resting_metabolic_rate | INTEGER | Estimated calories burned per day at rest (basal metabolic rate). Units: kcal / day. |
NapEvent
Nap Event record.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
timestamp | TEXT | In ISO8601 format. |
start_time | TEXT | Start of the nap period, in ISO8601 format. |
start_timezone_offset | INTEGER | Timezone offset at start of the nap period. Units: minutes. |
end_time | TEXT | End of the nap period, in ISO8601 format. |
end_timezone_offset | INTEGER | Timezone offset at end of the nap period. Units: minutes. |
feedback | INTEGER | The 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_deleted | INTEGER | Whether this nap event has been deleted.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
source | INTEGER | How this nap was recorded -- detected automatically by the device, entered manually on the device, or entered manually via Garmin Connect. |
update_timestamp | TEXT | timestamp this record was last updated, in ISO8601 format. |
NmeaSentence
Stores raw NMEA sentences from GPS devices.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
timestamp_ms | INTEGER | Fractional part of timestamp, added to timestamp. Units: ms. |
sentence | TEXT | NMEA sentence. |
ObdiiData
contains vehicle diagnostic data captured during an activity.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | Time the message was output, in ISO8601 format. |
timestamp_ms | INTEGER | Fractional part of timestamp, added to timestamp. Units: ms. |
time_offset | TEXT | units: 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. |
pid | INTEGER | Parameter ID. |
raw_data | TEXT | Raw parameter data.One value per PID reading, index-aligned with time_offset/system_time. |
pid_data_size | TEXT | Optional, data size of PID[i]. If not specified refer to SAE J1979.One value per PID reading, index-aligned with raw_data. |
system_time | TEXT | System 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_timestamp | TEXT | timestamp of first sample recorded in the message, in ISO8601 format. Used with time_offset to generate time of each sample. |
start_timestamp_ms | INTEGER | Fractional part of start_timestamp. Units: ms. |
OhrSettings
Configures optical heart rate sensor settings.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
enabled | INTEGER | Whether the optical heart rate sensor is enabled. |
OneDSensorCalibration
Stores calibration data for 1D sensors such as barometers.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | Whole second part of the timestamp, in ISO8601 format. |
sensor_type | INTEGER | Indicates which sensor the calibration is for. |
calibration_factor | INTEGER | Calibration factor used to convert from raw ADC value to degrees, g, etc. |
baro_cal_factor | INTEGER | Barometer calibration factor. Units: Pa. |
calibration_divisor | INTEGER | Calibration factor divisor. Units: counts. |
level_shift | INTEGER | Level shift value used to shift the ADC value back into range. |
offset_cal | INTEGER | Internal Calibration factor. |
PowerZone
Defines power training zones.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
high_value | INTEGER | Upper boundary of this power zone, in watts. |
Name | TEXT | User-assigned name for this power zone. |
RawBbi
Raw_bbi: Raw Beat-to-Beat Interval values.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
timestamp_ms | INTEGER | Millisecond part of the timestamp. |
data | TEXT | 1 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. |
time | TEXT | units: ms; Array of millisecond times between beats.One value per beat interval, index-aligned with data/quality/gap. |
quality | TEXT | 1 = high confidence. 0 = low confidence. N/A when gap = 1.One value per beat interval, index-aligned with data/time/gap. |
gap | TEXT | 1 = 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
position_lat | INTEGER | Latitude in semicircles. |
position_long | INTEGER | Longitude in semicircles. |
altitude | REAL | Altitude at this point, in metres. |
heart_rate | INTEGER | Heart rate in beats per minute. |
cadence | INTEGER | cadence in revolutions per minute. |
distance | REAL | Cumulative distance covered so far, in meters. |
speed | REAL | speed in meters per second. |
power | INTEGER | power in watts. |
compressed_speed_distance | TEXT | Speed 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. |
grade | REAL | grade (slope) as a percentage. |
resistance | INTEGER | Relative. 0 is none 254 is Max. |
time_from_course | REAL | Time ahead of or behind the course pace, in seconds. |
cycle_length | REAL | Length of one cycle, such as one pedal revolution or stride, in meters. |
temperature | INTEGER | temperature in degrees Celsius. |
speed1s | TEXT | units: 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. |
cycles | INTEGER | Total cycles at this point, such as pedal revolutions or steps. |
total_cycles | INTEGER | Total cycles, such as pedal revolutions or steps. |
compressed_accumulated_power | INTEGER | Accumulated power in watts, compressed encoding. |
accumulated_power | INTEGER | Accumulated power in watts. |
left_right_balance | INTEGER | Left/right power balance as a percentage, encoded per the FIT left_right_balance_100 type (high bit flags the measurement source). |
gps_accuracy | INTEGER | Estimated GPS position accuracy, in meters. |
vertical_speed | REAL | Vertical speed in meters per second. |
calories | INTEGER | calories burned to this point in the activity, in kilocalories. |
vertical_oscillation | REAL | Vertical oscillation in millimeters. |
stance_time_percent | REAL | Ground contact time as a percentage of the stride cycle. |
stance_time | REAL | Ground contact time per step, in milliseconds. |
activity_type | INTEGER | FIT 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_effectiveness | REAL | Left torque effectiveness, as a percentage. |
right_torque_effectiveness | REAL | Right torque effectiveness, as a percentage. |
left_pedal_smoothness | REAL | Left pedal smoothness, as a percentage. |
right_pedal_smoothness | REAL | Right pedal smoothness, as a percentage. |
combined_pedal_smoothness | REAL | Combined pedal smoothness, as a percentage. |
time128 | REAL | Elapsed time in seconds, encoded at 1/128-second resolution. |
stroke_type | INTEGER | Swimming stroke type recorded for this sample.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup. |
zone | INTEGER | Heart rate zone at this point. |
ball_speed | REAL | Ball speed in meters per second. |
cadence256 | REAL | Log cadence and fractional cadence for backwards compatability. Units: rpm. |
fractional_cadence | REAL | Fractional part of the cadence reading, in revolutions per minute. |
total_hemoglobin_conc | REAL | Total saturated and unsaturated hemoglobin. Units: g/dL. |
total_hemoglobin_conc_min | REAL | Min saturated and unsaturated hemoglobin. |
total_hemoglobin_conc_max | REAL | Max saturated and unsaturated hemoglobin. Units: g/dL. |
saturated_hemoglobin_percent | REAL | Percentage of hemoglobin saturated with oxygen. Units: %. |
saturated_hemoglobin_percent_min | REAL | Min percentage of hemoglobin saturated with oxygen. |
saturated_hemoglobin_percent_max | REAL | Max percentage of hemoglobin saturated with oxygen. Units: %. |
device_index | INTEGER | Index identifying which connected device this data pertains to, matching a device_info record's own device_index. |
left_pco | INTEGER | Left platform center offset. Units: mm. |
right_pco | INTEGER | Right platform center offset. Units: mm. |
left_power_phase | TEXT | units: 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_peak | TEXT | units: 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_phase | TEXT | units: 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_peak | TEXT | units: 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_speed | REAL | speed in meters per second, extended-range encoding. |
enhanced_altitude | REAL | Altitude at this point, in metres (extended-range counterpart to altitude). |
battery_soc | REAL | Lev battery state of charge. Units: percent. |
motor_power | INTEGER | Lev motor power. Units: watts. |
vertical_ratio | REAL | Vertical ratio, as a percentage. |
stance_time_balance | REAL | Left/right balance of ground contact time, as a percentage. |
step_length | REAL | Step length in millimeters. |
cycle_length16 | REAL | Supports larger cycle sizes needed for paddlesports. Max cycle size: 655.35. |
absolute_pressure | INTEGER | Includes atmospheric pressure. Units: Pa. |
depth | REAL | 0 if above water. Units: m. |
next_stop_depth | REAL | 0 if above water. Units: m. |
next_stop_time | INTEGER | Time until the next decompression stop, in seconds. |
time_to_surface | INTEGER | Estimated time to safely surface from the dive, in seconds. |
ndl_time | INTEGER | No-decompression limit remaining, in seconds. |
cns_load | INTEGER | Central nervous system oxygen toxicity load, as a percentage. |
n2_load | INTEGER | Nitrogen loading, as a percentage. |
respiration_rate | INTEGER | Respiration rate in breaths per minute. |
enhanced_respiration_rate | REAL | Respiration rate in breaths per minute, extended-range encoding. |
grit | REAL | The 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. |
flow | REAL | The 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_stress | REAL | Current Stress value. |
ebike_travel_range | INTEGER | Estimated remaining e-bike range, in kilometers. |
ebike_battery_level | INTEGER | E-bike battery level as a percentage. |
ebike_assist_mode | INTEGER | The e-bike's current assist-power mode/level, as reported by the bike's own sensor. Units: depends on sensor. |
ebike_assist_level_percent | INTEGER | E-bike motor assist level as a percentage. |
air_time_remaining | INTEGER | Estimated remaining air time in seconds. |
pressure_sac | REAL | Pressure-based surface air consumption. Units: bar/min. |
volume_sac | REAL | Volumetric surface air consumption. Units: L/min. |
rmv | REAL | Respiratory minute volume. |
ascent_rate | REAL | Rate of ascent in meters per second. |
po2 | REAL | Current partial pressure of oxygen. Units: percent. |
core_temperature | REAL | Core body temperature in degrees Celsius. |
RespirationRate
Respiration rate in breaths per minute.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
respiration_rate | REAL | Breaths * 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
manufacturer_id | INTEGER | Corresponds to file_id of scheduled workout / course. |
product_id | INTEGER | Corresponds to file_id of scheduled workout / course. |
favero_product_id | INTEGER | Favero-specific product code identifying the device model, valid only when manufacturer_id is Favero Electronics. |
garmin_product_id | INTEGER | Garmin-specific product code identifying the device model, valid only when manufacturer_id is Garmin. |
serial_number | INTEGER | Corresponds to file_id of scheduled workout / course. |
time_created | INTEGER | Matches the file_id time_created of the scheduled workout or course, in ISO8601 format. |
completed | INTEGER | Whether this scheduled activity has been started.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
type | INTEGER | type of scheduled item, such as workout or course. |
scheduled_time | INTEGER | Time the workout or course is scheduled for, in ISO8601 format. |
SdmProfile
Stores configuration for speed and distance monitors (footpods).
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
enabled | INTEGER | Whether this speed and distance sensor profile is enabled.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
sdm_ant_id | INTEGER | ANT device ID of the speed/distance sensor (footpod) paired with this profile. |
sdm_cal_factor | REAL | Calibration factor for the speed and distance sensor, as a percentage. |
odometer | REAL | odometer reading in meters. |
speed_source | INTEGER | Use footpod for speed source instead of GPS.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
sdm_ant_id_trans_type | INTEGER | ANT transmission type of the footpod identified by sdm_ant_id. |
odometer_rollover | INTEGER | Rollover 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
file_uuid | TEXT | UUID of the segment file. |
enabled | INTEGER | State of the segment file.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
user_profile_primary_key | INTEGER | Primary key of the user that created the segment file. |
leader_type | TEXT | Leader 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_key | TEXT | Group 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_id | TEXT | Activity 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_string | TEXT | String 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_leader | INTEGER | Index for the Leader Board entry selected as the default race participant. |
SegmentId
Segment_id: Unique Identification data for a segment file.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
Name | TEXT | Friendly name assigned to segment. |
uuid | TEXT | Of the segment. |
sport_id | INTEGER | Sport associated with the segment.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup. |
enabled | INTEGER | Segment enabled for evaluation.Stored in SQLite as INTEGER: 0 = false, 1 = true. |
user_profile_primary_key | INTEGER | Primary key of the user that created the segment. |
device_id | INTEGER | ID of the device that created the segment. |
default_race_leader | INTEGER | Index for the Leader Board entry selected as the default race participant. |
delete_status | INTEGER | Indicates if any segments should be deleted. |
selection_type | INTEGER | Indicates 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:.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
timestamp | TEXT | In ISO8601 format. |
event_id | INTEGER | FIT 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_type | INTEGER | FIT 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_time | TEXT | Start time of the segment lap, in ISO8601 format. |
start_position_lat | INTEGER | Latitude of the start position, in semicircles. |
start_position_long | INTEGER | Longitude of the start position, in semicircles. |
end_position_lat | INTEGER | Latitude of the end position, in semicircles. |
end_position_long | INTEGER | Longitude of the end position, in semicircles. |
total_elapsed_time | REAL | Time (includes pauses). Units: s. |
total_timer_time | REAL | Timer Time (excludes pauses). Units: s. |
total_distance | REAL | Total distance in meters. |
total_cycles | INTEGER | Total cycles, such as pedal revolutions or steps. |
total_strokes | INTEGER | Total number of strokes. |
total_calories | INTEGER | Total calories burned, in kilocalories. |
total_fat_calories | INTEGER | Total calories burned from fat, in kilocalories. |
avg_speed | REAL | Average speed in meters per second. |
max_speed | REAL | Maximum speed in meters per second. |
avg_heart_rate | INTEGER | Average heart rate in beats per minute. |
max_heart_rate | INTEGER | Maximum heart rate in beats per minute. |
avg_cadence | INTEGER | Average 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_cadence | INTEGER | Maximum cadence in revolutions per minute. |
avg_power | INTEGER | Average 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_power | INTEGER | Maximum power in watts. |
total_ascent | INTEGER | Total ascent in meters. |
total_descent | INTEGER | Total descent in meters. |
sport_id | INTEGER | Sport-type code identifying the sport, such as running or cycling; sub_sport_id narrows this further. |
event_group | INTEGER | Groups 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_lat | INTEGER | North east corner latitude. Units: semicircles. |
nec_long | INTEGER | North east corner longitude. Units: semicircles. |
swc_lat | INTEGER | South west corner latitude. Units: semicircles. |
swc_long | INTEGER | South west corner latitude. Units: semicircles. |
Name | TEXT | User-assigned or generated name for this segment attempt. |
normalized_power | INTEGER | Normalized power in watts. |
left_right_balance | INTEGER | Left/right power balance as a percentage, encoded per the FIT left_right_balance_100 type (high bit flags the measurement source). |
sub_sport_id | INTEGER | Sub-sport-type code providing a more specific classification within sport_id, such as indoor cycling or trail running. |
total_work | INTEGER | Total work performed, in joules. |
avg_altitude | REAL | Average altitude during this segment lap, in metres. |
max_altitude | REAL | Maximum altitude reached during this segment lap, in metres. |
gps_accuracy | INTEGER | Estimated GPS position accuracy, in meters. |
avg_grade | REAL | Average grade (slope) as a percentage. |
avg_pos_grade | REAL | Average ascending grade, as a percentage. |
avg_neg_grade | REAL | Average descending grade, as a percentage. |
max_pos_grade | REAL | Steepest ascending grade, as a percentage. |
max_neg_grade | REAL | Steepest descending grade, as a percentage. |
avg_temperature | INTEGER | Average temperature in degrees Celsius. |
max_temperature | INTEGER | Maximum temperature in degrees Celsius. |
total_moving_time | REAL | Total time spent moving, in seconds. |
avg_pos_vertical_speed | REAL | Average ascending vertical speed, in meters per second. |
avg_neg_vertical_speed | REAL | Average descending vertical speed, in meters per second. |
max_pos_vertical_speed | REAL | Maximum ascending vertical speed, in meters per second. |
max_neg_vertical_speed | REAL | Maximum descending vertical speed, in meters per second. |
time_in_heart_rate_zone | TEXT | Total 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_zone | TEXT | Total 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_zone | TEXT | Total 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_zone | TEXT | Total 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_number | INTEGER | Ordinal position of this segment lap within a repeated/looped sequence of laps. |
min_altitude | REAL | Minimum altitude reached during this segment lap, in metres. |
min_heart_rate | INTEGER | Minimum heart rate in beats per minute. |
active_time | REAL | Active time in seconds. |
workout_step_index | INTEGER | Index of the workout_step (in the parent Workout) that produced this record, when generated by a structured workout. |
sport_event | INTEGER | Sport-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_effectiveness | REAL | Average left torque effectiveness, as a percentage. |
avg_right_torque_effectiveness | REAL | Average right torque effectiveness, as a percentage. |
avg_left_pedal_smoothness | REAL | Average left pedal smoothness, as a percentage. |
avg_right_pedal_smoothness | REAL | Average right pedal smoothness, as a percentage. |
avg_combined_pedal_smoothness | REAL | Average combined pedal smoothness, as a percentage. |
status | INTEGER | Status of the segment attempt, such as completed.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup. |
uuid | TEXT | Unique identifier of the segment. |
avg_fractional_cadence | REAL | Fractional part of the avg_cadence. Units: rpm. |
max_fractional_cadence | REAL | Fractional part of the max_cadence. Units: rpm. |
total_fractional_cycles | REAL | Fractional part of the total_cycles. Units: cycles. |
front_gear_shift_count | INTEGER | Number of front-derailleur gear shifts during this segment. |
rear_gear_shift_count | INTEGER | Number of rear-derailleur gear shifts during this segment. |
time_standing | REAL | Total time spent in the standing position. Units: s. |
stand_count | INTEGER | Number of transitions to the standing state. |
avg_left_pco | INTEGER | Average left platform center offset. Units: mm. |
avg_right_pco | INTEGER | Average right platform center offset. Units: mm. |
avg_left_power_phase | TEXT | Average 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_peak | TEXT | As 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_phase | TEXT | As avg_left_power_phase, for the right leg.One value per power_phase_type enum value. |
avg_right_power_phase_peak | TEXT | As avg_left_power_phase_peak, for the right leg.One value per power_phase_type enum value. |
avg_power_position | TEXT | Average 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_position | TEXT | As avg_power_position, but the maximum power reached rather than the average.One value per rider_position_type enum value. |
avg_cadence_position | TEXT | Average 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_position | TEXT | As avg_cadence_position, but the maximum cadence reached rather than the average.One value per rider_position_type enum value. |
manufacturer_id | INTEGER | Manufacturer that produced the segment. |
total_grit | REAL | The 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_flow | REAL | The 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_grit | REAL | The 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_flow | REAL | The 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_ascent | REAL | Fractional part of total_ascent. Units: m. |
total_fractional_descent | REAL | units: m; scale: 100; fractional part of total_descent. |
enhanced_avg_altitude | REAL | Average altitude during this segment lap, in metres (extended-range counterpart to avg_altitude). |
enhanced_max_altitude | REAL | Maximum altitude reached during this segment lap, in metres (extended-range counterpart to max_altitude). |
enhanced_min_altitude | REAL | Minimum 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
Name | TEXT | Friendly name assigned to leader. |
type | INTEGER | Leader classification. |
group_primary_key | INTEGER | Primary user ID of this leader. |
activity_id | INTEGER | ID of the activity associated with this leader time. |
segment_time | REAL | units: s; scale: 1000; Segment Time (includes pauses). |
activity_id_string | TEXT | String 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
position_lat | INTEGER | Latitude in semicircles. |
position_long | INTEGER | Longitude in semicircles. |
distance | REAL | Accumulated distance along the segment at the described point. Units: m. |
altitude | REAL | Offset: 500; Accumulated altitude along the segment at the described point. Units: m. |
leader_time | TEXT | units: 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_altitude | REAL | Offset: 500; Accumulated altitude along the segment at the described point. Units: m. |
Session
Represents a single workout or activity session with detailed metrics.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Selected bit is set for the current session. |
timestamp | TEXT | In ISO8601 format. |
event_id | INTEGER | Type of event; always ‘session’ for this message.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup. |
event_type | INTEGER | Event 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_time | TEXT | Start time of the session, in ISO8601 format. |
start_position_lat | INTEGER | Latitude of the start position, in semicircles. |
start_position_long | INTEGER | Longitude of the start position, in semicircles. |
sport_id | INTEGER | Sport-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_id | INTEGER | Sub-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_time | REAL | Time (includes pauses). Units: s. |
total_timer_time | REAL | Timer Time (excludes pauses). Units: s. |
total_distance | REAL | Total distance in meters. |
total_cycles | INTEGER | Total cycles, such as pedal revolutions or steps. |
total_strides | INTEGER | Total number of strides. |
total_strokes | INTEGER | Total number of strokes. |
total_calories | INTEGER | Total calories burned, in kilocalories. |
total_fat_calories | INTEGER | Total calories burned from fat, in kilocalories. |
avg_speed | REAL | Total_distance / total_timer_time. Units: m/s. |
max_speed | REAL | Maximum speed in meters per second. |
avg_heart_rate | INTEGER | Average heart rate (excludes pause time). Units: bpm. |
max_heart_rate | INTEGER | Maximum heart rate in beats per minute. |
avg_cadence | INTEGER | Average 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_cadence | INTEGER | Average running cadence in strides per minute. |
max_cadence | INTEGER | Maximum cadence in revolutions per minute. |
max_running_cadence | INTEGER | Maximum running cadence in strides per minute. |
avg_power | INTEGER | Average 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_power | INTEGER | Maximum power in watts. |
total_ascent | INTEGER | Total ascent in meters. |
total_descent | INTEGER | Total descent in meters. |
total_training_effect | REAL | Aerobic training effect score for the session. |
first_lap_index | INTEGER | Index of the first lap (in the parent Activity's laps) belonging to this session. |
number_laps | INTEGER | Num Laps. |
event_group | INTEGER | Groups related events together, distinguishing concurrent event streams (such as separate segments within a multisport session) that share the same event_id and event_type. |
trigger | INTEGER | What 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_lat | INTEGER | North east corner latitude. Units: semicircles. |
nec_long | INTEGER | North east corner longitude. Units: semicircles. |
swc_lat | INTEGER | South west corner latitude. Units: semicircles. |
swc_long | INTEGER | South west corner longitude. Units: semicircles. |
number_lengths | INTEGER | # of lengths of swim pool. |
normalized_power | INTEGER | Normalized power in watts. |
training_stress_score | REAL | Training stress score (TSS). |
intensity_factor | REAL | Intensity factor — normalized power as a fraction of functional threshold power. |
left_right_balance | INTEGER | Left/right power balance as a percentage, encoded per the FIT left_right_balance_100 type (high bit flags the measurement source). |
end_position_lat | INTEGER | Latitude of the end position, in semicircles. |
end_position_long | INTEGER | Longitude of the end position, in semicircles. |
avg_stroke_count | REAL | Average strokes per lap. |
avg_stroke_distance | REAL | Average distance covered per stroke, in meters. |
swim_stroke | INTEGER | Swimming stroke type used.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup. |
pool_length | REAL | Pool length in meters. |
threshold_power | INTEGER | Functional threshold power in watts. |
pool_length_unit | INTEGER | Unit (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_lengths | INTEGER | # of active lengths of swim pool. |
total_work | INTEGER | Total work performed, in joules. |
avg_altitude | REAL | Average altitude during this session, in metres. |
max_altitude | REAL | Maximum altitude reached during this session, in metres. |
gps_accuracy | INTEGER | Estimated GPS position accuracy, in meters. |
avg_grade | REAL | Average grade (slope) as a percentage. |
avg_pos_grade | REAL | Average ascending grade, as a percentage. |
avg_neg_grade | REAL | Average descending grade, as a percentage. |
max_pos_grade | REAL | Steepest ascending grade, as a percentage. |
max_neg_grade | REAL | Steepest descending grade, as a percentage. |
avg_temperature | INTEGER | Average temperature in degrees Celsius. |
max_temperature | INTEGER | Maximum temperature in degrees Celsius. |
total_moving_time | REAL | Total time spent moving, in seconds. |
avg_pos_vertical_speed | REAL | Average ascending vertical speed, in meters per second. |
avg_neg_vertical_speed | REAL | Average descending vertical speed, in meters per second. |
max_pos_vertical_speed | REAL | Maximum ascending vertical speed, in meters per second. |
max_neg_vertical_speed | REAL | Maximum descending vertical speed, in meters per second. |
min_heart_rate | INTEGER | Minimum heart rate in beats per minute. |
time_in_heart_rate_zone | TEXT | Total 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_zone | TEXT | Total 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_zone | TEXT | Total 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_zone | TEXT | Total 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_time | REAL | Average lap time in seconds. |
best_lap_index | INTEGER | Index of the fastest lap in this session. |
min_altitude | REAL | Minimum altitude reached during this session, in metres. |
player_score | INTEGER | This user's own score in games or sports with a scoring system, such as squash or racquetball. |
opponent_score | INTEGER | Opponent's score in games or sports with an adversarial scoring system, such as squash or racquetball. |
opponent_name | TEXT | Name of the opponent, for games or sports with an adversarial scoring system. |
stroke_count | TEXT | Number of times each swimming stroke type was used.One value per stroke_type enum value. |
zone_count | TEXT | Count recorded for each zone.One value per zone. |
max_ball_speed | REAL | Maximum ball speed in meters per second. |
avg_ball_speed | REAL | Average ball speed in meters per second. |
avg_vertical_oscillation | REAL | Average vertical oscillation in millimeters. |
avg_stance_time_percent | REAL | Average ground contact time as a percentage of the stride cycle. |
avg_stance_time | REAL | Average ground contact time per step, in milliseconds. |
avg_fractional_cadence | REAL | Fractional part of the avg_cadence. Units: rpm. |
max_fractional_cadence | REAL | Fractional part of the max_cadence. Units: rpm. |
total_fractional_cycles | REAL | Fractional part of the total_cycles. Units: cycles. |
avg_total_hemoglobin_conc | TEXT | units: 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_conc | TEXT | units: 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_conc | TEXT | units: 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_percent | TEXT | units: %; 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_percent | TEXT | units: %; 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_percent | TEXT | units: %; 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_effectiveness | REAL | Average left torque effectiveness, as a percentage. |
avg_right_torque_effectiveness | REAL | Average right torque effectiveness, as a percentage. |
avg_left_pedal_smoothness | REAL | Average left pedal smoothness, as a percentage. |
avg_right_pedal_smoothness | REAL | Average right pedal smoothness, as a percentage. |
avg_combined_pedal_smoothness | REAL | Average combined pedal smoothness, as a percentage. |
sport_profile_name | TEXT | Sport name from associated sport mesg. |
sport_index | INTEGER | Zero-based ordinal identifying which sport segment, within a multisport activity, this record belongs to. |
time_standing | REAL | Total time spend in the standing position. Units: s. |
stand_count | INTEGER | Number of transitions to the standing state. |
avg_left_pco | INTEGER | Average platform center offset Left. Units: mm. |
avg_right_pco | INTEGER | Average platform center offset Right. Units: mm. |
avg_left_power_phase | TEXT | Average 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_peak | TEXT | As 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_phase | TEXT | As avg_left_power_phase, for the right leg.One value per power_phase_type enum value. |
avg_right_power_phase_peak | TEXT | As avg_left_power_phase_peak, for the right leg.One value per power_phase_type enum value. |
avg_power_position | TEXT | Average 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_position | TEXT | As avg_power_position, but the maximum power reached rather than the average.One value per rider_position_type enum value. |
avg_cadence_position | TEXT | Average 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_position | TEXT | As avg_cadence_position, but the maximum cadence reached rather than the average.One value per rider_position_type enum value. |
enhanced_avg_speed | REAL | Total_distance / total_timer_time. Units: m/s. |
enhanced_max_speed | REAL | Maximum speed in meters per second, extended-range encoding. |
enhanced_avg_altitude | REAL | Average altitude during this session, in metres (extended-range counterpart to avg_altitude). |
enhanced_min_altitude | REAL | Minimum altitude reached during this session, in metres (extended-range counterpart to min_altitude). |
enhanced_max_altitude | REAL | Maximum altitude reached during this session, in metres (extended-range counterpart to max_altitude). |
avg_lev_motor_power | INTEGER | Lev average motor power during session. Units: watts. |
max_lev_motor_power | INTEGER | Lev maximum motor power during session. Units: watts. |
lev_battery_consumption | REAL | Lev battery consumption during session. Units: percent. |
avg_vertical_ratio | REAL | Average vertical ratio, as a percentage. |
avg_stance_time_balance | REAL | Average left/right balance of ground contact time, as a percentage. |
avg_step_length | REAL | Average step length in millimeters. |
total_anaerobic_training_effect | REAL | Anaerobic training effect score for the session. |
avg_vam | REAL | Average ascent speed (VAM) in meters per second. |
avg_depth | REAL | 0 if above water. Units: m. |
max_depth | REAL | 0 if above water. Units: m. |
surface_interval | INTEGER | Time since end of last dive. Units: s. |
start_cns | INTEGER | CNS oxygen toxicity load at the start of the dive, as a percentage. |
end_cns | INTEGER | CNS oxygen toxicity load at the end of the dive, as a percentage. |
start_n2 | INTEGER | Nitrogen loading at the start of the dive, as a percentage. |
end_n2 | INTEGER | Nitrogen loading at the end of the dive, as a percentage. |
avg_respiration_rate | INTEGER | Average respiration rate during this period, in breaths per minute; superseded by the wider-range enhanced_avg_respiration_rate where present. |
max_respiration_rate | INTEGER | Maximum respiration rate during this period, in breaths per minute; superseded by the wider-range enhanced_max_respiration_rate where present. |
min_respiration_rate | INTEGER | Minimum respiration rate during this session, in breaths per minute; superseded by the wider-range enhanced_min_respiration_rate where present. |
min_temperature | INTEGER | Minimum temperature in degrees Celsius. |
o2_toxicity | INTEGER | Oxygen toxicity load, in OTUs (oxygen toxicity units). |
dive_number | INTEGER | Number identifying this dive within a multi-dive activity file, when applicable. |
training_load_peak | REAL | Peak training load value. |
enhanced_avg_respiration_rate | REAL | Average respiration rate in breaths per minute. |
enhanced_max_respiration_rate | REAL | Maximum respiration rate in breaths per minute. |
enhanced_min_respiration_rate | REAL | Minimum respiration rate in breaths per minute. |
total_grit | REAL | The 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_flow | REAL | The 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_count | INTEGER | Number of jumps detected during this period, such as skiing or snowboarding jumps. |
avg_grit | REAL | The 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_flow | REAL | The 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_feel | INTEGER | A 0-100 scale representing how a user felt while performing a workout. Low values are considered feeling bad, while high values are good. |
workout_rpe | INTEGER | Common Borg CR10 / 0-10 RPE scale, multiplied 10x. Aggregate score for all workouts in a single session. |
avg_spo2 | INTEGER | Average SPO2 for the monitoring session. Units: percent. |
avg_stress | INTEGER | Average stress for the monitoring session. Units: percent. |
sdrr_hrv | INTEGER | Standard deviation of R-R interval (SDRR) - Heart rate variability measure most useful for wellness users. Units: mS. |
rmssd_hrv | INTEGER | Root mean square successive difference (RMSSD) - Heart rate variability measure most useful for athletes. Units: mS. |
total_fractional_ascent | REAL | Fractional part of total_ascent. Units: m. |
total_fractional_descent | REAL | Fractional part of total_descent. Units: m. |
avg_core_temperature | REAL | Average core body temperature in degrees Celsius. |
min_core_temperature | REAL | Minimum core body temperature in degrees Celsius. |
max_core_temperature | REAL | Maximum core body temperature in degrees Celsius. |
total_reps | INTEGER | Total number of repetitions.A subfield of the FIT total_cycles field, active when sub_sport is strength_training or sport is hiit. |
total_pushes | INTEGER | Total 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | Timestamp of the set, in ISO8601 format. |
duration | INTEGER | duration of the set, in seconds. |
repetitions | INTEGER | # of repitions of the movement. |
weight | INTEGER | Amount of weight applied for the set. Units: kg. |
set_type | INTEGER | SetX Type.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup. |
start_time | TEXT | Start time of the set, in ISO8601 format. |
raw_category_garmin_key | TEXT | Raw 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_key | TEXT | Raw 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_unit | INTEGER | Unit (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_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
workout_step_index | INTEGER | Index of the workout_step (in the parent Workout) that produced this record, when generated by a structured workout. |
SkinTempOvernight
Skin_temp_overnight:.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
local_timestamp | TEXT | Local timestamp, in ISO8601 format. |
average_deviation | REAL | The average overnight deviation from baseline temperature in degrees C. |
average7_day_deviation | REAL | The average 7 day overnight deviation from baseline temperature in degrees C. |
nightly_value | REAL | Final overnight temperature value. |
SlaveDevice
Lists connected peripheral devices such as sensors or accessories.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
manufacturer_id | INTEGER | FIT manufacturer code identifying the device maker, such as Garmin or a third-party partner. |
product_id | INTEGER | Manufacturer-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_id | INTEGER | Favero-specific product code identifying the device model, valid only when manufacturer_id is Favero Electronics. |
garmin_product_id | INTEGER | Garmin-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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
combined_awake_score | INTEGER | Average of awake_time_score and awakenings_count_score. If valid: 0 (worst) to 100 (best).If unknown, no score is recorded. |
awake_time_score | INTEGER | Score that evaluates the total time spent awake between sleep. If valid: 0 (worst) to 100 (best).If unknown, no score is recorded. |
awakenings_count_score | INTEGER | Score that evaluates the number of awakenings that interrupt sleep. If valid: 0 (worst) to 100 (best).If unknown, no score is recorded. |
deep_sleep_score | INTEGER | Score that evaluates the amount of deep sleep. If valid: 0 (worst) to 100 (best).If unknown, no score is recorded. |
sleep_duration_score | INTEGER | Score 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_score | INTEGER | Score that evaluates the amount of light sleep. If valid: 0 (worst) to 100 (best).If unknown, no score is recorded. |
overall_sleep_score | INTEGER | Total 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_score | INTEGER | Score 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_score | INTEGER | Score that evaluates stress and recovery during sleep. If valid: 0 (worst) to 100 (best).If unknown, no score is recorded. |
rem_sleep_score | INTEGER | Score that evaluates the amount of REM sleep. If valid: 0 (worst) to 100 (best).If unknown, no score is recorded. |
sleep_restlessness_score | INTEGER | Score that evaluates the amount of restlessness during sleep. If valid: 0 (worst) to 100 (best).If unknown, no score is recorded. |
awakenings_count | INTEGER | The number of awakenings during sleep. |
interruptions_score | INTEGER | Score that evaluates the sleep interruptions. If valid: 0 (worst) to 100 (best).If unknown, no score is recorded. |
average_stress_during_sleep | REAL | Excludes stress during awake periods in the sleep window. |
SleepDisruptionOvernightSeverity
Sleep_disruption_overnight_severity:.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
severity | INTEGER | severity level of the sleep disruption. |
SleepDisruptionSeverityPeriod
Sleep_disruption_severity_period:.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
timestamp | TEXT | In ISO8601 format. |
severity | INTEGER | severity level of the sleep disruption. |
SleepLevel
One classified period of a sleep session (e.g. light, deep, or REM sleep).
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
SleepLevel | INTEGER | FIT sleep-level code classifying this period, such as light, deep, or REM sleep. |
Software
contains version information for the device firmware or software.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | The message index. |
version | REAL | Software version number. |
part_number | TEXT | The part number. |
SpeedZone
Defines speed training zones.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
high_value | REAL | Upper boundary of this speed zone, in meters per second. |
Name | TEXT | User-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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
split_type | INTEGER | FIT 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_time | REAL | Total elapsed time, including pauses, in seconds. |
total_timer_time | REAL | Total timer time, excluding pauses, in seconds. |
total_distance | REAL | Total distance in meters. |
avg_speed | REAL | Average speed in meters per second. |
start_time | TEXT | Start time of the split, in ISO8601 format. |
total_ascent | INTEGER | Total ascent in meters. |
total_descent | INTEGER | Total descent in meters. |
start_position_lat | INTEGER | Latitude of the start position, in semicircles. |
start_position_long | INTEGER | Longitude of the start position, in semicircles. |
end_position_lat | INTEGER | Latitude of the end position, in semicircles. |
end_position_long | INTEGER | Longitude of the end position, in semicircles. |
max_speed | REAL | Maximum speed in meters per second. |
avg_vert_speed | REAL | Average vertical speed in meters per second. |
end_time | TEXT | End time of the split, in ISO8601 format. |
total_calories | INTEGER | Total calories burned, in kilocalories. |
start_elevation | REAL | Elevation at the start of this split, in metres. |
total_moving_time | REAL | Total time spent moving, in seconds. |
SplitSummary
Split_summary:.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
split_type | INTEGER | FIT 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_splits | INTEGER | Number of splits included in this summary. |
total_timer_time | REAL | Total timer time, excluding pauses, in seconds. |
total_distance | REAL | Total distance in meters. |
avg_speed | REAL | Average speed in meters per second. |
max_speed | REAL | Maximum speed in meters per second. |
total_ascent | INTEGER | Total ascent in meters. |
total_descent | INTEGER | Total descent in meters. |
avg_heart_rate | INTEGER | Average heart rate in beats per minute. |
max_heart_rate | INTEGER | Maximum heart rate in beats per minute. |
avg_vert_speed | REAL | Average vertical speed in meters per second. |
total_calories | INTEGER | Total calories burned, in kilocalories. |
total_moving_time | REAL | Total time spent moving, in seconds. |
Spo2Data
Spo2_data:.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
reading_spo2 | INTEGER | Blood oxygen saturation (SpO2) reading, as a percentage. |
reading_confidence | INTEGER | Confidence level of the pulse oximeter reading. |
mode | INTEGER | When data was captured. |
Sport
Names the sport type and sub-type associated with the activity.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
sport_id | INTEGER | Sport-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_id | INTEGER | Sub-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. |
Name | TEXT | User-assigned or generated display name for this sport. |
StressLevel
Stress_level: Value from 1 to 100 calculated by FirstBeat.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
stress_level_value | INTEGER | Calculated stress score, on a scale from 1 to 100. |
stress_level_time | TEXT | Time stress score was calculated, in ISO8601 format. |
TankSummary
Tank_summary:.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
sensor | INTEGER | ANT+ device ID of the tank pressure sensor. |
start_pressure | REAL | Tank pressure at the start of the dive, in bar. |
end_pressure | REAL | Tank pressure at the end of the dive, in bar. |
volume_used | REAL | Volume of gas used, in liters. |
TankUpdate
Tank_update:.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
sensor | INTEGER | ANT+ device ID of the tank pressure sensor. |
pressure | REAL | Tank pressure in bar. |
ThreeDSensorCalibration
Stores calibration data for 3D sensors such as accelerometers and gyroscopes.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | Whole second part of the timestamp, in ISO8601 format. |
sensor_type | INTEGER | Indicates which sensor the calibration is for. |
calibration_factor | INTEGER | Calibration factor used to convert from raw ADC value to degrees, g, etc. |
accel_cal_factor | INTEGER | Accelerometer calibration factor. Units: g. |
gyro_cal_factor | INTEGER | Gyro calibration factor. Units: deg/s. |
calibration_divisor | INTEGER | Calibration factor divisor. Units: counts. |
level_shift | INTEGER | Level shift value used to shift the ADC value back into range. |
offset_cal | TEXT | Internal calibration factors, one for each: xy, yx, zx.One value per axis pair, in this fixed order: xy, yx, zx. |
orientation_matrix | TEXT | scale: 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
reference_mesg | INTEGER | Reference Message.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup. |
reference_index | INTEGER | Index of the specific referenced record (paired with reference_mesg, which identifies its message type). |
time_in_heart_rate_zone | TEXT | Total 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_zone | TEXT | Total 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_zone | TEXT | Total 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_zone | TEXT | Total 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_boundary | TEXT | Upper 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_boundary | TEXT | Upper speed boundary of this zone. units: m/s; scale: 1000.One value per zone, index-aligned with time_in_speed_zone. |
cadence_zone_high_bondary | TEXT | Upper cadence boundary of this zone, in revolutions per minute.One value per zone, index-aligned with time_in_cadence_zone. |
power_zone_high_boundary | TEXT | Upper power boundary of this zone, in watts.One value per zone, index-aligned with time_in_power_zone. |
heart_rate_calc_type | INTEGER | FIT 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_rate | INTEGER | Maximum heart rate used as the basis for computing heart-rate zones, in beats per minute. |
resting_heart_rate | INTEGER | Resting heart rate used as the basis for computing heart-rate zones, in beats per minute. |
threshold_heart_rate | INTEGER | Heart-rate threshold (LTHR) used as the basis for computing heart-rate zones via the percent-of-threshold method. |
pwr_calc_type | INTEGER | Power Calc Type.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup. |
functional_threshold_power | INTEGER | Functional threshold power (FTP) used as the basis for computing power zones, in watts. |
TimestampCorrelation
Provides mapping between system time and UTC time for synchronization.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | Whole second part of the UTC timestamp at the time the system timestamp was recorded, in ISO8601 format. |
fractional_timestamp | REAL | Fractional part of the UTC timestamp at the time the system timestamp was recorded. Units: s. |
system_timestamp | TEXT | Whole second part of the system timestamp, in ISO8601 format. |
fractional_system_timestamp | REAL | Fractional part of the system timestamp. Units: s. |
local_timestamp | TEXT | Timestamp epoch expressed in local time, in ISO8601 format, used to convert timestamps to local time. |
timestamp_ms | INTEGER | Millisecond part of the UTC timestamp at the time the system timestamp was recorded. |
system_timestamp_ms | INTEGER | Millisecond part of the system timestamp. |
Totals
Cumulative activity totals (distance, calories, time, session count) for one sport, accumulated since the device's last reset.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
timestamp | TEXT | In ISO8601 format. |
timer_time | INTEGER | Total moving/recording time accumulated across all sessions counted in this Totals record, excluding paused periods. Units: s. |
distance | INTEGER | Total distance accumulated, in meters. |
calories | INTEGER | Total calories burned, in kilocalories. |
sport_id | INTEGER | Sport-type code identifying the sport, such as running or cycling; sub_sport_id narrows this further. |
elapsed_time | INTEGER | Total time accumulated across all sessions counted in this Totals record, including paused periods. Units: s. |
sessions | INTEGER | Total number of sessions. |
active_time | INTEGER | Active time in seconds. |
sport_index | INTEGER | Zero-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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
type | INTEGER | FIT 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_id | INTEGER | FIT manufacturer code identifying the device maker, such as Garmin or a third-party partner. |
product_id | INTEGER | Manufacturer-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_id | INTEGER | Favero-specific product code identifying the device model, valid only when manufacturer_id is Favero Electronics. |
garmin_product_id | INTEGER | Garmin-specific product code identifying the device model, valid only when manufacturer_id is Garmin. |
serial_number | INTEGER | Serial number of the device, when available. |
time_created | INTEGER | Time the training file was created, in ISO8601 format. |
TrainingSettings
Stores target metrics for structured workouts such as distance, speed, and time.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
target_distance | REAL | Target distance in meters. |
target_speed | REAL | Target speed in meters per second. |
target_time | INTEGER | Target time in seconds. |
precise_target_speed | REAL | A more precise target speed field. Units: m/s. |
UserProfile
contains personal user data such as age, weight, height, and fitness preferences.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
friendly_name | TEXT | Used for Morning Report greeting. |
gender | INTEGER | User's gender.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup. |
age | INTEGER | User's age in years. |
height | REAL | User's height in meters. |
weight | REAL | User's weight in kilograms. |
language | INTEGER | User's preferred language.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup. |
elev_setting | INTEGER | Unit (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_setting | INTEGER | Unit (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_rate | INTEGER | Resting heart rate in beats per minute. |
default_max_running_heart_rate | INTEGER | Default maximum heart rate for running, in beats per minute. |
default_max_biking_heart_rate | INTEGER | Default maximum heart rate for biking, in beats per minute. |
default_max_heart_rate | INTEGER | Default maximum heart rate, in beats per minute. |
heart_rate_setting | INTEGER | Display 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_setting | INTEGER | Unit (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_setting | INTEGER | Unit (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_setting | INTEGER | Unit power values should be displayed in.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup. |
activity_class | INTEGER | Classification of the user's overall activity level, used to tune calorie and training estimates. |
position_setting | INTEGER | Coordinate 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_setting | INTEGER | Unit (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_id | INTEGER | Identifier for this user profile that is unique within the device, not globally. |
global_id | TEXT | Globally-unique identifier for this user, used to correlate profiles across devices.One byte per element of this identifier. |
wake_time | TEXT | Typical wake time. |
sleep_time | TEXT | Typical bed time. |
height_setting | INTEGER | Unit (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_length | REAL | User defined running step length set to 0 for auto length. |
user_walking_step_length | REAL | User defined walking step length set to 0 for auto length. |
depth_setting | INTEGER | Unit (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_count | INTEGER | Total number of dives logged for this user. |
Video
Stores metadata for a video associated with an activity.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
url | TEXT | URL where the video can be retrieved. |
hosting_provider | TEXT | Service hosting the video, such as YouTube. |
duration | INTEGER | Playback time of video. Units: ms. |
VideoClip
Represents a segment of a video associated with an activity.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
clip_number | INTEGER | Index identifying this clip among other clips in the same video. |
start_timestamp | TEXT | Start time of the video clip, in ISO8601 format. |
start_timestamp_ms | INTEGER | Fractional-second part of start_timestamp, in milliseconds. |
end_timestamp | TEXT | End time of the video clip, in ISO8601 format. |
end_timestamp_ms | INTEGER | Fractional-second part of end_timestamp, in milliseconds. |
clip_start | INTEGER | Start of clip in video time. Units: ms. |
clip_end | INTEGER | End of clip in video time. Units: ms. |
VideoDescription
Stores description information for a video associated with an activity.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Zero-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_count | INTEGER | Total number of parts the full description is split into; message_index ranges from 0 to message_count - 1 across this description's parts. |
text | TEXT | The video's description text. |
VideoFrame
Represents a single frame in a recorded video with timestamp information.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | Whole second part of the timestamp, in ISO8601 format. |
timestamp_ms | INTEGER | Millisecond part of the timestamp. |
frame_number | INTEGER | Number of the frame that the timestamp and timestamp_ms correlate to. |
VideoTitle
Stores title information for a video associated with an activity.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Zero-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_count | INTEGER | Total number of parts the full title is split into; message_index ranges from 0 to message_count - 1 across this title's parts. |
text | TEXT | The video's title text. |
WatchfaceSettings
Stores customization options for watch face layouts and styles.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
mode | INTEGER | Display mode of the watch face. |
layout | INTEGER | layout identifier for the watch face. |
digital_layout | INTEGER | Layout identifier used when the watch face is in digital mode. |
analog_layout | INTEGER | Layout identifier used when the watch face is in analog mode. |
WeatherAlert
Provides warnings or advisories related to weather conditions.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | In ISO8601 format. |
report_id | TEXT | Unique identifier from GCS report ID string, length is 12. |
issue_time | TEXT | Time the alert was issued, in ISO8601 format. |
expire_time | TEXT | Time the alert expires, in ISO8601 format. |
severity | INTEGER | Warning, Watch, Advisory, Statement.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup. |
type | INTEGER | Tornado, 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | Time of update for current conditions, else forecast time, in ISO8601 format. |
weather_report | INTEGER | Current or forecast.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup. |
temperature | INTEGER | temperature in degrees Celsius. |
condition | INTEGER | Corresponds to GSC Response weatherIcon field.The localized text equivalent of this value can be obtained by lookup into better_labels_lookup. |
wind_direction | INTEGER | Wind direction in degrees. |
wind_speed | REAL | Wind speed in meters per second. |
precipitation_probability | INTEGER | Range 0-100. |
temperature_feels_like | INTEGER | Heat Index if GCS heatIdx above or equal to 90F or wind chill if GCS windChill below or equal to 32F. Units: C. |
relative_humidity | INTEGER | Relative humidity, as a percentage. |
location | TEXT | String corresponding to GCS response location string. |
observed_at_time | TEXT | Time the conditions were observed, in ISO8601 format. |
observed_location_lat | INTEGER | Latitude of the observed weather location, in semicircles. |
observed_location_long | INTEGER | Longitude of the observed weather location, in semicircles. |
day_of_week | INTEGER | Day 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_temperature | INTEGER | Highest recorded temperature, in degrees Celsius. |
low_temperature | INTEGER | Lowest recorded temperature, in degrees Celsius. |
WeightScale
Weight measurement of the human standing on the Garmin Index scale.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
timestamp | TEXT | Timestamp of the measurement, in ISO8601 format. |
weight | REAL | weight measurement. Units: kg. |
percent_fat | REAL | Body fat percentage. Units: %. |
percent_hydration | REAL | Body hydration percentage. Units: %. |
visceral_fat_mass | REAL | Visceral fat mass in kilograms. |
bone_mass | REAL | Bone mass in kilograms. |
muscle_mass | REAL | Muscle mass in kilograms. |
basal_met | REAL | Basal metabolism. Units: kcal/day. |
physique_rating | INTEGER | Body-composition physique rating, on the scale used by Garmin/Tanita body composition scales. |
active_met | REAL | Active metabolism. ~4kJ per kcal, 0.25 allows max 16384 kcal. |
metabolic_age | INTEGER | Metabolic age in years. |
visceral_fat_rating | INTEGER | Visceral fat rating, on the scale used by Garmin/Tanita body composition scales. |
user_profile_index | INTEGER | Associates this weight scale message to a user. This corresponds to the index of the user profile message in the weight scale file. |
bmi | REAL | Body 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
sport_id | INTEGER | Sport-type code identifying the sport, such as running or cycling; sub_sport_id narrows this further. |
capabilities_id | INTEGER | Bitmask of workout_capabilities flags describing which optional data types (such as heart rate or power) this workout includes. |
number_valid_steps | INTEGER | Number of valid steps. |
workout_name | TEXT | User-assigned name for this workout. |
sub_sport_id | INTEGER | Sub-sport-type code providing a more specific classification within sport_id, such as indoor cycling or trail running. |
pool_length | REAL | Pool length in meters. |
pool_length_unit | INTEGER | Unit (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_description | TEXT | Description of the workout. |
WorkoutSession
Workout_session:.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
sport_id | INTEGER | Sport-type code identifying the sport, such as running or cycling; sub_sport_id narrows this further. |
sub_sport_id | INTEGER | Sub-sport-type code providing a more specific classification within sport_id, such as indoor cycling or trail running. |
number_valid_steps | INTEGER | Num Valid Steps. |
first_step_index | INTEGER | Index of the first workout_step (in the parent Workout) belonging to this session. |
pool_length | REAL | Pool length in meters. |
pool_length_unit | INTEGER | Unit (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:.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
message_index | INTEGER | Index of this record among other records of the same type in the file, used to preserve their original order. |
workout_step_name | TEXT | Free-form name assigned to this workout step. |
duration_type | INTEGER | How 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_value | INTEGER | Raw 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_time | REAL | Time value for a time-based goal or alert duration, in seconds. |
duration_distance | REAL | Distance value for a distance-based goal or alert duration, in meters. |
duration_heart_rate | INTEGER | Heart-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_calories | INTEGER | Calorie value for a calories-based workout step duration, in kilocalories. |
duration_step | INTEGER | Message_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_power | INTEGER | Power 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_reps | INTEGER | Number of repetitions for a reps-based step duration. |
target_type | INTEGER | What 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_value | INTEGER | Target 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_zone | INTEGER | Speed 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_zone | INTEGER | Heart-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_zone | INTEGER | Cadence 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_zone | INTEGER | Power 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_steps | INTEGER | # of repetitions. |
repeat_time | REAL | Time value for a repeated interval step, in seconds. |
repeat_distance | REAL | Distance value for a repeated interval step, in meters. |
repeat_calories | INTEGER | Calorie value for a repeated interval step, in kilocalories. |
repeat_heart_rate | INTEGER | Heart-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_power | INTEGER | Power 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_type | INTEGER | Swimming 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_low | INTEGER | Raw 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_low | REAL | Lower bound of the custom target speed range, in meters per second. |
custom_target_heart_rate_low | INTEGER | Lower 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_low | INTEGER | Lower bound of the custom target cadence range, in revolutions per minute. |
custom_target_power_low | INTEGER | Lower 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_high | INTEGER | Raw 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_high | REAL | Upper bound of the custom target speed range, in meters per second. |
custom_target_heart_rate_high | INTEGER | Upper 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_high | INTEGER | Upper bound of the custom target cadence range, in revolutions per minute. |
custom_target_power_high | INTEGER | Upper 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. |
intensity | INTEGER | Intensity 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. |
notes | TEXT | Free-text notes for this workout step. |
equipment | INTEGER | Equipment 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_category | INTEGER | Raw 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_name | INTEGER | Raw 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_weight | REAL | Weight used for the exercise, in kilograms. |
weight_display_unit | INTEGER | Unit (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_type | INTEGER | As 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_value | INTEGER | As target_value, for this step's secondary target. |
secondary_target_speed_zone | INTEGER | Speed 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_zone | INTEGER | Heart-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_zone | INTEGER | Cadence 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_zone | INTEGER | Power 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_type | INTEGER | As 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_low | INTEGER | As custom_target_value_low, for this step's secondary target. |
secondary_custom_target_speed_low | REAL | Lower bound of the secondary custom target speed range, in meters per second. |
secondary_custom_target_heart_rate_low | INTEGER | As 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_low | INTEGER | Lower bound of the secondary custom target cadence range, in revolutions per minute. |
secondary_custom_target_power_low | INTEGER | As 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_high | INTEGER | As custom_target_value_high, for this step's secondary target. |
secondary_custom_target_speed_high | REAL | Upper bound of the secondary custom target speed range, in meters per second. |
secondary_custom_target_heart_rate_high | INTEGER | As 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_high | INTEGER | Upper bound of the secondary custom target cadence range, in revolutions per minute. |
secondary_custom_target_power_high | INTEGER | As 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.
| Field | Type | Description |
|---|---|---|
file_number | INTEGER | The file number. |
max_heart_rate | INTEGER | Maximum heart rate used as the basis for computing heart-rate zones, in beats per minute. |
threshold_heart_rate | INTEGER | Heart-rate threshold (LTHR) used as the basis for computing heart-rate zones via the percent-of-threshold method. |
functional_threshold_power | INTEGER | Functional threshold power (FTP) used as the basis for computing power zones, in watts. |
heart_rate_calc_type | INTEGER | FIT 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_type | INTEGER | Power 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.