Best PPG and wearable datasets for glucose estimation
Glucose datasets fall into two groups. Large free-living cohorts pair wearables with a continuous glucose monitor: AI-READI (2,280 participants, Garmin wrist data, Dexcom G6 CGM, clinical data) is the biggest; BIG IDEAS glycemic (16 participants, wrist PPG with CGM) and BrisT1D (24 people with type 1 diabetes) are smaller. Lab datasets pair short PPG recordings with fingerstick or invasive glucose and usually have under 30 subjects. None is large enough to support a clinical claim of non-invasive glucose measurement. Published results show why: when Supraja et al. (2026) re-ran five PPG glucose methods with participants kept out of training, none beat a predict-the-mean baseline by more than about 1 mg/dL MAE. See the glucose leaderboard for every result by dataset and metric.

Top picks and when to use each
Garmin Vivosmart 5 wrist HR, SpO2 and stress, Dexcom G6 CGM, clinical data, ECG and retinal imaging, released in versions on FAIRhub.
Access: Registered (FAIRhub)Original host- #2BIG IDEAs Lab Glycemic Variability and Wearable Device DataBest for: Free-living wrist PPG with CGM
16 adults with high-normal glucose or prediabetes, Empatica E4 wrist PPG (64 Hz), EDA, temperature and accelerometry with Dexcom G6 CGM every 5 min for 8-10 days, plus food logs (PhysioNet, ODC-By 1.0).
Access: Open (PhysioNet, ODC-By 1.0)Original host Intraoperative finger PPG with perioperative lab glucose from 6,388 surgical cases; the training set for most recent deep PPG glucose papers, and the set Supraja et al. (2026) used for subject-disjoint tests.
Access: Open (CC BY 4.0 on PhysioNet)Original host24 participants with smartwatch HR, steps and activity alongside CGM.
D1NAMO was collected by the D1NAMO project with authors from the University of Applied Sciences and Arts Western Switzerland, EPFL, Open University of the Netherlands, and Hôpital Riviera-Chablais. The Zenodo record publishes separate healthy and diabetes subsets for ECG, sensor data, and food/glucose annotations. The companion article is documented at 10.1016/j.imu.2018.09.003.
125 thumb records from 24 people (3 with type 1 diabetes): six PPG channels at 530, 655 and 940 nm, 100 Hz, accelerometer, Beurer fingerstick glucose in mmol/L, plus QC tables and MIT benchmark code.
Access: Open (CC0 1.0)Original host- #7PPG Signals for Blood Glucose Measurement (Kermani / Mendeley)Best for: High-rate PPG with invasive glucose
67 fingertip PPG recordings at 2,175 Hz from 23 people with Accu-Chek glucose (about 88-183 mg/dL). Often called MUST; mostly used as an external test set.
Access: Open (CC BY 4.0)Original host
Comparison table
13 datasets. Swipe sideways on mobile. Values come from each dataset record; open a dataset for sources. Popularity is cached at build time: OpenAlex citations of the source paper (or the dataset DOI when no paper is linked), results on ChatPPG leaderboards, and GitHub stars or Zenodo / Hugging Face downloads where the host reports them. Hover for the source; a dash means unknown.
| Signals | Sampling | Ground truth | Licence | Access | |||
|---|---|---|---|---|---|---|---|
| AI-READI | 2,280 | HR, SPO2, accel, CGM, ECG | Garmin derived metrics every 5 s; CGM ev… | glucose, t2dm, clinical labs | See host | Registered (FAIRhub) | 4 cited |
| BIG IDEAs Lab Glycemic Variability and Wearable Device Data | 16 | PPG, accel, skin temp, EDA, CGM | 64Hz, 32Hz, 4Hz | glucose | Open Data Commons Attribution License v1.0 | Open (PhysioNet, ODC-By 1.0) | 94 cited10 results |
| VitalDB | 6,388 | PPG, ECG, resp, ABP, co2 | 100 Hz | ABP | CC BY 4.0 (PhysioNet release) | Open (CC BY 4.0 on PhysioNet) | 265 cited19 results |
| BrisT1D-Open | 24 | HR, CGM, steps, distance, calories | Processed state: 5-minute aggregated int… | activity, glucose | See host | See host | 1 cited |
| D1NAMO | 29 | ECG, accel, resp, CGM | — | glucose | See host | See host | 101 cited10,851 downloads |
| STU-BA PPG Blood Glucose Dataset (Zenodo) | 24 | PPG, accel | 100 Hz | glucose | CC0 1.0 | Open (CC0 1.0) | 0 cited425 downloads |
| PPG Signals for Blood Glucose Measurement (Kermani / Mendeley) | 23 | PPG | 2175 Hz | glucose | CC BY 4.0 | Open (CC BY 4.0) | 6 cited30 results |
| Brno University of Technology Smartphone PPG Database (BUT PPG) | 50 | PPG, ECG | 30Hz, 1000Hz, 100Hz | HR, glucose | CC BY 4.0 | See host | 7 cited1 result |
| ePPG glucose dataset (STU Bratislava) | 24 | PPG, accel | 100 Hz | glucose | See host | See host | 0 cited425 downloads |
| mcPHASES: A Dataset of Physiological, Hormonal, and Self-reported Events and Symptoms for Menstrual Health Tracking with Wearables | — | skin temp, SPO2, hrv, fitbit derived heart_rate, sleep_stages | — | SPO2, sleep staging, glucose, resp rate | See host | See host | — |
| MIMIC-IV-Ext-ECG-Glucose: Temporally Aligned 12-Lead ECG and Laboratory Blood Glucose Pairs with Quality and Pharmacological Annotations | — | ECG | — | glucose, insulin_dextrose_exposure, ecg_signal_quality | See host | See host | 0 cited |
| PPG-BGL Smartwatch (Bhatia & Ekbote 2026 / Zenodo 20577959) | 1 | PPG, CGM | — | glucose | CC BY 4.0 | See host | 0 cited223 downloads |
| Smartwatch PPG paired with CGM glucose (Zenodo) | 5 | PPG, CGM | — | glucose | CC BY 4.0 | See host | 0 cited223 downloads |
Benchmark results
Reported results from papers in the ChatPPG hub. Protocols differ, so only compare rows on the same dataset and metric.
| Dataset | Metric | Method | Result | Protocol |
|---|---|---|---|---|
| VitalDB | Mean absolute error (mmHg); cuffless BP ↓ | TCN–BiLSTM PPG→ABP | 3.61 | 2,226 patients; within-VitalDB split unstated; MIMIC-IV external (no abstract numbers) |
| BIG IDEAs Lab Glycemic Variability and Wearable Device Data | Clarke error grid zone A (%) ↑ | XGBoost (Karunarathna) | 94.2 | 236 wearable + circadian + demographic features, no food logs; random 80/20 split of 5-min epochs (same participants in … |
| BIG IDEAs Lab Glycemic Variability and Wearable Device Data | Clarke error grid zone A (%) ↑ | Random forest (Karunarathna) | 89.1 | 236 wearable + circadian + demographic features, no food logs; random 80/20 split of 5-min epochs (same participants in … |
| BIG IDEAs Lab Glycemic Variability and Wearable Device Data | MARD (%) ↓ | XGBoost (Karunarathna) | 7.1 | 236 wearable + circadian + demographic features, no food logs; random 80/20 split of 5-min epochs (same participants in … |
| BIG IDEAs Lab Glycemic Variability and Wearable Device Data | MARD (%) ↓ | Random forest (Karunarathna) | 9.7 | 236 wearable + circadian + demographic features, no food logs; random 80/20 split of 5-min epochs (same participants in … |
| BIG IDEAs Lab Glycemic Variability and Wearable Device Data | MARD (%) ↓ | Bent 2021 personalized | 13.26 | Personalized gradient-boosted model: trained on the first half of each participant's own data, tested on the second half… |
| BIG IDEAs Lab Glycemic Variability and Wearable Device Data | MARD (%) ↓ | Bent 2021 population | 14.33 | Gradient-boosted model on Empatica E4 features + food logs, 5-min CGM targets; leave-one-person-out CV across 16 partici… |
| BIG IDEAs Lab Glycemic Variability and Wearable Device Data | Glucose RMSE (mg/dL) ↓ | XGBoost (Karunarathna) | 11.9 | 236 wearable + circadian + demographic features, no food logs; random 80/20 split of 5-min epochs (same participants in … |
| BIG IDEAs Lab Glycemic Variability and Wearable Device Data | Glucose RMSE (mg/dL) ↓ | Random forest (Karunarathna) | 15.6 | 236 wearable + circadian + demographic features, no food logs; random 80/20 split of 5-min epochs (same participants in … |
| BIG IDEAs Lab Glycemic Variability and Wearable Device Data | Glucose RMSE (mg/dL) ↓ | Bent 2021 personalized | 21.1 | Personalized gradient-boosted model: trained on the first half of each participant's own data, tested on the second half… |
| BIG IDEAs Lab Glycemic Variability and Wearable Device Data | Glucose RMSE (mg/dL) ↓ | Bent 2021 population | 21.22 | Gradient-boosted model on Empatica E4 features + food logs, 5-min CGM targets; leave-one-person-out CV across 16 partici… |
| PPG Signals for Blood Glucose Measurement (Kermani / Mendeley) | Clarke error grid zone A (%) ↑ | PLS (Islam) | 86.57 | Trained on all VitalDB data, tested on the 67 MUST (Kermani) recordings (Supraja et al. 2026 out-of-distribution test). … |
| PPG Signals for Blood Glucose Measurement (Kermani / Mendeley) | Clarke error grid zone A (%) ↑ | MFCC + XGBoost (Prabha) | 83.58 | Trained on all VitalDB data, tested on the 67 MUST (Kermani) recordings (Supraja et al. 2026 out-of-distribution test). … |
| PPG Signals for Blood Glucose Measurement (Kermani / Mendeley) | Clarke error grid zone A (%) ↑ | Mean baseline | 77.61 | Trained on all VitalDB data, tested on the 67 MUST (Kermani) recordings (Supraja et al. 2026 out-of-distribution test). … |
| PPG Signals for Blood Glucose Measurement (Kermani / Mendeley) | Clarke error grid zone A (%) ↑ | ResNet34-1s | 76.6 | Original paper: trained on VitalDB (random 70/15/15 split), external test on the MUST (Kermani) dataset with 1 s peak-ce… |
| PPG Signals for Blood Glucose Measurement (Kermani / Mendeley) | Clarke error grid zone A (%) ↑ | XGBoost (Gupta) | 75.6 | Trained on all VitalDB data, tested on the 67 MUST (Kermani) recordings (Supraja et al. 2026 out-of-distribution test). … |
| PPG Signals for Blood Glucose Measurement (Kermani / Mendeley) | Glucose MAE (mg/dL) ↓ | PLS (Islam) | 13.37 | Trained on all VitalDB data, tested on the 67 MUST (Kermani) recordings (Supraja et al. 2026 out-of-distribution test). … |
| PPG Signals for Blood Glucose Measurement (Kermani / Mendeley) | Glucose MAE (mg/dL) ↓ | MFCC + XGBoost (Prabha) | 14.23 | Trained on all VitalDB data, tested on the 67 MUST (Kermani) recordings (Supraja et al. 2026 out-of-distribution test). … |
| PPG Signals for Blood Glucose Measurement (Kermani / Mendeley) | Glucose MAE (mg/dL) ↓ | ResNet34-1s | 14.8 | Original paper: trained on VitalDB (random 70/15/15 split), external test on the MUST (Kermani) dataset with 1 s peak-ce… |
| PPG Signals for Blood Glucose Measurement (Kermani / Mendeley) | Glucose MAE (mg/dL) ↓ | Mean baseline | 16 | Trained on all VitalDB data, tested on the 67 MUST (Kermani) recordings (Supraja et al. 2026 out-of-distribution test). … |
| PPG Signals for Blood Glucose Measurement (Kermani / Mendeley) | Glucose MAE (mg/dL) ↓ | ResNet34 (Zeynali) | 16.33 | Trained on all VitalDB data, tested on the 67 MUST (Kermani) recordings (Supraja et al. 2026 out-of-distribution test). … |
| PPG Signals for Blood Glucose Measurement (Kermani / Mendeley) | MARD (%) ↓ | PLS (Islam) | 10.67 | Trained on all VitalDB data, tested on the 67 MUST (Kermani) recordings (Supraja et al. 2026 out-of-distribution test). … |
| PPG Signals for Blood Glucose Measurement (Kermani / Mendeley) | MARD (%) ↓ | MFCC + XGBoost (Prabha) | 11.69 | Trained on all VitalDB data, tested on the 67 MUST (Kermani) recordings (Supraja et al. 2026 out-of-distribution test). … |
| PPG Signals for Blood Glucose Measurement (Kermani / Mendeley) | MARD (%) ↓ | ResNet34-1s | 12.8 | Original paper: trained on VitalDB (random 70/15/15 split), external test on the MUST (Kermani) dataset with 1 s peak-ce… |
| PPG Signals for Blood Glucose Measurement (Kermani / Mendeley) | MARD (%) ↓ | CNN-LSTM-Att-1s | 13 | Original paper: trained on VitalDB (random 70/15/15 split), external test on the MUST (Kermani) dataset with 1 s peak-ce… |
| PPG Signals for Blood Glucose Measurement (Kermani / Mendeley) | MARD (%) ↓ | Mean baseline | 14.13 | Trained on all VitalDB data, tested on the 67 MUST (Kermani) recordings (Supraja et al. 2026 out-of-distribution test). … |
| PPG Signals for Blood Glucose Measurement (Kermani / Mendeley) | Glucose RMSE (mg/dL) ↓ | ResNet34-1s | 19.7 | Original paper: trained on VitalDB (random 70/15/15 split), external test on the MUST (Kermani) dataset with 1 s peak-ce… |
| PPG Signals for Blood Glucose Measurement (Kermani / Mendeley) | Glucose RMSE (mg/dL) ↓ | VGG16-1s | 21 | Original paper: trained on VitalDB (random 70/15/15 split), external test on the MUST (Kermani) dataset with 1 s peak-ce… |
| PPG Signals for Blood Glucose Measurement (Kermani / Mendeley) | Glucose RMSE (mg/dL) ↓ | CNN-LSTM-Att-1s | 24.4 | Original paper: trained on VitalDB (random 70/15/15 split), external test on the MUST (Kermani) dataset with 1 s peak-ce… |
| VitalDB | Clarke error grid zone A (%) ↑ | ResNet34 (Zeynali) | 55.62 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | Clarke error grid zone A (%) ↑ | MFCC + XGBoost (Prabha) | 55.1 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | Clarke error grid zone A (%) ↑ | 1D-CNN (Alghlayini) | 54.19 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | Clarke error grid zone A (%) ↑ | XGBoost (Gupta) | 53.88 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | Clarke error grid zone A (%) ↑ | PLS (Islam) | 53.19 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | Glucose MAE (mg/dL) ↓ | MFCC + XGBoost (Prabha) | 25.42 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | Glucose MAE (mg/dL) ↓ | XGBoost (Gupta) | 25.77 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | Glucose MAE (mg/dL) ↓ | ResNet34 (Zeynali) | 25.93 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | Glucose MAE (mg/dL) ↓ | 1D-CNN (Alghlayini) | 26.05 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | Glucose MAE (mg/dL) ↓ | PLS (Islam) | 26.14 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | MARD (%) ↓ | MFCC + XGBoost (Prabha) | 21.56 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | MARD (%) ↓ | 1D-CNN (Alghlayini) | 21.8 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | MARD (%) ↓ | XGBoost (Gupta) | 21.96 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | MARD (%) ↓ | PLS (Islam) | 22.28 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
| VitalDB | MARD (%) ↓ | Mean baseline | 22.52 | Reproduced by Supraja et al. 2026 on VitalDB intraoperative finger PPG vs lab glucose; leave-some-participants-out (test… |
Preprocessing pitfalls
- CGM measures interstitial glucose, which lags blood glucose by several minutes; align windows accordingly.
- With fewer than 30 subjects, models can learn the person, not the glucose. Use leave-subject-out evaluation and compare against a per-subject mean baseline.
- Report Clarke or Parkes error-grid zones and MARD, not just correlation.
- Glucose correlates with time of day, meals and activity; a model can exploit those confounders without reading glucose from the PPG.
- Always report a predict-the-training-mean baseline and R². On VitalDB with subject-disjoint splits, the mean baseline scored MAE 26.4 mg/dL against 25.4-26.1 for five published methods, and on the Kermani set every reproduced model had R² below zero (Supraja et al. 2026).
- Clarke zone A+B looks reassuring but hides failure: over 90% of predictions landed in A+B for every model and split in Supraja et al. (2026), including the mean baseline.
FAQ
Can PPG measure blood glucose?
Published studies report associations on small cohorts, but no public dataset supports a validated non-invasive glucose claim. Treat results on datasets with tens of subjects as exploratory.
What is the largest wearable dataset with glucose?
AI-READI, with 2,280 participants in the ChatPPG hub record, pairs Garmin wrist data with Dexcom G6 CGM and clinical measures, distributed via FAIRhub.
What accuracy do published PPG glucose models report?
On the Kermani (MUST) set, Zeynali et al. (2025) reported RMSE 19.7 mg/dL, MARD 12.8% and 76.6% Clarke zone A for a ResNet34 trained on VitalDB. On BIG IDEAs, Bent et al. (2021) reported RMSE 21.22 mg/dL with leave-one-person-out validation. Higher numbers in other papers often come from random window splits that put the same people in training and test.
Is there a glucose leaderboard?
Yes. The ChatPPG glucose leaderboard lists every result we could verify from the original papers, ranked only within the same dataset and metric (MAE, RMSE, MARD, Clarke zone A), with the evaluation protocol and a source link on every row.
