Lab unit converter: mg/dL to mmol/L for every common test
US labs report most results in conventional units such as mg/dL. Labs in Canada, the UK, Europe, and Australia mostly use SI units such as mmol/L. The same glucose reading is 100 in one and 5.6 in the other. There is no single factor between the two, because the factor depends on the size of the molecule being measured. Pick your test below, enter a value, and it converts to every unit that test is reported in.
Conversion factors by test
To go from the US unit to the SI unit, multiply by the first factor. To go back, multiply by the second. The factors come from each molecule’s molar mass, the same values HealthViewer uses when it converts results to share a chart.
| Test | US unit | SI unit | US → SI | SI → US |
|---|---|---|---|---|
| Glucose | mg/dL | mmol/L | × 0.05551 | × 18.02 |
| Hemoglobin A1c | % | mmol/mol | (% − 2.152) × 10.93 | mmol/mol × 0.09148 + 2.152 |
| Insulin | µIU/mL | pmol/L | × 6 | × 0.1667 |
| C-peptide | ng/mL | pmol/L | × 331.1 | × 0.00302 |
| Total, LDL, HDL, non-HDL cholesterol | mg/dL | mmol/L | × 0.02586 | × 38.67 |
| Triglycerides | mg/dL | mmol/L | × 0.01129 | × 88.57 |
| Apolipoprotein B | mg/dL | g/L | × 0.01 | × 100 |
| Lipoprotein(a) | mg/dL | nmol/L | can’t convert | can’t convert |
| Creatinine | mg/dL | µmol/L | × 88.4 | × 0.01131 |
| BUN (as urea) | mg/dL | mmol/L | × 0.357 | × 2.801 |
| Uric acid | mg/dL | µmol/L | × 59.48 | × 0.01681 |
| Bilirubin | mg/dL | µmol/L | × 17.1 | × 0.05847 |
| Albumin, total protein | g/dL | g/L | × 10 | × 0.1 |
| ALT, AST, ALP, GGT | U/L | µkat/L | × 0.01667 | × 60 |
| Sodium, potassium, chloride, bicarbonate | mEq/L | mmol/L | × 1 | × 1 |
| Calcium | mg/dL | mmol/L | × 0.2495 | × 4.008 |
| Magnesium | mg/dL | mmol/L | × 0.4114 | × 2.431 |
| Phosphorus | mg/dL | mmol/L | × 0.3229 | × 3.097 |
| Iron, TIBC | µg/dL | µmol/L | × 0.1791 | × 5.585 |
| Ferritin | ng/mL | µg/L | × 1 | × 1 |
| Vitamin D (25-hydroxy) | ng/mL | nmol/L | × 2.496 | × 0.4006 |
| Vitamin B12 | pg/mL | pmol/L | × 0.7378 | × 1.355 |
| Folate | ng/mL | nmol/L | × 2.266 | × 0.4414 |
| TSH | µIU/mL | mIU/L | × 1 | × 1 |
| Free T4 | ng/dL | pmol/L | × 12.87 | × 0.07769 |
| Free T3 | pg/mL | pmol/L | × 1.536 | × 0.651 |
| Total T4 | µg/dL | nmol/L | × 12.87 | × 0.07769 |
| Total T3 | ng/dL | nmol/L | × 0.01536 | × 65.1 |
| Testosterone (total) | ng/dL | nmol/L | × 0.03467 | × 28.84 |
| Testosterone (free) | pg/mL | pmol/L | × 3.467 | × 0.2884 |
| Estradiol | pg/mL | pmol/L | × 3.671 | × 0.2724 |
| Progesterone | ng/mL | nmol/L | × 3.18 | × 0.3145 |
| Cortisol | µg/dL | nmol/L | × 27.59 | × 0.03625 |
| DHEA-sulfate | µg/dL | µmol/L | × 0.02714 | × 36.85 |
| PSA | ng/mL | µg/L | × 1 | × 1 |
| Hemoglobin | g/dL | g/L | × 10 | × 0.1 |
| White cells, platelets | K/µL | ×10⁹/L | × 1 | × 1 |
| Red cells | M/µL | ×10¹²/L | × 1 | × 1 |
| CRP, hs-CRP | mg/L | mg/dL | × 0.1 | × 10 |
A few worked examples: a fasting glucose of 100 mg/dL is 5.55 mmol/L, an LDL of 130 mg/dL is 3.36 mmol/L, a creatinine of 1.0 mg/dL is 88.4 µmol/L, and a vitamin D of 30 ng/mL is 74.9 nmol/L.
Why every test has its own factor
A mg/dL value counts the weight of a substance in a tenth of a liter of blood. A mmol/L value counts the number of molecules in a liter. To turn one into the other you divide by how much one molecule weighs, its molar mass. Glucose weighs about 180 grams per mole and cholesterol about 387, so the same mg/dL number turns into very different mmol/L numbers. That is why a converter that asks only for “mg/dL to mmol/L” without the test will give the wrong answer for almost everything.
Converted values won’t always match the other lab’s printout to the last digit. Labs round, and a few use a slightly different molar mass. The difference is usually in the last decimal place and doesn’t change the meaning of the result.
Tests where the number doesn’t change
Several unit pairs look different but are equal, so the number stays the same:
- Sodium, potassium, chloride, bicarbonate: mEq/L and mmol/L are the same for ions with a single charge.
- TSH: µIU/mL and mIU/L are the same quantity written two ways.
- Ferritin and PSA: ng/mL and µg/L are equal.
- Blood counts: K/µL equals ×10⁹/L, and M/µL equals ×10¹²/L. A platelet count of 250 is 250 in both.
If a result in one of these units appears to change after you switch labs, the unit didn’t cause it.
Results you can’t convert
Some results have no conversion factor at all:
- Lipoprotein(a). mg/dL measures the weight of the Lp(a) particles, and nmol/L counts them. Particle size varies from person to person, so no single factor works. The 2022 European Atherosclerosis Society consensus statement recommends against converting and recommends reporting in nmol/L. If your history is in both units, compare each result only with others in the same unit.
- Hemoglobin A1c. The % (NGSP) and mmol/mol (IFCC) scales are linked by an equation rather than a factor, because they come from different reference methods. The converter above uses the IFCC–NGSP master equation.
- eGFR. eGFR is already in mL/min/1.73m² everywhere, but it’s calculated from creatinine with a formula that changed in 2021. Two eGFRs from the same creatinine can differ because of the formula, not your kidneys. The eGFR calculator recalculates an old result with the 2021 equation.
- Enzymes from different methods. ALT, AST, and the rest convert cleanly between U/L and µkat/L, but two labs can measure the same enzyme at different temperatures or by different methods. Compare against each lab’s own reference range.
Where mixed units cause trouble
A unit change is easy to spot on a single report. It’s much harder to catch in a history. If you moved countries, switched labs, or imported old records, your cholesterol might read 5.2 one year and 200 the next. Put those numbers in a spreadsheet chart and you get a spike that never happened. Convert everything to one unit before you compare results or chart a trend. How to track your lab results over time covers the rest of the method.
Converting units in HealthViewer
HealthViewer is a lab results tracker that runs on your own computer. It keeps every result in the unit the lab reported it in, and converts at display time, so a test reported in mg/dL by one lab and mmol/L by another shares one chart in Trends. When a result is in a unit that can’t be converted, such as Lp(a) in nmol/L next to mg/dL, HealthViewer leaves it off the chart and says why, rather than plotting it on the wrong scale.
Everything stays in an encrypted file on your computer, with no account and no cloud service. Getting Started walks through the first import.
Conversion factors are for reading results, not for making treatment decisions. Each lab’s reference range applies to its own method and unit. Ask your clinician before acting on a converted value.