Polar
Health metrics from Polar wearables can offer detailed insights into individual health metrics, including heart rate, sleep, and exercise data. This section explains how Polar integrates with Avicenna, making it easier for researchers to understand and use the health data of their participants.
Supported Polar Metrics in Avicenna
In this section, we list the comprehensive range of Polar metrics that Avicenna supports.
Polar Exercise
Provides detailed information about exercise sessions. It is stored internally
as polar_exercise
and includes the following fields:
- Record Time: Calculated by combining
start_time
withduration
, stored as milliseconds since epoch. Internally recorded asrecord_time
. - Device: The specific Polar device used during the exercise. Internally
recorded as
device
. - Start Time: The start time of the exercise session. Internally recorded as
start_time
. - UTC Offset: The offset from UTC at the start of the exercise, measured in
minutes. Internally recorded as
start_time_offset_minutes
. - Duration: The total duration of the exercise session, specified in ISO
8601 format. Internally recorded as
duration
. - Calories: Total kilocalories expended during the training session.
Internally recorded as
calories
. - Distance: Total distance traveled during the exercise, measured in meters.
Internally recorded as
distance
. - Heart Rate: Information about heart rate metrics during the exercise,
including:
- Average Heart Rate: The average heart rate across the session.
Internally recorded under
heart_rate.average
. - Maximum Heart Rate: The peak heart rate achieved during the session.
Internally recorded under
heart_rate.maximum
.
- Average Heart Rate: The average heart rate across the session.
Internally recorded under
- Training Load: The overall training load impact of the exercise session.
Internally recorded as
training_load
. - Sport: The type of sport or activity performed. Internally recorded as
sport
. - Has Route: Indicates if there is route data available for the session.
Internally recorded as
has_route
. - Club ID: ID for the club associated with the session, if relevant.
Internally recorded as
club_id
. - Club Name: Name of the club linked to the exercise. Internally recorded as
club_name
. - Detailed Sport Info: Detailed description of the sport as per Polar Flow
compatibility. Internally recorded as
detailed_sport_info
. - Fat Percentage: Percentage of exercise calories derived from fat.
Available if supported by the device. Internally recorded as
fat_percentage
. - Carbohydrate Percentage: Percentage of exercise calories derived from
carbohydrates. Available if supported by the device. Internally recorded as
carbohydrate_percentage
. - Protein Percentage: Percentage of exercise calories derived from protein.
Available if supported by the device. Internally recorded as
protein_percentage
. - Running Index: Score calculated from heart rate and speed data collected
via GPS or stride sensor during running. Internally recorded as
running_index
. - Heart Rate Zones: Detailed list of times spent in various heart rate
zones:
- Index: The position of the zone in the list. Internally recorded as
index
. - Lower Heart Rate Limit: The minimum heart rate of the zone. Internally
recorded as
lower_limit
. - Upper Heart Rate Limit: The maximum heart rate of the zone. Internally
recorded as
upper_limit
. - Time Spent In Zone: Duration spent in this zone, formatted in ISO 8601.
Internally recorded as
in_zone
.
- Index: The position of the zone in the list. Internally recorded as
- Samples: Comprehensive list of all exercise samples collected:
- Recording Rate: Frequency of sample recording in seconds, applicable
only where relevant. Internally recorded as
recording_rate
. - Sample Type: Type of the sample, e.g., heart rate, speed. Internally
recorded as
sample_type
. - Data: Comma-separated list of sample values. Internally recorded as
data
.
- Recording Rate: Frequency of sample recording in seconds, applicable
only where relevant. Internally recorded as
- Route: List of geographical data points collected during the exercise:
- Latitude: Latitude in degrees. Internally recorded as
latitude
. - Longitude: Longitude in degrees. Internally recorded as
longitude
. - Time: Timestamp for each location point, formatted as duration.
Internally recorded as
time
. - Satellites: Number of satellites detected, up to a maximum of 63.
Internally recorded as
satellites
. - Fix: GPS fix status, with a maximum value of three. Internally recorded
as
fix
.
- Latitude: Latitude in degrees. Internally recorded as
- Training Load Pro: Advanced metrics to assess training load:
- Date: The specific date of the training session. Internally recorded as
date
. - Cardio Load: Cardiovascular effort quantified. Internally recorded as
cardio_load
. - Muscle Load: Muscular effort quantified. Internally recorded as
muscle_load
. - Perceived Load: Subjectively rated effort of the training session.
Internally recorded as
perceived_load
. - Cardio Load Interpretation Interpretations of the cardio loads.
Internally recorded as
perceived_load_interpretation
. - Muscle Load Interpretation Interpretations of the muscle loads.
Internally recorded as
muscle_load_interpretation
, ``. - Perceived Load Interpretation Interpretations of perceived loads.
Internally recorded as
perceived_load_interpretation
. - User RPE: Rated Perceived Exertion, quantifying internal training load.
Internally recorded as
user_rpe
.
- Date: The specific date of the training session. Internally recorded as
Polar Sleep
Provides detailed information about sleep sessions. It is stored internally as
polar_sleep
and includes the following fields:
- Record Time: Considered
sleep_end_time
, stored as milliseconds since epoch. Internally recorded asrecord_time
. - Date: The date on which the sleep occurred. Internally recorded as
date
. - Sleep Start Time: The start time of the sleep period in ISO-8601 date/time
format. Internally recorded as
sleep_start_time
. - Sleep End Time: The end time of the sleep period in ISO-8601 date/time
format. Internally recorded as
sleep_end_time
. - Continuity: An estimate of how continuous the sleep was, on a scale from
1.0 to 5.0, where 5.0 indicates uninterrupted sleep. Internally recorded as
continuity
. - Continuity Class: Verbal assessments of sleep continuity ranging from
FRAGMENTED_SLEEP
toVERY_CONTINUOUS_SLEEP
. Internally recorded ascontinuity_class
. - Light Sleep: Total time in seconds spent in the light sleep stages (N1 +
N2) between falling asleep and waking up. Internally recorded as
light_sleep
. - Deep Sleep: Total time in seconds spent in the deep sleep stage (N3)
between falling asleep and waking up. Internally recorded as
deep_sleep
. - REM Sleep: Total time in seconds spent in the REM sleep stage between
falling asleep and waking up. REM stands for rapid eye movement. Internally
recorded as
rem_sleep
. - Unrecognized Sleep Stage: Total time in seconds spent in unrecognized
sleep stages, often due to inadequate sensor contact or positioning.
Internally recorded as
unrecognized_sleep_stage
. - Sleep Score: Summarizes the amount and quality of sleep into a single
number on a scale from 1 to 100, consisting of multiple components including
sleep time and sleep depth. Internally recorded as
sleep_score
. - Total Interruption Duration: The total time in seconds spent awake between
falling asleep and waking up. Internally recorded as
total_interruption_duration
. - Sleep Charge: Sleep score compared to the usual level over the past 28
days, with a scale from
MUCH_BELOW_USUAL
toMUCH_ABOVE_USUAL
. Internally recorded assleep_charge
. - Sleep Goal: Time goal in seconds for sleep, based on age-related sleep
duration recommendations. Internally recorded as
sleep_goal
. - Sleep Rating: The quality of sleep, ranging from
VERY_POORLY
toVERY_WELL
, withNO_VALUE
indicating no value given. Internally recorded assleep_rating
. - Short Interruption Duration: Total time in seconds of short interruptions
in sleep lasting less than 90 seconds. Internally recorded as
short_interruption_duration
. - Long Interruption Duration: Total time in seconds of long interruptions in
sleep lasting 90 seconds or more. Internally recorded as
long_interruption_duration
. - Sleep Cycles: Number of complete sleep cycles recorded during the sleep
session. Internally recorded as
sleep_cycles
. - Group Duration Score: Evaluates sleep duration against preferred settings
and age-related recommendations, scored from 1.0 to 100.0 and categorized as
poor, moderate, or good. Internally recorded as
group_duration_score
. - Group Solidity Score: Averages component scores of long interruptions,
continuity, and actual sleep, rated from 1.0 to 100.0 and categorized as poor,
moderate, or good. Internally recorded as
group_solidity_score
. - Group Regeneration Score: Averages scores of REM and deep sleep
components, rated from 1.0 to 100.0 and interpreted as poor, moderate, or good
regeneration. Internally recorded as
group_regeneration_score
. - Hypnogram: Classified time spans of sleep stages in 30-second epochs,
covering light, deep, REM, unrecognized, or wake stages. Internally recorded
under
hypnogram
.- Time: Timestamp for each stage, formatted as hour and minute.
- Stage: Sleep stage identified at each timestamp. Values can be
WAKE
,REM
,LIGHTER_NON_REM
,LIGHT_NON_REM
,DEEP_NON_REM
, orUNKNOWN
.
- Heart Rate Samples: 5-minute average samples of heart rate during the
sleep period. Samples may occasionally be recorded more frequently than every
5 minutes. Internally recorded under
heart_rate_samples
.- Time: Timestamp for each heart rate sample, formatted as hour and minute.
- Heart Rate: Heart rate in beats per minute at each sample time.
Polar Continuous Heart Rate
It enables a more accurate measurement of daily calorie consumption and overall
activity. It is stored internally as polar_continuous_heart_rate
and includes
the following fields:
- Record Time: The timestamp when the heart rate data was received from
Polar Webhook, stored as milliseconds since epoch. Internally recorded as
record_time
. - Date: The date on which the continuous heart rate data was recorded.
Internally recorded as
date
. - Heart Rate Samples: Collection of 5-minute average samples of heart rate
during the measurement period. Samples may occasionally be recorded more
frequently than every 5 minutes. The unit for heart rate samples is beats per
minute (bpm). Internally recorded under
heart_rate_samples
with detailed properties:- Heart Rate: The heart rate recorded at a specific time, expressed in
beats per minute. Internally recorded as
heart_rate
. - Sample Time: The specific time at which each heart rate measurement was
taken, formatted to include hour, minute, and second. Internally recorded as
sample_time
.
- Heart Rate: The heart rate recorded at a specific time, expressed in
beats per minute. Internally recorded as
Polar SleepWise Circadian Bedtime
Provides information about the circadian bedtime, which is the optimal time to
go to bed for the best sleep quality. It is stored internally as
polar_sleepwise_circadian_bedtime
and includes the following fields:
- Record Time: Considered
period_end_time
, stored as milliseconds since epoch. Internally recorded asrecord_time
. - Validity: Indicates the validity of the circadian bedtime data. Internally
recorded as
validity
. - Quality: The quality of the circadian bedtime data. Internally recorded as
quality
. - Result Type: The type of result or measurement being reported. Internally
recorded as
result_type
. - Period Start Time: The start time of the circadian bedtime measurement
period. Internally recorded as
period_start_time
. - Period End Time: The end time of the circadian bedtime measurement period.
Internally recorded as
period_end_time
. - Preferred Sleep Period Start Time: Designated start time of the preferred
sleep period for circadian alignment. Internally recorded as
preferred_sleep_period_start_time
. - Preferred Sleep Period End Time: Designated end time of the preferred
sleep period for circadian alignment. Internally recorded as
preferred_sleep_period_end_time
. - Sleep Gate Start Time: Start time of the suggested sleep gate, which
indicates the optimal window for falling asleep according to circadian
rhythms. Internally recorded as
sleep_gate_start_time
. - Sleep Gate End Time: End time of the suggested sleep gate, indicating the
closing of the optimal window for falling asleep. Internally recorded as
sleep_gate_end_time
. - Sleep Timezone Offset Minutes: The timezone offset in minutes from UTC for
the sleep data, which helps in aligning the sleep data with local time
accurately. Internally recorded as
sleep_timezone_offset_minutes
.
Polar SleepWise Alertness
Provides information about the user's alertness levels during sleep. It is
stored internally as polar_sleepwise_alertness
and includes the following
fields:
- Record Time: Considered
period_end_time
, stored as milliseconds since epoch. Internally recorded asrecord_time
. - Grade: A numerical grade reflecting alertness level. Internally recorded
as
grade
. - Grade Validity Seconds: Duration in seconds for which the alertness grade
is considered valid. Internally recorded as
grade_validity_seconds
. - Grade Type: The type of grading system used for alertness evaluation.
Internally recorded as
grade_type
. - Grade Classification: Classification of the grade based on alertness
levels. Internally recorded as
grade_classification
. - Validity: Indicates whether the grade is currently valid. Internally
recorded as
validity
. - Sleep Inertia: Description related to the user's state of sleep inertia.
Internally recorded as
sleep_inertia
. - Sleep Type: Type of sleep during which the alertness data was recorded.
Internally recorded as
sleep_type
. - Result Type: The type of result generated for alertness measurement.
Internally recorded as
result_type
. - Period Start Time: The start time of the alertness measurement period.
Internally recorded as
period_start_time
. - Period End Time: The end time of the alertness measurement period.
Internally recorded as
period_end_time
. - Sleep Period Start Time: The start time of the sleep period associated
with the alertness data. Internally recorded as
sleep_period_start_time
. - Sleep Period End Time: The end time of the sleep period associated with
the alertness data. Internally recorded as
sleep_period_end_time
. - Sleep Timezone Offset Minutes: Timezone offset in minutes for the sleep
period's local time. Internally recorded as
sleep_timezone_offset_minutes
. - Hourly Data: List of hourly data throughout the alertness period.
Internally recorded under
hourly_data
with detailed properties:- Validity: Indicates the validity of each hourly data point. Internally
recorded as
validity
. - Alertness Level: The level of alertness measured during the hour.
Internally recorded as
alertness_level
. - Start Time: The start time of the hourly measurement. Internally
recorded as
start_time
. - End Time: The end time of the hourly measurement. Internally recorded as
end_time
.
- Validity: Indicates the validity of each hourly data point. Internally
recorded as
Data Collection Behavior
Whenever there is new Polar data, the Polar's server will send the new data to Avicenna.
Adding Polar As a Data Source
Monitoring Polar Data
There are two ways to monitor and export Polar data: using the Data Export page and using Kibana.
Polar Data Source in Participant App
After a participant joins a study, they need to grant access to Avicenna to
collect data. To do that, the participant needs to go to Settings
on the
Avicenna app and click on My Studies
. Then they should choose the study that
is collecting Polar data. On the study's page, clicking on the Data Sources
will take them to the data sources page:
On this page, the participant will see all of the data sources that the study
uses to collect data. Among these data sources, on the corner of the Polar data
source(s), there is a Grant Access
button:
By clicking on the Grant Access
button, the participant will be directed to
the sign-in page of the Polar official website. Then, they can decide whether
they want to share those data with Avicenna:
After clicking on Grant, the participant will be redirected to the Data Sources page of the study in the Avicenna app, and they have successfully granted access to Avicenna to gather Polar data.
The participants can stop sharing the data anytime by clicking on
Revoke Access
on the Data Sources page.