September 3, 2026 · 3 min read

Blood glucose

Where readings come from, why a daily average of a CGM stream is a coarse summary, when to use data logs instead, and what to build.

What blood_glucose measures

blood_glucose is the day’s average of all glucose readings from the winning source, in milligrams per decilitre.

Fieldblood_glucose
Unitmg/dL
ReportedDaily average, on days with at least one reading
WindowMidnight to midnight, profile local time
Wearable requiredYes, a meter or a monitor writing to the platform
APIGET /api/v1/profile/biomarker/{externalId}?categories=vitals&types=blood_glucose plus a date range
WebhookBiomarkerCreatedIntegrationEvent. Entries update in place, upsert on id.

Data sources

PlatformRecordNotes
iOS, HealthKitbloodGlucoseCGM companion apps such as Dexcom, glucometer apps, and manual entries in the Health app
Android, Health ConnectBloodGlucoseRecordSame kinds of apps, Samsung Health, and manual entries
Direct integrationsProvider-dependent
Phone onlyManual entries only

Readings carry a recording method, automatic or manual. An account that wants to exclude manually typed readings can ask Sahha to filter them.

How Sahha calculates blood_glucose

  1. Pick one source for the day within the blood category, which also covers blood pressure. One source wins per day; readings from different apps are never blended.
  2. Average that source’s readings with an end time inside the local day.

Absence means no reading that day.

Interpreting the value

Two very different users produce this field. A fingerprick user contributes one to four readings a day, so the average is a rough fasting or post-meal figure. A CGM user contributes a reading every few minutes, so the average is a smoothed daily mean that hides everything interesting about the curve.

The daily mean is a long-term signal. Averaged over weeks it tracks overall glycaemic control, which is the basis of the glucose management indicator used with continuous monitors [1]. As a daily number it says little.

Everything glucose-specific needs the readings. Time in range, variability, and the response to a meal are calculated from the individual samples. Those are data logs, delivered by webhook, not this biomarker.

Blood glucose is not a score factor and has no trend or comparison insight.

Use cases

A weekly average with a reading count. Show the 7-day mean and how many readings it rests on. The count tells you, and the user, whether it is a CGM average or three fingerpricks.

GET /api/v1/profile/biomarker/{externalId}?categories=vitals&types=blood_glucose&startDateTime=2026-08-26&endDateTime=2026-09-02

Meal response, from data logs. Pair glucose data logs with the energy_intake and carbohydrate nutrition biomarkers for a logged meal. See energy intake for how the nutrition side is sourced.

Limitations

  • Sparse for most users, dense for a few. Design for both.
  • Manual entries are included by default unless filtered.
  • Clinical context is required for any glucose feature. The biomarker is a wellness summary.
  • Absence is not zero.

References

  1. Bergenstal RM, Beck RW, Close KL, et al. Glucose management indicator (GMI): a new term for estimating A1C from continuous glucose monitoring. Diabetes Care. 2018;41(11):2275-2280. https://doi.org/10.2337/dc18-1581

Related