Use this calculator to determine your estimated Glomerular Filtration Rate (eGFR) based on your serum creatinine level, age, and gender. This tool utilizes the CKD-EPI 2021 (race-free) equation, which is the current standard recommended by the National Kidney Foundation.
Male
Female
mg/dL (Standard)
µmol/L (SI Units)
Estimated GFR
mL/min/1.73m²
Understanding Your eGFR Results
The Glomerular Filtration Rate (GFR) is the best overall index of kidney function. Normal GFR varies according to age, sex, and body size, and declines with age. The National Kidney Foundation divides kidney disease into five stages based on eGFR.
Stage
eGFR (mL/min/1.73m²)
Description
Stage 1
90 or higher
Normal or high kidney function (if other signs of kidney damage are present)
Stage 2
60 – 89
Mildly decreased kidney function
Stage 3a
45 – 59
Mild to moderately decreased kidney function
Stage 3b
30 – 44
Moderate to severely decreased kidney function
Stage 4
15 – 29
Severely decreased kidney function
Stage 5
Below 15
Kidney failure (End Stage Renal Disease)
How is eGFR Calculated?
This calculator uses the CKD-EPI 2021 Creatinine Equation. This formula is considered more accurate than the older MDRD study equation and does not include a coefficient for race, addressing health equity concerns in medical diagnostics.
The Formula Variables
Serum Creatinine: A waste product from muscle metabolism that is filtered out by the kidneys. High levels typically indicate impaired kidney function.
Age: Kidney function naturally declines as we get older.
Gender: Muscle mass differences between biological males and females affect creatinine generation.
Why Monitor eGFR?
Early stages of kidney disease often have no symptoms. Monitoring eGFR through routine blood tests helps doctors detect Chronic Kidney Disease (CKD) early. Early intervention—such as managing blood pressure, blood sugar, and diet—can help slow the progression of kidney damage.
Medical Disclaimer: This calculator is for educational and informational purposes only. It does not constitute medical advice or diagnosis. Always consult with a healthcare professional/nephrologist for interpretation of your lab results and medical decisions.
function calculateGFR() {
var ageInput = document.getElementById('gfrAge').value;
var gender = document.getElementById('gfrGender').value;
var creatInput = document.getElementById('gfrCreatinine').value;
var unit = document.getElementById('gfrUnit').value;
var resultBox = document.getElementById('resultBox');
var valueDisplay = document.getElementById('gfrValue');
var stageDisplay = document.getElementById('ckdStage');
var descDisplay = document.getElementById('stageDescription');
// Validation
if (!ageInput || !creatInput) {
alert("Please enter both Age and Serum Creatinine values.");
return;
}
var age = parseFloat(ageInput);
var creatinine = parseFloat(creatInput);
if (isNaN(age) || age < 1) {
alert("Please enter a valid age.");
return;
}
if (isNaN(creatinine) || creatinine = 90) {
stageText = "Stage 1: Normal or High Function";
stageClass = "stage-normal";
description = "Kidney function is normal, but other signs of kidney damage might be present.";
} else if (gfr >= 60) {
stageText = "Stage 2: Mildly Decreased";
stageClass = "stage-mild";
description = "Mild loss of kidney function.";
} else if (gfr >= 45) {
stageText = "Stage 3a: Mild to Moderate";
stageClass = "stage-moderate";
description = "Mild to moderate loss of kidney function.";
} else if (gfr >= 30) {
stageText = "Stage 3b: Moderate to Severe";
stageClass = "stage-moderate";
description = "Moderate to severe loss of kidney function.";
} else if (gfr >= 15) {
stageText = "Stage 4: Severely Decreased";
stageClass = "stage-severe";
description = "Severe loss of kidney function. Preparation for renal replacement therapy is usually required.";
} else {
stageText = "Stage 5: Kidney Failure";
stageClass = "stage-failure";
description = "Kidney failure (End Stage Renal Disease). Dialysis or transplant may be needed.";
}
stageDisplay.className = "stage-indicator " + stageClass;
stageDisplay.innerText = stageText;
descDisplay.innerText = description;
}