Skip to main content
All CollectionsROOK Connect
What is "Granular Data"? What is the detail of data I can receive from each data source?
What is "Granular Data"? What is the detail of data I can receive from each data source?

Learn about Granular Data, the most detailed information ROOK gets from a data source

Sebastian Eugenio avatar
Written by Sebastian Eugenio
Updated over a week ago

Granular Data

Each data source provides unique granular data points based on its data structure and method of data capture. ROOK standardizes granular data into one of three types. Soon, you will be able to decide whether granular data is enabled or disabled, allowing you to customize your JSON to your preference.

1. Instantaneous Granular Data:

Instantaneous granular data captures precise measurements or events at specific moments, directly corresponding with recorded timestamps.

For example, the sample below demonstrates two instances where a smartwatch recorded heart rate (HR) in beats per minute (bpm). HR is typically calculated by measuring the R-R interval, rather than by counting all beats over a full minute.

"hr_granular_data_array": [

{

"hr_bpm_int": 68,

"datetime_string": "2022-10-28T19:35:03.308Z"

"interval_duration_seconds_float": 0

},

{

"hr_bpm_int": 71,

"datetime_string": "2022-10-28T19:35:04.308Z"

"interval_duration_seconds_float": 0

}

]

Each object in the steps_granular_data_array represents a five-minute interval. The steps_int attribute indicates the total number of steps taken during that interval, the datetime_string attribute represents the start time of the interval, and the interval_duration_seconds_float attribute specifies the length of the interval in seconds.

2. Aggregated Granular Data:

Aggregated granular data summarizes measurements or events occurring within defined time intervals.

For example, the code snippet below shows two instances where a smartwatch aggregated step counts over five-minute intervals.

"steps_granular_data_array": [

{

"steps_int": 156,

"datetime_string": "2023-10-28T15:26:00.000Z",

"interval_duration_seconds_float": 300

},

{

"steps_int": 200,

"datetime_string": "2023-10-28T15:31:02.000Z",

"interval_duration_seconds_float": 300

}

]

Each object in the steps_granular_data_array represents a five-minute interval. The steps_int attribute indicates the total number of steps taken during that interval, the datetime_string attribute represents the start time of the interval, and the interval_duration_seconds_float attribute specifies the length of the interval in seconds.

3. Annotated Aggregated Granular Data:

Annotated aggregated granular data adds context or labels to measurements within specified intervals, aiding interpretation.

For example, the code snippet below demonstrates two instances where exercise intensity levels were recorded over varying intervals. Each instance includes labels indicating the intensity level (Light, Moderate, Vigorous) and the body region where the measurement was taken (e.g., Arm, Leg).

"activity_level_granular_data_array": [

{

"datetime_string": "2022-10-28T19:35:03.307Z",

"activity_level_float": 2,

"activity_level_label_string": "Light",

"interval_duration_seconds_float": 436

},

{

"datetime_string": "2022-10-28T19:35:03.307Z",

"activity_level_float": 3,

"activity_level_label_string": "Moderate",

"interval_duration_seconds_float": 65

}

]

Each object in the activity_level_granular_data_array represents a time interval with associated activity information. The datetime_string attribute indicates the start time of the interval, the activity_level_float attribute represents the numerical activity intensity level, the activity_level_label_string attribute provides a textual description of the intensity (e.g., Light, Moderate, Vigorous), the body_region_string attribute specifies the body part where the activity was measured, and the interval_duration_seconds_float attribute indicates the length of the interval in seconds.



Which data sources provide granular data, and which do not?

ROOK extracts granular data from:

  • Apple Health

  • Fitbit

  • Garmin

  • Health Connect

  • Oura

Also, if you’d like to review the data we extract from each data source, you can check our documentation.

Note: We have collected JSON files of up to 3.1M, so please take the necessary precautions when handling granular data.

Did this answer your question?