How Do I Calculate Glucose Variability From My CGM Data?
Glucose variability from CGM data is the coefficient of variation: standard deviation divided by mean, times 100. For adults with diabetes, the 2019 International Consensus on Time in Range recommends a CV of 36% or lower. Here's the formula and how to get it from your own export.
Glucose variability from CGM data is the coefficient of variation (CV): the standard deviation of your sensor readings divided by the mean, multiplied by 100. The number you get is a percentage. For adults with diabetes, the 2019 International Consensus on Time in Range recommends a CV of 36% or lower as the stability target used in CGM reports. You can compute it in a spreadsheet from any export in under a minute, or use a free browser report that does the arithmetic for you.
How do I calculate glucose variability from my CGM data?
Take every valid glucose reading from a sensor session, not just fasting or pre-meal values. Calculate the arithmetic mean. Calculate the standard deviation of that same list. Divide the standard deviation by the mean. Multiply by 100.
CV% = (standard deviation ÷ mean) × 100
Using a spreadsheet, that is =STDEV.S(A2:A3000)/AVERAGE(A2:A3000)*100, with the range pointed at the glucose column.
If your mean glucose is 120 mg/dL and the SD is 20 mg/dL, the CV is (20 ÷ 120) × 100 = 16.7%. If you use mmol/L and the mean is 5.6 mmol/L with an SD of 0.9 mmol/L, the CV is 16.1%. The percentage is unit-free as long as the mean and SD use the same unit.
Here is what you are doing with the file:
What units do I need?
Any unit works if every reading is in the same unit. Most CGM exports give you one consistent column. If you need to convert, divide mg/dL by 18.0 to get mmol/L, or multiply mmol/L by 18.0 to get mg/dL. Never average a mixed list.
Use all valid readings from a full sensor session or a 14-day stretch. CGM CV is a summary of the whole curve, including sleep, meals, exercise, stress and sensor noise. Picking only the hours that look interesting changes both the mean and the standard deviation, so the number becomes less meaningful.
What is a good glucose CV?
In diabetes care, the 2019 International Consensus on Time in Range recommends a CV of 36% or lower for adults with diabetes. This target is for adults with diabetes, not a general population range.
Do not chase zero. A flat line is not the goal, and a low CV can hide a high average. The classic mistake is reading standard deviation alone. One person with a mean of 90 mg/dL and SD 18 mg/dL has a CV of 20%. Another with a mean of 180 mg/dL and the same SD of 18 mg/dL has a CV of 10%. Same absolute spread, very different relative variability.
Illustrative comparison.
How do I get it from my own CGM export without uploading anything?
Two ways.
- Fastest: export from LibreView, Dexcom Clarity, Stelo, Lingo, SiBionics or Apple Health, then drop the CSV, XLSX, TXT or ZIP into the free CGM report. The file is read locally in your browser and never uploaded. The report shows CV next to your AGP, time in range, GMI and biggest rises.
- Spreadsheet: open the file, find the glucose column, and use the formula above. You control the arithmetic and can see every step.
If your export has a column called something like "Historic Glucose mg/dL" or "Glucose Value", select that range and exclude any header rows.
Can I calculate glucose variability from fingerpricks or a fasting lab?
No, not the same measurement. CGM variability uses a dense time series, often readings every 1 to 15 minutes for days, so it captures post-meal rises, overnight slope and recovery. A fasting lab is one point. A handful of fingerpricks is maybe five to ten points. You can still compute a mean and SD, but it will not be a CGM glucose CV and should not be compared with the 36% target. This is the most common misuse.
What moves the CV up or down
The CV rises when glucose swings far from its own average: large post-meal spikes, sharp dips after exercise, or overnight instability. It can also rise from sensor artefacts and pressure lows. A single bad sensor day can push a 14-day CV higher, which is why the full wear period matters. When Dexcom G7, Stelo, or Lingo apps write glucose to Apple Health with a delay, that timing noise becomes part of the calculation unless the report handles it as a low-quality point. If you are using your own spreadsheet, keep the timestamps intact and use the full export.
If you already have sensor data, drop your export into the free CGM report and see your CV, AGP and time in range in seconds, no account needed. If you do not have a sensor yet, see the HealthOS Sensor page. It is a wellness product, not a medical device, and does not dose insulin.
Written by
HealthOS Research