Estimate Glomerular Filtration Rate based on Serum Creatinine
Female
Male
Non-Black
Black
*Used for CKD-EPI 2009 equation.
Please enter valid numeric values for Age and Creatinine.
—
—
Units: mL/min/1.73m²
Interpretation:
How is Glomerular Filtration Rate (GFR) Calculated?
The Glomerular Filtration Rate (GFR) is the best overall index of kidney function. Since measuring GFR directly involves invasive procedures (like injecting inulin), medical professionals use equations to calculate an estimated GFR (eGFR) based on blood test results.
The Calculation Formula (CKD-EPI)
The most widely recommended formula for adults is the CKD-EPI Creatinine Equation (2009). This formula accounts for variables that affect creatinine generation, such as age, sex, and race. The mathematical logic is as follows:
Race Factor: 1.159 if Black, 1 if other (in the 2009 equation)
Understanding the Variables
Serum Creatinine: A waste product from muscle metabolism. Healthy kidneys filter this out. High creatinine levels usually indicate lower GFR.
Age: GFR naturally declines with age. The formula includes an age exponent to adjust for this natural decrease.
Gender: Men generally have more muscle mass than women, producing more creatinine. The formula adjusts the baseline to prevent underestimating kidney function in men or overestimating it in women.
Interpreting eGFR Results: CKD Stages
Kidney disease is classified into five stages based on the eGFR value. A lower number indicates reduced kidney function.
Stage
eGFR (mL/min/1.73m²)
Description
Stage 1
90 or higher
Normal kidney function (if other signs of kidney damage are present).
Stage 2
60 – 89
Mildly decreased kidney function.
Stage 3a
45 – 59
Mild to moderate decrease in kidney function.
Stage 3b
30 – 44
Moderate to severe decrease in kidney function.
Stage 4
15 – 29
Severely decreased kidney function. Preparation for renal replacement therapy usually begins here.
Stage 5
Less than 15
Kidney failure (End Stage Renal Disease). Dialysis or transplant needed.
Why is eGFR important?
Early detection of kidney disease is crucial because symptoms often do not appear until later stages. By calculating eGFR using routine blood work (Serum Creatinine), doctors can monitor kidney health and intervene to slow the progression of Chronic Kidney Disease (CKD).
function calculateGFR() {
// 1. Get Input Elements
var genderInput = document.getElementById("gfrGender");
var ageInput = document.getElementById("gfrAge");
var creatInput = document.getElementById("gfrCreatinine");
var raceInput = document.getElementById("gfrRace");
var resultBox = document.getElementById("gfrResult");
var errorMsg = document.getElementById("gfrError");
var valueDisplay = document.getElementById("gfrValueDisplay");
var stageDisplay = document.getElementById("gfrStageDisplay");
var interpDisplay = document.getElementById("gfrInterpretation");
// 2. Parse Values
var gender = genderInput.value; // 'male' or 'female'
var age = parseFloat(ageInput.value);
var scr = parseFloat(creatInput.value);
var race = raceInput.value; // 'black' or 'nonblack'
// 3. Validation
if (isNaN(age) || isNaN(scr) || age <= 0 || scr = 90) {
stage = "Stage 1 (Normal)";
interpretation = "Normal or high kidney function. Note: CKD is only diagnosed in this range if other markers of kidney damage (like protein in urine) are present.";
} else if (egfr >= 60) {
stage = "Stage 2 (Mild)";
interpretation = "Mildly decreased kidney function. Monitor and control risk factors.";
} else if (egfr >= 45) {
stage = "Stage 3a (Mild to Moderate)";
interpretation = "Mild to moderate loss of kidney function.";
} else if (egfr >= 30) {
stage = "Stage 3b (Moderate to Severe)";
interpretation = "Moderate to severe loss of kidney function. Medical intervention required to slow progression.";
} else if (egfr >= 15) {
stage = "Stage 4 (Severe)";
interpretation = "Severely decreased kidney function. Preparation for renal replacement therapy is typically planned.";
} else {
stage = "Stage 5 (Kidney Failure)";
interpretation = "Kidney failure. Dialysis or kidney transplant is usually necessary.";
}
// 8. Output Results
valueDisplay.innerHTML = egfr;
stageDisplay.innerHTML = stage;
interpDisplay.innerHTML = interpretation;
resultBox.style.display = "block";
}