Mortgage Rates 15 Year Fixed Calculator

Scientific Body Fat Calculator

Accurate US Navy Method (Metric Units)

Estimated Body Fat Percentage
–%
Fat Mass
— kg
Lean Body Mass
— kg

How the US Navy Body Fat Method Works

While many rely solely on BMI (Body Mass Index), it fails to distinguish between muscle mass and fat mass. The US Navy method is widely recognized as one of the most accurate "tape measure" techniques for estimating body composition without the need for expensive DEXA scans or hydrostatic weighing.

Measurement Best Practices

  • Height: Measure without shoes, standing straight against a wall.
  • Neck: Measure below the larynx, sloping slightly downward to the front.
  • Waist: For men, measure at the navel. For women, measure at the narrowest point of the natural waistline.
  • Hips (Women only): Measure at the widest part of the buttocks/hips.

Body Fat Categories for Adults

Category Women Men
Essential Fat 10-13% 2-5%
Athletes 14-20% 6-13%
Fitness 21-24% 14-17%
Average 25-31% 18-24%
Obese 32%+ 25%+
function toggleHipInput() { var gender = document.querySelector('input[name="gender"]:checked').value; var hipContainer = document.getElementById('hip-container'); if (gender === 'female') { hipContainer.style.display = 'block'; } else { hipContainer.style.display = 'none'; } } function calculateBodyFat() { var gender = document.querySelector('input[name="gender"]:checked').value; var height = parseFloat(document.getElementById('height').value); var weight = parseFloat(document.getElementById('weight').value); var neck = parseFloat(document.getElementById('neck').value); var waist = parseFloat(document.getElementById('waist').value); var resultBox = document.getElementById('result-box'); var percentageDisplay = document.getElementById('fat-percentage'); var categoryDisplay = document.getElementById('fat-category'); var fatMassDisplay = document.getElementById('fat-mass'); var leanMassDisplay = document.getElementById('lean-mass'); if (!height || !weight || !neck || !waist || (gender === 'female' && !document.getElementById('hip').value)) { alert("Please enter all required measurements."); return; } var bodyFatPercentage = 0; if (gender === 'male') { // US Navy Formula for Men (Metric) // %BF = 495 / (1.0324 – 0.19077 * log10(waist – neck) + 0.15456 * log10(height)) – 450 bodyFatPercentage = 495 / (1.0324 – 0.19077 * Math.log10(waist – neck) + 0.15456 * Math.log10(height)) – 450; } else { var hip = parseFloat(document.getElementById('hip').value); // US Navy Formula for Women (Metric) // %BF = 495 / (1.29579 – 0.35004 * log10(waist + hip – neck) + 0.22100 * log10(height)) – 450 bodyFatPercentage = 495 / (1.29579 – 0.35004 * Math.log10(waist + hip – neck) + 0.22100 * Math.log10(height)) – 450; } if (isNaN(bodyFatPercentage) || bodyFatPercentage <= 0) { alert("Please check your measurements. The formula could not calculate a valid result."); return; } var fatMass = (weight * (bodyFatPercentage / 100)).toFixed(1); var leanMass = (weight – fatMass).toFixed(1); percentageDisplay.innerText = bodyFatPercentage.toFixed(1) + "%"; fatMassDisplay.innerText = fatMass + " kg"; leanMassDisplay.innerText = leanMass + " kg"; var category = ""; var bgColor = ""; if (gender === 'male') { if (bodyFatPercentage < 6) { category = "Essential Fat"; bgColor = "#3498db"; } else if (bodyFatPercentage < 14) { category = "Athlete"; bgColor = "#27ae60"; } else if (bodyFatPercentage < 18) { category = "Fitness"; bgColor = "#2ecc71"; } else if (bodyFatPercentage < 25) { category = "Average"; bgColor = "#f1c40f"; } else { category = "Obese"; bgColor = "#e74c3c"; } } else { if (bodyFatPercentage < 14) { category = "Essential Fat"; bgColor = "#3498db"; } else if (bodyFatPercentage < 21) { category = "Athlete"; bgColor = "#27ae60"; } else if (bodyFatPercentage < 25) { category = "Fitness"; bgColor = "#2ecc71"; } else if (bodyFatPercentage < 32) { category = "Average"; bgColor = "#f1c40f"; } else { category = "Obese"; bgColor = "#e74c3c"; } } categoryDisplay.innerText = category; categoryDisplay.style.backgroundColor = bgColor; resultBox.style.display = 'block'; resultBox.style.backgroundColor = bgColor + "11"; // Light tint of category color resultBox.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }

Leave a Comment