Cystatin C Gfr Calculator

Estimates glomerular filtration rate (eGFR, mL/min/1.73 m²) from serum cystatin-C (mg/L), with an option to combine serum creatinine (mg/dL) for improved accuracy—helpful when creatinine alone may be unreliable (e.g., low/high muscle mass, elderly).

Clinical note: eGFR is an estimate. Use alongside clinical context, urinalysis/albumin-creatinine ratio (ACR), and trends. Equations below are for adults (≥18 y). Pediatric patients use different formulas (e.g., Schwartz).

Cystatin C GFR Calculator

Uses CKD-EPI 2012 equation (ref)

Inputs you’ll need

  • Age (years)
  • Sex (Female/Male)
  • Serum cystatin-C (mg/L), standardized to ERM-DA471/IFCC
  • (Optional) Serum creatinine (mg/dL) for the combined equation

Equations (CKD-EPI, race-free)

1) Cystatin-C–only (CKD-EPI 2012, race-free)

eGFRcys=133×min⁡ ⁣(Cys0.8,1)−0.499×max⁡ ⁣(Cys0.8,1)−1.328×0.996Age×{0.932if Female1if Male\text{eGFR}_{cys} = 133 \times \min\!\left(\frac{Cys}{0.8},1\right)^{-0.499} \times \max\!\left(\frac{Cys}{0.8},1\right)^{-1.328} \times 0.996^{\text{Age}} \times \begin{cases} 0.932 & \text{if Female}\\ 1 & \text{if Male} \end{cases}eGFRcys​=133×min(0.8Cys​,1)−0.499×max(0.8Cys​,1)−1.328×0.996Age×{0.9321​if Femaleif Male​

  • Cys = serum cystatin-C in mg/L.

2) Creatinine + Cystatin-C combined (CKD-EPI 2021, race-free)

eGFRcr-cys=135×min⁡ ⁣(Scrκ,1)α×max⁡ ⁣(Scrκ,1)−0.601×min⁡ ⁣(Cys0.8,1)−0.375×max⁡ ⁣(Cys0.8,1)−0.711×0.995Age×{0.969if Female1if Male\text{eGFR}_{cr\text{-}cys} = 135 \times \min\!\left(\frac{Scr}{\kappa},1\right)^{\alpha} \times \max\!\left(\frac{Scr}{\kappa},1\right)^{-0.601} \times \min\!\left(\frac{Cys}{0.8},1\right)^{-0.375} \times \max\!\left(\frac{Cys}{0.8},1\right)^{-0.711} \times 0.995^{\text{Age}} \times \begin{cases} 0.969 & \text{if Female}\\ 1 & \text{if Male} \end{cases}eGFRcr-cys​=135×min(κScr​,1)α×max(κScr​,1)−0.601×min(0.8Cys​,1)−0.375×max(0.8Cys​,1)−0.711×0.995Age×{0.9691​if Femaleif Male​

  • Scr = serum creatinine (mg/dL)
  • κ=0.7\kappa = 0.7κ=0.7 (Female) or 0.90.90.9 (Male)
  • α=−0.241\alpha = -0.241α=−0.241 (Female) or −0.302-0.302−0.302 (Male)

Quick example (cystatin-C only)

  • Female, Age 60, Cys = 1.2 mg/L
  • Cys/0.8=1.5Cys/0.8 = 1.5Cys/0.8=1.5; min=1, max=1.5
  • 0.99660≈0.7840.996^{60} \approx 0.7840.99660≈0.784

eGFRcys≈133×1−0.499×1.5−1.328×0.784×0.932≈55 mL/min/1.73 m2\text{eGFR}_{cys} \approx 133 \times 1^{-0.499} \times 1.5^{-1.328} \times 0.784 \times 0.932 \approx \mathbf{55\ mL/min/1.73\,m^2}eGFRcys​≈133×1−0.499×1.5−1.328×0.784×0.932≈55 mL/min/1.73m2

(rounded; use the code below for exact.)


Red flags & best practices

  • Units matter: Cystatin-C must be mg/L. Creatinine must be mg/dL.
  • Acute changes: In AKI or rapidly changing kidney function, any eGFR equation is unreliable.
  • Extremes: Severe malnutrition/obesity, thyroid disease, corticosteroids, inflammation can affect cystatin-C.
  • Staging CKD: Pair eGFR with ACR for risk stratification.
  • Dosing meds: Many formularies still reference creatinine-based estimates; check local guidance.

Drop-in Calculator (HTML + JS)

Paste this into any page to get an interactive calculator for both equations.

<div style="max-width:620px;font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.4">   <h2>Cystatin-C eGFR Calculator</h2>   <label>Age (years) <input id="age" type="number" min="18" step="1" value="60"></label><br>   <label>Sex     <select id="sex">       <option>Female</option>       <option>Male</option>     </select>   </label><br>   <label>Cystatin-C (mg/L) <input id="cys" type="number" step="0.01" value="1.20"></label><br>   <details style="margin:6px 0">     <summary>Optional: add Creatinine (mg/dL) for combined equation</summary>     <label>Creatinine (mg/dL) <input id="scr" type="number" step="0.01" placeholder="e.g., 1.00"></label>   </details>   <button onclick="calcEGFR()" style="padding:8px 12px;margin:8px 0">Calculate eGFR</button>   <div id="out" style="padding:10px;border:1px solid #ddd;border-radius:8px"></div> </div>  <script> function pow(base, exp){ return Math.pow(base, exp); }  function eGFR_cys(age, sex, cys){   const k = 0.8;   const minPart = Math.min(cys/k, 1);   const maxPart = Math.max(cys/k, 1);   const sexFactor = (sex === 'Female') ? 0.932 : 1.0;   return 133 * pow(minPart, -0.499) * pow(maxPart, -1.328) * pow(0.996, age) * sexFactor; }  function eGFR_cr_cys(age, sex, scr, cys){   const k = (sex === 'Female') ? 0.7 : 0.9;   const alpha = (sex === 'Female') ? -0.241 : -0.302;   const minScr = Math.min(scr/k, 1);   const maxScr = Math.max(scr/k, 1);   const minCys = Math.min(cys/0.8, 1);   const maxCys = Math.max(cys/0.8, 1);   const sexFactor = (sex === 'Female') ? 0.969 : 1.0;   return 135 * pow(minScr, alpha) * pow(maxScr, -0.601) *          pow(minCys, -0.375) * pow(maxCys, -0.711) *          pow(0.995, age) * sexFactor; }  function fmt(x){ return (isFinite(x) ? x.toFixed(1) : '—'); }  function calcEGFR(){   const age = parseFloat(document.getElementById('age').value);   const sex = document.getElementById('sex').value;   const cys = parseFloat(document.getElementById('cys').value);   const scrVal = document.getElementById('scr').value.trim();   const out = document.getElementById('out');    if (!(age>=18) || !(cys>0)) { out.innerHTML = "Please enter age ≥18 and cystatin-C > 0."; return; }    const egfrCys = eGFR_cys(age, sex, cys);   let html = `<strong>eGFR (cystatin-C only):</strong> ${fmt(egfrCys)} mL/min/1.73 m²`;    if (scrVal !== "") {     const scr = parseFloat(scrVal);     if (scr>0){       const egfrComb = eGFR_cr_cys(age, sex, scr, cys);       html += `<br><strong>eGFR (creatinine + cystatin-C):</strong> ${fmt(egfrComb)} mL/min/1.73 m²`;     }   }   html += `<br><small>For adults; values rounded to 0.1. Use clinical context & ACR.</small>`;   out.innerHTML = html; } </script> 

Reporting your result

  • Report as eGFR ≈ XX mL/min/1.73 m² (CKD-EPI cystatin-C) or (CKD-EPI creatinine-cystatin-C).
  • Include assay standardization (IFCC-traceable) if known.
  • Consider confirming borderline values with repeat testing and/or the combined equation.