Healthcare Wearable Vital Streams
This dataset provides high-frequency, multi-sensor vital sign measurements from synthetic wearable devices, including heart rate, blood pressure, respiratory rate, blood oxygen saturation, and skin temperature. Each record is timestamped and linked to a user and device, with contextual information such as activity type, sensor status, and geolocation, making it ideal for time-series analysis, anomaly detection, and digital health research.
Sample rows
preview · 8 of 200 rows · all 16 columns| stream_idstring | activity_typestring | blood_oxygen_saturationfloat | anomaly_flagboolean | device_idstring | user_idstring | timestampdatetime | heart_rate_bpmfloat | blood_pressure_systolicfloat | blood_pressure_diastolicfloat | respiratory_ratefloat | skin_temperature_celsiusfloat | sensor_statusstring | device_firmware_versionstring | location_latitudefloat | location_longitudefloat |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| stream001 | resting | 98.2 | false | deviceA | userX | 2024-04-01T08:00:00Z | 62.5 | 116 | 74 | 15 | 35.1 | normal | 2.3.5 | 40.7128 | -74.006 |
| stream002 | walking | 97.5 | false | deviceB | userY | 2024-04-01T08:02:00Z | 77.2 | 128 | 82 | 17 | 35.8 | normal | 3.1.2 | 41.8781 | -87.6298 |
| stream003 | running | 89.9 | true | deviceC | userZ | 2024-04-01T08:04:00Z | 158.3 | 182 | 104 | 39 | 38.4 | battery_low | 1.4.0 | 34.0522 | -118.2437 |
| stream004 | sleeping | 99.1 | false | deviceD | userW | 2024-04-01T08:06:00Z | 51.7 | 105 | 66 | 12 | 34.2 | normal | 2.0.1 | 48.8566 | 2.3522 |
| stream005 | cycling | 96.7 | false | deviceE | userV | 2024-04-01T08:08:00Z | 96.4 | 133 | 90 | 23 | 36.9 | normal | 4.2.3 | 52.52 | 13.405 |
| stream006 | running | 92.6 | true | deviceF | userU | 2024-04-01T08:10:00Z | 133.7 | 162 | 108 | 29 | 37.7 | error | 3.5.9 | 35.6895 | 139.6917 |
| stream007 | resting | 98.8 | false | deviceG | userT | 2024-04-01T08:12:00Z | 63.9 | 118 | 76 | 16 | 34.7 | normal | 2.5.1 | 37.7749 | -122.4194 |
| stream008 | walking | 93.1 | true | deviceH | userS | 2024-04-01T08:14:00Z | 122.1 | 144 | 97 | 25 | 37.2 | battery_low | 3.2.0 | 51.5074 | -0.1278 |
| stream009 | walking | 97.7 | false | deviceI | userR | 2024-04-01T08:16:00Z | 70.8 | 126 | 80 | 17 | 35.4 | normal | 2.8.4 | 28.6139 | 77.209 |
| stream010 | sleeping | 98.6 | false | deviceJ | userQ | 2024-04-01T08:18:00Z | 42.5 | 99 | 60 | 10 | 33.5 | normal | 2.1.0 | 55.7558 | 37.6173 |
| stream011 | running | 74.7 | true | deviceK | userP | 2024-04-01T08:20:00Z | 182.3 | 224 | 132 | 44 | 41.9 | error | 1.2.2 | -33.8688 | 151.2093 |
| stream012 | resting | 96.9 | false | deviceL | userO | 2024-04-01T08:22:00Z | 59.1 | 111 | 69 | 13 | 34 | normal | 2.6.7 | 19.4326 | -99.1332 |
| stream013 | cycling | 97.9 | false | deviceM | userN | 2024-04-01T08:24:00Z | 74.6 | 134 | 86 | 18 | 36 | normal | 4.3.5 | 39.9042 | 116.4074 |
| stream014 | resting | 99.3 | false | deviceN | userM | 2024-04-01T08:26:00Z | 48.3 | 96 | 58 | 9 | 33.3 | normal | 2.4.3 | 35.6895 | 51.389 |
| stream015 | other | 50 | true | deviceO | userL | 2024-04-01T08:28:00Z | 203.1 | 250 | 150 | 60 | 45 | error | 1.1.7 | -89.9999 | 179.9999 |
| stream016 | cycling | 94.5 | true | deviceP | userK | 2024-04-01T08:30:00Z | 130.2 | 156 | 98 | 26 | 37.8 | battery_low | 3.7.2 | 59.9343 | 30.3351 |
| stream017 | walking | 98.5 | false | deviceQ | userJ | 2024-04-01T08:32:00Z | 68.5 | 124 | 79 | 16 | 35.5 | normal | 2.9.0 | 22.3964 | 114.1095 |
| stream018 | other | 79.8 | true | deviceA | userI | 2024-04-01T08:34:00Z | 29.8 | 60 | 40 | 6 | 23.6 | disconnected | 3.0.8 | -34.6037 | -58.3816 |
| stream019 | resting | 97 | false | deviceB | userH | 2024-04-01T08:36:00Z | 57.2 | 109 | 67 | 14 | 34.6 | normal | 2.7.1 | 41.3851 | 2.1734 |
| stream020 | running | 68.4 | true | deviceC | userG | 2024-04-01T08:38:00Z | 172.9 | 208 | 128 | 49 | 42.2 | error | 1.5.4 | 23.1291 | 113.2644 |
What the 200 rows show
from the 200-row sampleOther (activity type) stands out: mean blood_
- 37%anomaly_
flag = true - 96.1median blood_
oxygen_ saturation - 4sensor statuses
- 26users
- 76.4median heart_
rate_ bpm - 132median blood_
pressure_ systolic
Median 96.1, from 50.0 to 99.8.
- string 6
- float 8
- datetime 1
- boolean 1
Columns
16 columns in four groups| column | type | description | example |
|---|---|---|---|
| Text 6 columns | |||
stream_id | string | Unique identifier for each continuous data stream from a wearable device.unique | stream001 |
device_id | string | Unique identifier for the wearable device generating the data. | deviceA |
user_id | string | Unique identifier for the user wearing the device. | userX |
activity_type | string | Type of activity detected at the time of measurement (e.g., resting, walking, running, sleeping).6 values · optional | resting |
sensor_status | string | Status of the sensor at the time of measurement (e.g., normal, battery_low, disconnected, error).normal · battery_low · disconnected · error · optional | normal |
device_firmware_version | string | Firmware version of the wearable device at the time of measurement.optional | 2.3.5 |
| Numbers 8 columns | |||
heart_rate_bpm | float | Heart rate in beats per minute measured at the given timestamp.20 to 250 · optional | 62.5 |
blood_pressure_systolic | float | Systolic blood pressure (mmHg) measured at the given timestamp.50 to 250 · optional | 116 |
blood_pressure_diastolic | float | Diastolic blood pressure (mmHg) measured at the given timestamp.30 to 150 · optional | 74 |
respiratory_rate | float | Respiratory rate in breaths per minute measured at the given timestamp.5 to 60 · optional | 15 |
blood_oxygen_saturation | float | Blood oxygen saturation (SpO2) percentage measured at the given timestamp.50 to 100 · optional | 98.2 |
skin_temperature_celsius | float | Skin temperature in degrees Celsius measured at the given timestamp.20 to 45 · optional | 35.1 |
location_latitude | float | Latitude coordinate of the device at the time of measurement.-90 to 90 · optional | 40.7128 |
location_longitude | float | Longitude coordinate of the device at the time of measurement.-180 to 180 · optional | -74.006 |
| Dates and times 1 column | |||
timestamp | datetime | Precise date and time when the measurement was recorded. | 2024-04-01T08:00:00Z |
| True or false 1 column | |||
anomaly_flag | boolean | Indicates if the measurement is flagged as an anomaly (true) or normal (false).optional | false |
Use it for
A healthcare dashboard
The anomaly_
flag rate, blood_ oxygen_ saturation by activity_ type and a breakdown of device_ id. Excel, Power BI or Tableau. Why do the 20 other rows have a mean blood_
oxygen_ saturation of 70.3? A root-cause class exercise
Hand out the rows and one question. The answer is in the data, not in the brief.
- Streams200stream00198.2restingstream00389.9runningstream00692.6running
A software demo
Believable streams with device_
id, user_ id and timestamp to fill a screen in front of a buyer.
blueprint · healthcare-wearable-vital-streams
Behind this dataset
Same schema. As many rows as you need.
These 200 rows came out of a blueprint — 16 columns with generation rules behind each one. Open it in Data Factory to retune a column, add your own, wire in foreign keys, and run it at the size you actually need.
- Record heart rate, temperature, movement data
- Simulate daily and circadian cycles
- Include health event and activity tags
- Model device dropouts and erroneous readings
1 credit per row. Preview 20 rows free. Buy rows for the full run.
- Exports
- CSV, JSON, JSONL, Parquet, SQL, Excel, TSV, XML
- Licence
- yours to use, including commercially
- API slug
- healthcare-wearable-vital-streams