The Estimated Glomerular Filtration Rate (eGFR) is a crucial indicator of kidney function. It estimates how well your kidneys are filtering waste products from your blood. A lower eGFR suggests reduced kidney function, which can be a sign of Chronic Kidney Disease (CKD).
This calculator uses the CKD-EPI 2021 creatinine equation, which is widely recommended for estimating GFR. It requires your age, sex, and serum creatinine level. Race is no longer a factor in the 2021 equation.
Male
Female
Your Estimated GFR:
—
Units: mL/min/1.73 m²
Understanding Your eGFR Results:
eGFR > 90: Normal kidney function.
eGFR 60-89: Mildly decreased kidney function. May indicate early CKD if other signs of kidney damage are present.
eGFR < 15: Kidney failure. Dialysis or transplant may be needed.
Disclaimer: This calculator is for informational purposes only and does not substitute professional medical advice. Always consult with your healthcare provider for diagnosis and treatment.
function calculateEGFR() {
var serumCreatinine = parseFloat(document.getElementById("serumCreatinine").value);
var age = parseInt(document.getElementById("age").value);
var sex = document.getElementById("sex").value;
var resultElement = document.getElementById("result");
resultElement.textContent = "–";
if (isNaN(serumCreatinine) || isNaN(age) || serumCreatinine <= 0 || age <= 0) {
resultElement.textContent = "Please enter valid positive numbers for Creatinine and Age.";
return;
}
var sexFactor;
if (sex === "male") {
sexFactor = 1.012;
} else {
sexFactor = 0.993;
}
var egfr;
// CKD-EPI 2021 creatinine equation for adults
// Source: https://www.kidney.org/professionals/gfr_calculator
var scr = serumCreatinine; // serum creatinine
var ageVal = age; // age in years
var k;
if (sex === "male") {
k = 1463;
} else {
k = 1233;
}
var a;
if (sex === "male") {
a = -1.209;
} else {
a = -1.209;
}
egfr = k * Math.pow(scr, a) * Math.pow(ageVal, -0.146) * sexFactor;
// If GFR is < 60, use a different equation form for those with GFR < 60
if (egfr < 60) {
if (sex === "male") {
k = 1392;
} else {
k = 1321;
}
a = -1.198; // exponent for scr
egfr = k * Math.pow(scr, a) * Math.pow(ageVal, -0.203) * sexFactor;
}
// Ensure eGFR is not negative
if (egfr < 0) {
egfr = 0;
}
// Round to nearest whole number
egfr = Math.round(egfr);
resultElement.textContent = egfr.toFixed(0);
}
.eGFR-calculator {
font-family: Arial, sans-serif;
border: 1px solid #ddd;
padding: 20px;
border-radius: 8px;
max-width: 600px;
margin: 20px auto;
background-color: #f9f9f9;
}
.eGFR-calculator h2, .eGFR-calculator h3 {
text-align: center;
color: #333;
}
.eGFR-calculator p {
color: #555;
line-height: 1.6;
margin-bottom: 15px;
}
.calculator-inputs {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 15px;
margin-bottom: 20px;
}
.input-group {
display: flex;
flex-direction: column;
}
.input-group label {
margin-bottom: 5px;
font-weight: bold;
color: #444;
}
.input-group input[type="number"],
.input-group select {
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 1rem;
}
.eGFR-calculator button {
display: block;
width: 100%;
padding: 12px 20px;
background-color: #007bff;
color: white;
border: none;
border-radius: 5px;
font-size: 1.1rem;
cursor: pointer;
transition: background-color 0.3s ease;
margin-bottom: 20px;
}
.eGFR-calculator button:hover {
background-color: #0056b3;
}
.calculator-result {
text-align: center;
background-color: #e9ecef;
padding: 15px;
border-radius: 5px;
margin-top: 20px;
}
#result {
font-size: 2rem;
font-weight: bold;
color: #007bff;
margin-bottom: 5px;
}
.explanation {
margin-top: 30px;
border-top: 1px solid #eee;
padding-top: 15px;
}
.explanation h3 {
text-align: left;
color: #333;
margin-bottom: 10px;
}
.explanation ul {
list-style: disc;
margin-left: 20px;
color: #555;
}
.explanation li {
margin-bottom: 8px;
}
.explanation p {
font-size: 0.9rem;
color: #777;
text-align: center;
}