BGEM PPG Explorer

All trials on one page · denoised & normalized PPG

Loading...
BGEM ID User Name Time (IST) Actual (mg/dL) Predicted (mg/dL) Ring Mid (mg/dL) Ring Range Our Range Ring Error Our Error Winner
Per-user averages One row per user. Ranges shown as average lower–upper (mg/dL). Actual uses LAB → CGM → GLUCO priority. Within ±10% counts samples where our predicted point is within 10% of actual. Within ±10 mg/dL counts samples where |predicted − actual| ≤ 10.
User Name Samples Within ±10% Within ±10 mg/dL Avg Actual (mg/dL) Avg Predicted (mg/dL) Avg Our Range (mg/dL) Avg Ring Range (mg/dL)
Model components vs actual glucose Each column is a feature used by the model. Sort any column to see how values rise or fall with actual sugar. Headers stay visible while scrolling.
Entry-wise train / test split Model is trained on ~80% of labeled recordings. For users with multiple entries, some go to train and some to test (same user can appear in both sets).

Training set samples

User Actual (mg/dL) Predicted Our Error Ring Error Winner

Test set samples

User Actual (mg/dL) Predicted Our Error Ring Error Winner

Unseen samples (new SQL)

User Actual (mg/dL) Predicted Our Error Ring Error Winner
BGEM ID User Date & Time Actual (mg/dL) Ring Mid Ridge Pred XGBoost Pred Low / Normal / High Pred Combined Pred Ring Err Ridge Err XGB Err Low / Normal / High Err Combined Err Closest
Old range vs confidence-based adaptive range Old = symmetric band from median LOO absolute error. Adaptive = per-sample confidence interval at 80%: bootstrap ensemble gives a conservative prediction; range = P100 ± |P100 − P80|. Both methods are clipped to ±10…±20 mg/dL of the predicted value. Existing tabs still use the old range.
User Date & Time Actual Predicted Old Range Adaptive Range Old Covers Adaptive Covers Old Width Adaptive Width Narrower
Live prediction Click a row to process PPG, predict glucose, and show the full Graphs-style detail.

Upload JSON

One record object (or an array with one object) including bgem_ppg_data.

Select a trial

Patient Created Split Customer Trial BGEM id Gender Age Height Weight Slot Ring lo mmol Ring hi mmol Ring lo mg/dL Ring hi mg/dL CGM Gluco Lab HbA1c Waist Avg HR Systolic Glucose type After meal Skin temp Personal hx Medication
Open this tab and click Refresh from SQL.

Select a row to calculate prediction and open the full detail view.

Why the model is unreliable: the data confuses "account" with "patient" Each account below is a doctor's login, not a single patient. Doctors log many different real patients under one account and reuse the same height/weight/age/gender every time — so those fields describe the doctor's data-entry habit, not the person the PPG signal came from. Discard them from training until real per-patient demographics exist.

Parameters used for model training / testing

Train and test rows use exactly the same input parameters — the split only decides which rows the model learns from and which it is scored on.

# Parameter Group Ridge XGBoost Low / Normal / High classifier Low / Normal / High band Ridge

Actual vs predicted glucose (averaged by actual)

Red = actual sugar. Blue = model predicted (mean when several trials share the same actual). Rebuilds automatically from the latest trained predictions file.

Trials logged per account

Glucose spread per account (same demographics, one box each)

Fasting vs Post Meal trials per account

Missing / zero reference labels

Average parameter values by glucose range

Readings grouped into 10 mg/dL ranges of actual sugar. Bars = mean per range, whiskers = ±1 SD, colour = sugar category.

Readings per glucose range

Trend overview: range mean vs overall mean (in SDs)

Red = above the parameter's overall mean in that range, blue = below. Ranges with fewer than 3 readings are left blank.

Parameters vs glucose by demography

X = glucose (mg/dL), Y = parameter value. Each colour is one demographic profile. Click a legend entry to hide / show that profile on every chart.

Account (doctor) Customer ID Trials Distinct Days Height (cm) Weight (kg) Age Gender Unique H / W / Age / Gender Glucose min Glucose max Glucose std dev