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 with duration, in milliseconds since epoch. Internally stored as record_time.
  • Device: The specific Polar device used during the exercise. Internally stored as device.
  • Start Time: The start time of the exercise session. Internally stored as start_time.
  • UTC Offset: The offset from UTC at the start of the exercise, in minutes. Internally stored as start_time_offset_minutes.
  • Duration: The total duration of the exercise session, specified in ISO 8601 format. Internally stored as duration.
  • Calories: Total kilocalories expended during the training session. Internally stored as calories.
  • Distance: Total distance traveled during the exercise, in meters. Internally stored as distance.
  • Heart Rate: Information about heart rate metrics during the exercise, including:
    • Average Heart Rate: The average heart rate across the session. Internally stored as heart_rate.average.
    • Maximum Heart Rate: The peak heart rate achieved during the session. Internally stored as heart_rate.maximum.
  • Training Load: The overall training load impact of the exercise session. Internally stored as training_load.
  • Sport: The type of sport or activity performed. Internally stored as sport.
  • Has Route: Indicates if there is route data available for the session. Internally stored as has_route.
  • Club ID: ID for the club associated with the session, if relevant. Internally stored as club_id.
  • Club Name: Name of the club linked to the exercise. Internally stored as club_name.
  • Detailed Sport Info: Detailed description of the sport as per Polar Flow compatibility. Internally stored as detailed_sport_info.
  • Fat Percentage: Percentage of exercise calories derived from fat (if supported by the device). Internally stored as fat_percentage.
  • Carbohydrate Percentage: Percentage of exercise calories derived from carbohydrates (if supported by the device). Internally stored as carbohydrate_percentage.
  • Protein Percentage: Percentage of exercise calories derived from protein (if supported by the device). Internally stored as protein_percentage.
  • Running Index: Score calculated from heart rate and speed data collected via GPS or stride sensor during running. Internally stored 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 stored as index.
    • Lower Heart Rate Limit: The minimum heart rate of the zone. Internally stored as lower_limit.
    • Upper Heart Rate Limit: The maximum heart rate of the zone. Internally stored as upper_limit.
    • Time Spent In Zone: Duration spent in this zone, formatted in ISO 8601. Internally stored as in_zone.
  • Samples: Comprehensive list of all exercise samples collected:
    • Recording Rate: Frequency of sample recording, in seconds, applicable only where relevant. Internally stored as recording_rate.
    • Sample Type: Type of the sample (e.g., heart rate, speed). Internally stored as sample_type.
    • Data: Comma-separated list of sample values. Internally stored as data.
  • Route: List of geographical data points collected during the exercise:
    • Latitude: The latitude, in degrees. Internally stored as latitude.
    • Longitude: The longitude, in degrees. Internally stored as longitude.
    • Time: Timestamp for each location point, formatted as duration. Internally stored as time.
    • Satellites: Number of satellites detected, up to a maximum of 63. Internally stored as satellites.
    • Fix: GPS fix status, with a maximum value of three. Internally stored as fix.
  • Training Load Pro: Advanced metrics to assess training load:
    • Date: The specific date of the training session. Internally stored as date.
    • Cardio Load: Cardiovascular effort quantified. Internally stored as cardio_load.
    • Muscle Load: Muscular effort quantified. Internally stored as muscle_load.
    • Perceived Load: Subjectively rated effort of the training session. Internally stored as perceived_load.
    • Cardio Load Interpretation Interpretations of the cardio loads. Internally stored as perceived_load_interpretation.
    • Muscle Load Interpretation Interpretations of the muscle loads. Internally stored as muscle_load_interpretation.
    • Perceived Load Interpretation Interpretations of perceived loads. Internally stored as perceived_load_interpretation.
    • User RPE: Rated Perceived Exertion, quantifying internal training load. Internally stored as user_rpe.

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 stored as record_time.
  • Date: The date on which the sleep occurred. Internally stored as date.
  • Sleep Start Time: The start time of the sleep period, in ISO-8601 date/time format. Internally stored as sleep_start_time.
  • Sleep End Time: The end time of the sleep period, in ISO-8601 date/time format. Internally stored 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 stored as continuity.
  • Continuity Class: Verbal assessments of sleep continuity ranging from FRAGMENTED_SLEEP to VERY_CONTINUOUS_SLEEP. Internally stored as continuity_class.
  • Light Sleep: Total time spent in the light sleep stages (N1 + N2) between falling asleep and waking up, in seconds. Internally stored as light_sleep.
  • Deep Sleep: Total time spent in the deep sleep stage (N3) between falling asleep and waking up, in seconds. Internally stored as deep_sleep.
  • REM Sleep: Total time spent in the REM sleep stage between falling asleep and waking up. REM stands for rapid eye movement, in seconds. Internally stored as rem_sleep.
  • Unrecognized Sleep Stage: Total time spent in unrecognized sleep stages, often due to inadequate sensor contact or positioning, in seconds. Internally stored 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 stored as sleep_score.
  • Total Interruption Duration: The total time spent awake between falling asleep and waking up, in seconds. Internally stored 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 to MUCH_ABOVE_USUAL. Internally stored as sleep_charge.
  • Sleep Goal: Time goal for sleep, based on age-related sleep duration recommendations, in seconds. Internally stored as sleep_goal.
  • Sleep Rating: The quality of sleep, ranging from VERY_POORLY to VERY_WELL, with NO_VALUE indicating no value given. Internally stored as sleep_rating.
  • Short Interruption Duration: Total time of short interruptions in sleep lasting less than 90 seconds, in seconds. Internally stored as short_interruption_duration.
  • Long Interruption Duration: Total time of long interruptions in sleep lasting 90 seconds or more, in seconds. Internally stored as long_interruption_duration.
  • Sleep Cycles: Number of complete sleep cycles recorded during the sleep session. Internally stored 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 stored 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 stored 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 stored as group_regeneration_score.
  • Hypnogram: Classified time spans of sleep stages in 30-second epochs, covering light, deep, REM, unrecognized, or wake stages. Internally stored as 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, or UNKNOWN.
  • 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 stored as heart_rate_samples.
    • Time: Timestamp for each heart rate sample, formatted as hour and minute.
    • Heart Rate: Heart rate at each sample time, in beats per minute (bpm).

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 stored as record_time.
  • Date: The date on which the continuous heart rate data was recorded. Internally stored 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 stored as heart_rate_samples with detailed properties:
    • Heart Rate: The heart rate recorded at a specific time, expressed in beats per minute (bpm). Internally stored as heart_rate.
    • Sample Time: The specific time at which each heart rate measurement was taken, formatted to include hour, minute, and second. Internally stored as sample_time.

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 in milliseconds since epoch. Internally stored as record_time.
  • Validity: Indicates the validity of the circadian bedtime data. Internally stored as validity.
  • Quality: The quality of the circadian bedtime data. Internally stored as quality.
  • Result Type: The type of result or measurement being reported. Internally stored as result_type.
  • Period Start Time: The start time of the circadian bedtime measurement period. Internally stored as period_start_time.
  • Period End Time: The end time of the circadian bedtime measurement period. Internally stored as period_end_time.
  • Preferred Sleep Period Start Time: Designated start time of the preferred sleep period for circadian alignment. Internally stored as preferred_sleep_period_start_time.
  • Preferred Sleep Period End Time: Designated end time of the preferred sleep period for circadian alignment. Internally stored 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 stored 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 stored as sleep_gate_end_time.
  • Sleep Timezone Offset Minutes: The timezone offset from UTC for the sleep data, which helps in aligning the sleep data with local time accurately, in minutes. Internally stored 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 stored as record_time.
  • Grade: A numerical grade reflecting alertness level. Internally stored as grade.
  • Grade Validity Seconds: Duration for which the alertness grade is considered valid, in seconds. Internally stored as grade_validity_seconds.
  • Grade Type: The type of grading system used for alertness evaluation. Internally stored as grade_type.
  • Grade Classification: Classification of the grade based on alertness levels. Internally stored as grade_classification.
  • Validity: Indicates whether the grade is currently valid. Internally stored as validity.
  • Sleep Inertia: Description related to the user’s state of sleep inertia. Internally stored as sleep_inertia.
  • Sleep Type: Type of sleep during which the alertness data was recorded. Internally stored as sleep_type.
  • Result Type: The type of result generated for alertness measurement. Internally stored as result_type.
  • Period Start Time: The start time of the alertness measurement period. Internally stored as period_start_time.
  • Period End Time: The end time of the alertness measurement period. Internally stored as period_end_time.
  • Sleep Period Start Time: The start time of the sleep period associated with the alertness data. Internally stored as sleep_period_start_time.
  • Sleep Period End Time: The end time of the sleep period associated with the alertness data. Internally stored as sleep_period_end_time.
  • Sleep Timezone Offset Minutes: Timezone offset for the sleep period’s local time, in minutes. Internally stored as sleep_timezone_offset_minutes.
  • Hourly Data: List of hourly data throughout the alertness period. Internally stored as hourly_data with detailed properties:
    • Validity: Indicates the validity of each hourly data point. Internally stored as validity.
    • Alertness Level: The level of alertness measured during the hour. Internally stored as alertness_level.
    • Start Time: The start time of the hourly measurement. Internally stored as start_time.
    • End Time: The end time of the hourly measurement. Internally stored as end_time.

Data Collection Behavior

Whenever there is new Polar data, the Polar’s servers will send the new data to Avicenna.

Adding Polar As a Data Source

See Adding Data Sources.

Monitoring and Exporting Polar Data

You can monitor and export Polar data using Kibana.

Polar Data Source in Participant App

After joining a study, participants must grant Avicenna access to collect their Polar data.

  1. Go to the study homepage on the Avicenna app.

  2. Click the Data Sources button at the bottom of the page to view the study’s data sources

  3. Find the Polar data source(s) and tap the Grant Access button.

  4. You will be redirected to the Polar website to sign in and authorize Avicenna.

  5. Click Accept. You will be redirected back to the Avicenna app’s Data Sources page. Access has now been granted.

Participants can stop sharing the data anytime by clicking on Revoke Access on the Data Sources page.