What Average Morning Blood Sugar Looks Like on CGM
In people without diabetes, the average morning glucose measured just before rising sits roughly in the 80-95 mg/dL range, and a single lab fasting value under 100 mg/dL is conventionally called normal, 100-125 mg/dL impaired fasting glucose, and 126 mg/dL or higher on two occasions diabetic. A one-off reading of 99 is inside the normal band but near its top, and it tells you almost nothing on its own because within-person day-to-day variation in fasting glucose is large enough that the same person can read 85 one morning and 105 the next without anything changing. What you want is a distribution: your mean morning glucose across 14+ days, its standard deviation, and the shape of the 03:00-09:00 curve. A single number will not do. Getting the distribution requires a continuous glucose monitor and a few lines of code, and it is worth the trouble because the shape carries information the point value cannot.
Why one fasting number is a weak measurement
Fasting plasma glucose was designed for clinics: one venous draw, one enzymatic assay, a decision threshold. The assay itself is precise (CVs of 2-3% on a modern analyzer), but the quantity being measured is not stable. Overnight glucose is the output of hepatic glucose production, insulin clearance, cortisol rise and growth hormone pulses. It also reflects sleep stage at the moment of the draw, and what you ate 10 hours earlier. Sample it once and you get one draw from a distribution with a within-person SD of roughly 5-8 mg/dL in normoglycemic people and considerably more in dysglycemia.
Continuous monitoring exposes that structure. The original CGM validation work established that continuous traces reveal nocturnal excursions and dawn patterns that intermittent fingersticks miss entirely12. Twenty-four-hour CGM profiling in type 2 diabetes shows glucose is lowest in the pre-dawn hours and that the highest daily values cluster after breakfast rather than at any point overnight3. If you only ever sample at 07:30 in a lab, you are sampling the steepest part of the curve for many people, which is why the number moves so much.
Defining “morning glucose” so the number is reproducible
Pick a definition and keep it. Ours:
- Nocturnal baseline: the 5th percentile of all readings between 00:00 and 06:00. This approximates the floor your liver defends and is insensitive to a single late-dinner tail.
- Pre-wake mean: mean glucose over the 60 minutes ending at your habitual wake time.
- Dawn delta: (mean of the 60 minutes after wake) − (mean of the 60 minutes before wake). A positive delta of 10-20 mg/dL is common and reflects cortisol and hepatic output. It does not reflect food.
- Morning SD: standard deviation of the pre-wake mean across days. This is the number that tells you whether “99” was signal.
Fourteen days is the minimum for a stable mean and roughly the interval most CGM products cover per sensor. Twenty-eight days is better if you want to see weekday/weekend structure. The Ambulatory Glucose Profile, the standard overlay plot where days are stacked and displayed as median plus interquartile band by time of day, was defined for exactly this purpose and remains the right first visualization4.
Computing it from raw CGM exports
Dexcom’s Clarity export is CSV with a Timestamp (YYYY-MM-DDThh:mm:ss) column and Glucose Value (mg/dL), where clipped readings appear as the strings Low and High rather than numbers. Libre exports from LibreView use a Device Timestamp in local time, a Record Type column (0 = historic, 1 = scan, 6 = notes), and separate columns for historic and scan glucose. Two failure modes bite everyone on the first pass: dropping the non-numeric Low/High rows silently biases your minima upward, and mixing Record Type 0 and 1 double-counts the moments you happened to scan.
A minimal pass in pandas:
import pandas as pd, numpy as np
df = pd.read_csv("clarity.csv")
df = df[df["Event Type"] == "EGV"].copy()
g = df["Glucose Value (mg/dL)"].replace({"Low": 39, "High": 401})
df["glucose"] = pd.to_numeric(g, errors="coerce")
df["ts"] = pd.to_datetime(df["Timestamp (YYYY-MM-DDThh:mm:ss)"])
df = df.dropna(subset=["glucose"]).set_index("ts").sort_index()
# completeness check before any statistics
expected = len(pd.date_range(df.index.min(), df.index.max(), freq="5min"))
print(f"coverage {len(df)/expected:.1%}")
night = df.between_time("00:00", "06:00")
baseline = night.groupby(night.index.date)["glucose"].quantile(0.05)
prewake = df.between_time("06:00", "07:00").groupby(
df.between_time("06:00", "07:00").index.date)["glucose"].mean()
print(prewake.describe())
print(f"morning SD across days: {prewake.std():.1f} mg/dL")
Check coverage first. Below about 85% of expected 5-minute readings, compression lows and gaps distort percentiles enough that the 5th percentile is unusable. Exclude the first 24 hours of every sensor: warm-up drift is real and reliably reads low or noisy on day 1.
What the sensor can and cannot resolve
CGM measures interstitial glucose and converts it with a factory or fingerstick calibration. In normoglycemic people the error is worse in relative terms than the marketing figures suggest, because those figures are dominated by hyperglycemic ranges. In healthy, normoglycemic adults, CGM accuracy against reference measurements is meaningfully limited. Mean absolute relative differences are large enough that differences of a few mg/dL between days are not interpretable5. Practically: do not read meaning into a shift from 91 to 96. Do read meaning into a shift from 91 to 112 that persists across a week and two sensors.
There is also a physiological lag of roughly 5-15 minutes between blood and interstitium, which matters most on steep slopes. Overnight slopes are shallow, so lag is a minor concern for morning baseline and a major one for post-breakfast peaks.
If your morning numbers sit consistently at or above 100-110 mg/dL, that pattern belongs in front of a clinician with an HbA1c and a fasting insulin. It does not belong in front of a spreadsheet. CGM is a measurement tool. It is not a diagnostic.
Things that move morning glucose, and what the evidence supports
Evening alcohol is the most reliably documented perturbation. In type 1 diabetes, moderate evening alcohol lowered next-morning glucose and increased the risk of morning hypoglycemia, with effects visible 10-12 hours after drinking6. The mechanism (suppressed hepatic gluconeogenesis) is not diabetes-specific, so expect a downward shift in your own overnight baseline after drinking, and an artificially flattering fasting number the next morning.
Hydration status has a measurable effect, though smaller than the internet implies. In type 2 diabetes, reducing water intake for several days worsened glucose regulation relative to adequate intake7. Drinking water alongside a carbohydrate load changed the postprandial curve in a time-dependent way in healthy young adults8. The practical read: chronic underhydration is worth correcting, and a glass of water on waking will not meaningfully alter your reading.
Extended fasting does something counterintuitive. In healthy adults, a seven-day water-only fast produced marked increases in CGM-detected hypoglycemia9. If you are experimenting with multi-day fasts and watching your CGM, expect low readings that would be alarming in another context, and know that the sensor is least accurate in exactly that range.
Meal composition the prior evening shifts the overnight floor. Carbohydrate and fat loads produce distinguishable glucose patterns even when subjects are blinded to time of day, which argues that the overnight trace is partly a readout of dinner and not purely of your fasting physiology10.
Questions people also ask
What time in the morning is best for fasting blood sugar? For lab comparability, draw at the same clock time each occasion after 8-12 hours without food, typically 07:00-09:00. For CGM analysis, anchor to your wake time rather than the clock. Report the pre-wake hour separately from the post-wake hour, because the dawn rise can add 10-20 mg/dL between them.
Is 135 high for blood sugar in the morning? A fasting value of 135 mg/dL is above the 126 mg/dL diabetic threshold and above the 100-125 impaired range. One CGM reading of 135 is not the same thing, particularly if it came after a meal, after sensor warm-up, or during a steep dawn rise. A repeated fasting 135 warrants a lab fasting plasma glucose and HbA1c ordered by a clinician.
What is my A1C if my sugar is 135? There is no valid single-point conversion. HbA1c reflects a weighted average over 8-12 weeks, dominated by the most recent month, and depends on red cell lifespan. Mean-glucose-to-A1c regressions exist but require a full CGM mean over weeks, not one morning value, and they carry wide prediction intervals.
Does drinking water in the morning affect fasting blood sugar? Acutely, minimally. Chronic low intake does appear to worsen glucose regulation7, and water consumed with carbohydrate alters the postprandial trajectory8, so hydrate normally and do not treat a glass of water as a way to tune the reading.
What time of day is blood sugar usually highest? In 24-hour CGM profiling of type 2 diabetes, the peaks followed meals, with the post-breakfast rise typically the largest of the day. The minimum was in the pre-dawn hours3. Individual traces vary, which is the argument for looking at your own overlay plot.
How soon after waking up should I check? Within 15 minutes if you want the pre-dawn floor, before standing, coffee, or a shower. If you want your habitual morning number, check at a fixed interval after waking and hold it constant across days so the dawn component is comparable.
Footnotes
-
Bruce W. Bode. Clinical Utility of the Continuous Glucose Monitoring System. Diabetes Technology & Therapeutics, 2000. https://doi.org/10.1089/15209150050214104 ↩
-
John J. Mastrototaro. The MiniMed Continuous Glucose Monitoring System. Diabetes Technology & Therapeutics, 2000. https://doi.org/10.1089/15209150050214078 ↩
-
Maiko Hajime, Yosuke Okada, Hiroko Mori, et al. Twenty‐four‐hour variations in blood glucose level in Japanese type 2 diabetes patients based on continuous glucose monitoring. Journal of Diabetes Investigation, 2017. https://doi.org/10.1111/jdi.12680 ↩ ↩2
-
Roger S Mazze, David Lucido, Oded Langer, et al. Ambulatory Glucose Profile: Representation of Verified Self-Monitored Blood Glucose Data. Diabetes Care, 1987. https://doi.org/10.2337/diacare.10.1.111 ↩
-
Abimbola A. Akintola, Raymond Noordam, Steffy W. Jansen, et al. Accuracy of Continuous Glucose Monitoring Measurements in Normo-Glycemic Individuals. PLOS ONE, 2015. https://doi.org/10.1371/journal.pone.0139973 ↩
-
Benjamin C. Turner, Emma Jenkins, David Kerr, et al. The Effect of Evening Alcohol Consumption on Next-Morning Glucose Control in Type 1 Diabetes. Diabetes Care, 2001. https://doi.org/10.2337/diacare.24.11.1888 ↩
-
Evan C. Johnson, Costas N. Bardis, Lisa T. Jansen, et al. Reduced water intake deteriorates glucose regulation in patients with type 2 diabetes. Nutrition Research, 2017. https://doi.org/10.1016/j.nutres.2017.05.004 ↩ ↩2
-
Robbert Bipat, Jerry R. Toelsie. Drinking water with consumption of a jelly filled doughnut has a time dependent effect on the postprandial blood glucose level in healthy young individuals. Clinical Nutrition ESPEN, 2018. https://doi.org/10.1016/j.clnesp.2018.07.007 ↩ ↩2
-
Kristoffer J. Kolnes, Lauren V. Turner, Steffen Brufladt, et al. Marked Increases in Continuous Glucose Monitor-Detected Hypoglycemia During a Seven-Day Water-Only Fast in Healthy Men and Women. Journal of Diabetes Science and Technology, 2026. https://doi.org/10.1177/19322968261421956 ↩
-
Kathleen J. Melanson, Margriet S. Westerterp-Plantenga, Wim H. M. Saris, et al. Blood glucose patterns and appetite in time-blinded humans: carbohydrate versus fat. American Journal of Physiology-Regulatory, Integrative and Comparative Physiology, 1999. https://doi.org/10.1152/ajpregu.1999.277.2.r337 ↩
Oak builds longitudinal molecular profiles of individuals: whole-genome sequencing, blood RNA sequencing, and plasma proteomics, delivered as a detailed report plus every data file. Build your profile.