Creatinine clearance calculator
A 50-year-old man weighing 70 kg with a serum creatinine of 1 mg/dL has a Cockcroft-Gault creatinine clearance of 87.5 mL/min. The result is absolute, not adjusted to body surface area, as many drug-dosing tables expect. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Age
- 50
- Weight
- 70
- Sex
- Male
- Creatinine
- 1
- Creatinine clearance
- 87.5 mL/min
- Equation
- Cockcroft-Gault
- Sex factor
- 1
- Weight unit
- kg
Creatinine clearance is a long-standing bedside estimate of how quickly the kidneys remove creatinine from the blood, expressed in milliliters per minute. Unlike body-surface-area-normalized eGFR, the classic Cockcroft-Gault formula yields an absolute clearance in mL/min that many drug-dosing tables and older clinical pathways still reference. This calculator implements that published equation exactly: enter adult age in years, body weight in kilograms, sex, and serum creatinine in mg/dL, and receive CrCl plus the sex factor applied so every step is auditable. Use it for education, research coding, product prototypes, and transparent screening arithmetic—not as a standalone diagnosis or a substitute for a licensed clinician.
What Cockcroft-Gault creatinine clearance measures and why it still matters
Creatinine is a muscle-metabolism waste product filtered by the glomeruli and partly secreted by the tubules. Measuring true clearance of an exogenous tracer is accurate but impractical for routine care, so clinicians estimate filtration from serum creatinine and simple demographics.
In 1976 Cockcroft and Gault published a linear formula that predicts twenty-four-hour creatinine clearance from age, weight, sex, and serum creatinine without collecting urine: CrCl equals ((140 minus age) times weight in kilograms times a sex factor) divided by (seventy-two times serum creatinine in mg/dL), with the sex factor equal to one for males and zero point eight five for females. The result is reported in milliliters per minute and is not automatically normalized to one point seven three square meters of body surface area.
That absolute unit is why many historical antibiotic, antiviral, and renally cleared drug monographs still list dose adjustments by Cockcroft-Gault CrCl bands rather than by CKD-EPI eGFR alone. Modern practice often prefers race-free eGFR equations for chronic kidney disease staging, yet product labels, hospital protocols, and research datasets frequently still ask for Cockcroft-Gault specifically.
What to enter and in which units
Send four required fields. Age must be a whole number of years from eighteen through one hundred twenty; Cockcroft-Gault is an adult bedside formula and is not validated here for children, who need age-specific pediatric equations. Weight must be a finite number of kilograms between twenty and three hundred; convert pounds to kilograms by dividing by two point two zero five before calling if your source data are imperial.
Sex must be male or female (single-letter m or f is accepted and normalized); the equation multiplies by one point zero for males and zero point eight five for females. Serum creatinine must be a finite positive number in milligrams per deciliter; if your laboratory reports micromoles per liter, divide micromoles per liter by eighty-eight point four to convert to mg/dL first.
How to interpret results, clinical limits, and integration
Creatinine clearance from Cockcroft-Gault is a screening estimate, not a diagnosis of kidney disease and not medical advice. Extreme muscle mass, amputation, malnutrition, acute illness, fluctuating creatinine, assay differences, and obesity can all bias the estimate; many institutions substitute ideal or adjusted body weight for obese patients, but this tool applies the classical equation with the weight you supply and does not invent alternate weight conventions.
Do not use the output alone to dose nephrotoxic drugs, clear patients for procedures, or make a diagnosis—those decisions require a licensed clinician and the full clinical picture. For chronic kidney disease staging and race-free filtration estimates normalized to body surface area, prefer a dedicated eGFR calculator such as CKD-EPI rather than treating CrCl and eGFR as interchangeable.
What you can do with it
Drug monograph and protocol education
Show how age, weight, sex, and creatinine map to Cockcroft-Gault CrCl on teaching pages that reference historical dosing bands without claiming clinical authority.
Research coding and dataset labels
Attach a reproducible CrCl value and equation name to study rows when only serum creatinine, weight, and demographics are available.
Product prototypes and form scaffolds
Wire a deterministic creatinine-clearance step into health apps and checklists that later hand off to licensed clinical systems for real decisions.
FAQ
Which equation does this creatinine clearance calculator use?
Results are in mL/min and rounded to one decimal place.
What units should I use for weight and creatinine?
Weight in kilograms and serum creatinine in mg/dL. Convert pounds by dividing by 2.205; convert µmol/L creatinine by dividing by 88.4 before calling the tool.
How is this different from eGFR?
Cockcroft-Gault returns absolute clearance in mL/min and uses weight. Common eGFR equations (for example CKD-EPI) estimate filtration normalized to 1.73 m² BSA and do not take weight the same way. Many drug labels still cite CrCl specifically.
What happens if creatinine or another field is missing?
Missing, non-numeric, or non-positive creatinine values are rejected and are not billed.
Can I use this result to make a clinical decision?
No. This is a screening estimate for education, prototyping, and research, not medical advice. Diagnosis, dosing, and treatment decisions need a licensed clinician reviewing the full clinical picture.
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/health/creatinine-clearance \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"age":50,"weight":70,"sex":"male","creatinine":1}'const res = await fetch("https://api.kit.forhosting.com/health/creatinine-clearance", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"age": 50,
"weight": 70,
"sex": "male",
"creatinine": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/creatinine-clearance",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"age": 50,
"weight": 70,
"sex": "male",
"creatinine": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/creatinine-clearance", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"age":50,"weight":70,"sex":"male","creatinine":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"age":50,"weight":70,"sex":"male","creatinine":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/creatinine-clearance", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"age": 50,
"weight": 70,
"sex": "male",
"creatinine": 1
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.creatinine_clearance",
"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
The math is fully deterministic and runs without models, labs, or network calls, so the same inputs always produce the same result and patient-like values never leave the request path.
Inputs, units, validation rules, and response shape
Missing fields, empty strings, non-numeric values, non-positive creatinine, ages outside range, and weights outside range fail with invalid_input and a message naming the field—those failures are not billed. On success the response returns creatinine_clearance rounded to one decimal place, the unit string mL/min, the equation name Cockcroft-Gault, the numeric sex_factor applied, and echoes of age, weight (with weight_unit kg), sex, creatinine, and creatinine_unit so callers can audit exactly what was computed without re-parsing the request.
How to interpret results, clinical limits, and integration
The free browser page runs the same lib as the API; programmatic calls cost $0.002 per successful request from prepaid KIT balance with unit item, and invalid input is not charged. Pair the JSON fields with your own UI—dosing tables, education pages, or research pipelines—while keeping clinical interpretation outside this calculator.
Technical questions
How much does the API cost?
The browser widget runs free and locally. The same computation via the API is billed at $0.002 per successful request from prepaid KIT balance, with no charge on invalid_input failures.