Cholesterol unit converter
200 mg/dL of total cholesterol is about 5.17 mmol/L. Convert total, HDL or LDL cholesterol between US milligrams per decilitre and SI millimoles per litre with the clinical factor 38.67, and see both values side by side. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Amount
- 200
- Input concentration unit
- mg_dl
- Output concentration unit
- mmol_l
- Lipid
- total
- Result
- 5.1719679338
- Mg dl
- 200
- Mmol l
- 5.1719679338
- Factor mg dl per mmol l
- 38.67
Cholesterol lab reports use two concentration systems that look similar on paper but are not interchangeable without a conversion step. Clinics and electronic health records in the United States usually print total cholesterol, high-density lipoprotein, and low-density lipoprotein as milligrams per deciliter, while many European, Canadian, Australian, and SI-oriented labs report the same analytes as millimoles per liter. Because total, HDL, and LDL cholesterol are the same molecule in different lipoproteins, they share one fixed clinical factor of thirty-eight point six seven milligrams per deciliter per millimole per liter, derived from the molecular weight of cholesterol. This converter applies that factor in either direction, labels the lipid kind when you supply it, and returns both unit values so you can audit the arithmetic. Non-numeric amounts and unrecognized unit labels fail with a clear validation error instead of inventing a silent zero.
How cholesterol mg/dL and mmol/L relate
Cholesterol concentration is amount of substance per volume of serum or plasma. When the amount is expressed in milligrams and the volume in deciliters you obtain milligrams per deciliter, the traditional United States reporting unit. When the amount is expressed in millimoles and the volume in liters you obtain millimoles per liter, the SI reporting unit preferred by many international guidelines and laboratory information systems.
The bridge between those two scales is the molecular weight of free cholesterol, approximately three hundred eighty-six point six five grams per mole. Multiplying and dividing by ten for the deciliter-to-liter shift yields the widely taught clinical factor: one millimole per liter equals thirty-eight point six seven milligrams per deciliter. Therefore milligrams per deciliter divided by thirty-eight point six seven gives millimoles per liter, and millimoles per liter multiplied by thirty-eight point six seven gives milligrams per deciliter.
The same factor applies to total cholesterol, HDL cholesterol, and LDL cholesterol because each assay quantifies cholesterol mass or moles inside those fractions; it does not apply to triglycerides, which use a different molecular-weight-based constant near eighty-eight point five seven. This calculator never mixes those paths.
What you send and what you get back
Send three required fields and one optional label. The amount field is a finite number for the concentration magnitude you already have. The from field names the input unit, and the to field names the output unit.
Classic checks include two hundred milligrams per deciliter total cholesterol converting to about five point one seven millimoles per liter, forty milligrams per deciliter HDL converting to about one point zero three millimoles per liter, and five millimoles per liter LDL converting back to about one hundred ninety-three point three five milligrams per deciliter. Wire the free browser form for quick charting and patient education, then call the identical contract from scripts when you need bulk unit normalization of imported lab panels.
Where cholesterol unit conversion shows up in real work
International research collaborations constantly merge lipid panels from United States sites that store milligrams per deciliter with European or Canadian sites that store millimoles per liter; a single deterministic converter keeps storage SI while local displays stay familiar. Hospital interfaces and personal health apps that ingest mixed lab PDF exports need a shared ground truth before flagging borderline total cholesterol, HDL, or LDL against guideline tables written in the other unit.
Medical education and nursing exams still ask students to convert a printed lipid panel before classifying risk bands, and an oracle that returns both columns speeds grading without hand calculators. Clinical decision support rules written once in millimoles per liter can evaluate United States feeds after a conversion pass rather than duplicating every threshold. Population health pipelines that de-duplicate multi-vendor claims data often see the same patient with two unit systems in successive visits and must normalize before computing year-over-year deltas.
If you later need triglyceride conversion, full lipid-panel risk scores, or non-cholesterol concentration units such as micromoles per liter for other metabolites, treat those as separate search intents and landings rather than overloading this cholesterol milligrams-per-deciliter versus millimoles-per-liter page.
What you can do with it
Normalize mixed international lab panels
Convert US mg/dL total, HDL, and LDL readings into mmol/L (or the reverse) before merging multi-site research or claims datasets.
Guideline threshold education
Show patients and students the same lipid value in both unit systems so chart talk matches SI or US guideline tables.
Bulk EHR import cleanup
Batch-convert imported lipid fields that arrive with mixed unit tags into one storage unit without reimplementing the 38.67 factor.
FAQ
What conversion factor does this cholesterol converter use?
The standard clinical factor 38.67 mg/dL per 1 mmol/L for cholesterol. Divide mg/dL by 38.67 to get mmol/L; multiply mmol/L by 38.67 to get mg/dL.
Is the factor the same for total, HDL, and LDL?
Yes. Total, HDL, and LDL cholesterol share the same molecular conversion. The optional lipid field only labels the result; it does not change the arithmetic.
Does this convert triglycerides?
No. Triglycerides use a different factor (about 88.57 mg/dL per mmol/L). This capability is for total, HDL, and LDL cholesterol only.
What does it cost?
The browser tool is free and runs locally.
How do I convert mmol/L back to mg/dL?
Multiply by 38.67. An LDL of 5 mmol/L, for example, is about 193.35 mg/dL. The converter works in either direction and always shows both values, so you can check the arithmetic yourself.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/conv/cholesterol \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"amount":200,"from":"mg_dl","to":"mmol_l"}'const res = await fetch("https://api.kit.forhosting.com/conv/cholesterol", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"amount": 200,
"from": "mg_dl",
"to": "mmol_l"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/conv/cholesterol",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"amount": 200,
"from": "mg_dl",
"to": "mmol_l"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/conv/cholesterol", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"amount":200,"from":"mg_dl","to":"mmol_l"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"amount":200,"from":"mg_dl","to":"mmol_l"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/conv/cholesterol", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"amount": 200,
"from": "mg_dl",
"to": "mmol_l"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "conv.cholesterol",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
What you send and what you get back
Both unit fields accept short keys and everyday spellings in any common casing, including mg/dL, mg_dl, mgdl, milligrams per deciliter, mmol/L, mmol_l, mmoll, and millimoles per liter. The optional lipid field accepts total, hdl, or ldl with aliases such as TC, HDL-C, and LDL-C; when omitted the response labels the conversion as total. Missing fields, empty strings, non-numeric amount text, NaN, Infinity, and unrecognized unit or lipid labels fail with invalid_input and are not charged. On success the response echoes the cleaned amount, normalized from and to keys, the lipid kind, the primary result in the target unit, the same concentration as mg_dl and mmol_l with twelve significant digits of stable precision, the factor thirty-eight point six seven, a short formula string, and method cholesterol_clinical_factor. Pricing for successful API calls is the published base of $0.002 per item; validation failures do not consume prepaid balance.
Where cholesterol unit conversion shows up in real work
Because this capability is a pure parse engine, API pricing is the published base of $0.002 per successful item and failed validation does not consume balance.
Technical questions
What units are accepted?
Milligrams per deciliter (mg/dL, mg_dl, mgdl, and long forms) and millimoles per liter (mmol/L, mmol_l, mmoll, mmol, and long forms). Unrecognized labels fail with invalid_input.