Skip to main content

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 today

Granular Data

Each data source provides unique granular data points based on its data structure and data capture method. ROOK standardizes granular data into three categories. You have the option to enable or disable granular data through our portal, allowing you to customize your JSON output to fit your needs.

1. Instantaneous Granular Data:

Instantaneous granular data captures precise measurements or events at specific moments, directly tied to their recorded timestamps.

For example, the sample below illustrates 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 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 hr_granular_data_array represents a single heartbeat measurement at a precise timestamp. The attributes include:

  • hr_bpm_int: The recorded heart rate in beats per minute.

  • datetime_string: The timestamp of the measurement.

  • interval_duration_seconds_float: The duration between consecutive measurements in seconds.

2. Aggregated Granular Data:

Aggregated granular data summarizes measurements or events over predefined time intervals.

For example, the code snippet below shows step counts recorded by a smartwatch, aggregated into 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 attributes include:

  • steps_int: The total number of steps taken during the interval

  • datetime_string: The timestamp of the measurement

  • interval_duration_seconds_float: The duration between consecutive measurements 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 attributes include:

  • datetime_string: The timestamp of the measurement

  • activity_level_float: The numerical representation of activity intensity.

  • activity_level_label_string: A textual description of the activity level (e.g., Light, Moderate, Vigorous).

  • interval_duration_seconds_float: The duration between consecutive measurements in seconds.



Which data sources provide granular data?

ROOK extracts granular data from:

  • Apple Health

  • Garmin

  • Health Connect

  • Fitbit

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?